Skip to content
View in the app

A better way to browse. Learn more.

OSBot :: 2007 OSRS Botting

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Explv

Scripter II
  • Joined

  • Last visited

Everything posted by Explv

  1. I already requested this a while ago, we have the same problem in the scripting help section when we try to use annotations e.g. @ Override Without a space becomes @[member='Override'] Very annoying :P Link to thread I made which got no response from admins : http://osbot.org/forum/topic/103874-the-override-annotation-is-replaced-by-user-overridecwalks-name/
  2. Personally for the sleep I would do something like: new ConditionalSleep(10_000) { @ Override public boolean condition() throws InterruptedException { return !deadArea.contains(myPosition()); } }.sleep();
  3. Done UPDATED 2016-10-23: - Local scripts can be selected from a drop down - Changed ListView to TableView for easier reading - Added delete key shortcut to delete items - Added double click to edit items - Removed F2P total skill worlds from random world selection
  4. Ah, yeah forgot about those worlds, will fix it thanks
  5. done UPDATED 2016-10-22: - Local scripts found in the OSBot/Scripts folder are now loaded automatically on start. - Added low resource and low cpu boot parameters - Added double click to run a script configuration - Added world parameter, with option to randomise world selection for a given type (F2P, Members etc.) - Fixed local scripts with whitespace in their names
  6. Create it in onStart and store it globally.I assume you have all your chopping code in the constructor, move it into a separate method and call that on the created object: chopTreesObj.chop();
  7. Was it? http://osbot.org/forum/topic/100554-explvs-osbot-manager/ 123
  8. I have tested it on two different Windows 10 systems and it works 100% fine. But I will update it to make it harder for the user to break
  9. I have pushed a fix for this, it will be available the next time the SDN is updated.
  10. In what way does it not work?
  11. Explv replied to Trees's topic in Scripting Help
    0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 0 < 28
  12. Explv replied to The King's topic in Scripting Help
    Something like: graphics.drawPolygon(treePosition.getPolygon(getBot()))
  13. Just a heads up, you might want to ask Alek before you release, and also check that having OSBot's logo on there is ok
  14. Sorri boss, I don't follow the software development section
  15. I made this back in June http://osbot.org/forum/topic/100554-explvs-osbot-manager/ I can update it if you find any bugs / want new features
  16. Follow some Java tutorials until you have a good understanding of the language, then start writing scripts
  17. public abstract class Node { protected final MethodProvider methods; public Node(final MethodProvider methods) { this.methods = methods; } public abstract boolean validate() throws InterruptedException; public abstract void execute() throws InterruptedException; } public final class ConcreteNode extends Node { public ConcreteNode(final MethodProvider methods) { super(methods); } @ Override public final boolean validate() throws InterruptedException { return false; } @ Override public final void execute() throws InterruptedException { } } public final class NodeExecutor { private final Node[] nodes; public NodeExecutor(final Node... nodes) { this.nodes = nodes; } public final void execute() throws InterruptedException { for (final Node node : nodes) { if(node.validate()) node.execute(); } } } @ScriptManifest(author = "", name = "", info = "", logo = "", version = 0.1) public final class ExampleScript extends Script { private NodeExecutor nodeExecutor; @ Override public final void onStart() { ConcreteNode concreteNode = new ConcreteNode(this); ConcreteNode anotherConcreteNode = new ConcreteNode(this); nodeExecutor = new NodeExecutor(concreteNode, anotherConcreteNode); } @ Override public final int onLoop() throws InterruptedException { if(nodeExecutor != null) nodeExecutor.execute(); return random(100, 150); } }
  18. Well logging out is simple, you just do: getLogoutTab().logOut(); There is not, however, anything in the API for logging in. The main issue with logging back in is the automatic login event. If you start a script using a runescape account stored in the settings, whenever you logout, it will automatically try to log back into that same account. To prevent the automatic login event from triggering you can either: Login to the first account manually, then run the script, so that when you logout the login event won't be triggered (it doesn't have the account information to do it). Write your own method to disable the login event (this is a bit trickier) To log in to another account you can use: The Client class to determine when you are logged out The Client class to determine which stage of the login protocol you are at The Mouse class to click on the Existing users button The Keyboard class to enter the account details Hopefully you can figure it out from that
  19. This is also not a scripting question, close thread.
  20. Explv replied to Trees's topic in Scripting Help
    Well he isn't randomizing it, he's just iterating over the inventory and dropping the items in order? And I don't think randomizing it would make any difference, and would probably be slower lol
  21. Explv replied to Trees's topic in Scripting Help
    How do you know it was the built in drop method that got you banned And just so you know, all the built in method does is: Filter nameFilter = new NameFilter("Trout"); for (int slot = 0; slot < 28; slot ++) { Item itemInSlot = getInventory().getItemInSlot(slot); if(itemInSlot != null && nameFilter.match(itemInSlot)) { getInventory().interact(slot, "Drop"); sleep(gRandom(75, 25)); } } So I fail to see how what you are doing will be any different.
  22. Explv replied to Trees's topic in Scripting Help
    Show us the code? And by the way for dropping you just probably just use getInventory().dropAll(itemName);
  23. In your Trading, InTrade and Wait classes you are using the Script variable 's' . This variable is never initialised. What you should be using is 'sA' which is the Script variable set in your Abstract Node class: package Scripts; import org.osbot.rs07.script.Script; public abstract class Node { protected final Script sA; // <------ You should be using this variable public Node(final Script sA){ this.sA = sA; } public String status(){ return ""; } public abstract boolean validate() throws InterruptedException; public abstract boolean execute() throws InterruptedException; } Here is an example of where you are using the wrong variable: package nodes; import org.osbot.rs07.api.Inventory; import org.osbot.rs07.api.model.Player; import org.osbot.rs07.script.MethodProvider; import org.osbot.rs07.script.Script; import Scripts.Node; import data.Data; public class Trading extends Node{ Data c = new Data(); private Script s; // <-------- You shouldn't have another Script variable here @SuppressWarnings("unused") private Player me; @SuppressWarnings("unused") private Inventory inv; @SuppressWarnings("unused") private Data data; public Trading(Script sA) { super(sA); // <--------------- You are already setting the Script variable sA here } // ... Rest of your code }

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.