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.

Abuse

Members
  • Joined

  • Last visited

Everything posted by Abuse

  1. Probably a broken script, check the logger
  2. My whole panel is written in / based on it
  3. getPlayers().getAll(). size()
  4. Autocast config is getConfigs().get(108) Not sure if the 108 is related to what staff you are carrying or it's just static, I've done this with a staff of air Value 0 is no spell selected Value 3 is air strike 5 is water strike and so on Here is a snippet that does a spell change based on levels private int getSpellChange() { int currentSpell = self.getConfigs().get(108); int currentLevel = self.getSkills().getStatic(Skill.MAGIC); if (currentLevel >= 13) { if (currentSpell != 9) { return 4; } else{ return 0; } } else if (currentLevel >= 9) { if (currentSpell != 7) { return 3; } else{ return 0; } } else if (currentLevel >= 5) { if (currentSpell != 5) { return 2; } else{ return 0; } } else if (currentLevel >= 1) { if (currentSpell != 3) { return 1; } else{ return 0; } } return 0; } private void changeSpell() { if (self.getTabs().open(Tab.ATTACK)) { RS2Widget castWidget = self.getWidgets().get(593, 25); if (castWidget != null && castWidget.isVisible()) { if (castWidget.interact()) { new ConditionalSleep(MethodProvider.random(2000,5000), MethodProvider.random(100,200)) { @[member=Override] public boolean condition() throws InterruptedException { return !castWidget.isVisible(); } }.sleep(); } } else { RS2Widget spellWidget = self.getWidgets().get(201, 0 , getSpellChange()); if (spellWidget != null && spellWidget.isVisible() && spellWidget.interact()) { new ConditionalSleep(MethodProvider.random(2000,5000), MethodProvider.random(100,200)) { @[member=Override] public boolean condition() throws InterruptedException { return getSpellChange() == 0; } }.sleep(); if (MethodProvider.random(0, 1) == 0) { self.getTabs().open(Tab.INVENTORY); } } } } }
  5. I've posted an answer to this in your previous thread. Have a thorough look through these to understand our API: http://osbot.org/api/ and especially http://osbot.org/api/org/osbot/rs07/script/MethodProvider.html These will provide you with all the basic available methods
  6. for (Player player : getPlayers().getAll()) { if (player.mycondition() == whatIamLookingFor) { //do stuff with player } }
  7. As long as there is a way to capture a screenshot of the current state, yes please!
  8. It's asking for a list. List<Position> path = Arrays.asList( new Position(3183, 3431, 0), new Position(3177, 3429, 0), new Position(3171, 3426, 0), new Position(3172, 3416, 0), new Position(3171, 3404, 0), new Position(3173, 3395, 0), new Position(3177, 3388, 0), new Position(3179, 3381, 0), new Position(3182, 3375, 0) );
  9. Shouldn't it be -script 591?
  10. Ever since I've started writing scripts for Runescape (Dating back to 2009 https://villavu.com/forum/archive/index.php/t-43804.html) I wanted to write my own interaction APIs Obviously I was just a scrub during most of my "scripting career", with little knowledge on how to write decent OOP code. Past few years I've starting focussing more on programming eventually turning my knowledge into a job, currently I work for a telecom company as a back-end developer. Anyway, enough gibberish, let me introduce SmartAPI SmartAPI is a package that combines all common game interactions into a single package. This includes: Mouse movement Camera movement Walking and Webwalking Keyboard Inventory interactions Object interactions Widget interactions Grand Exchange Banking Shop interfaces and much more ... Why did I decide to create SmartAPI? I felt limited by the implementations of interactions in pretty much any client. They run on the same thread as the script logic making in difficult to write efficient yet simple code. Also I wanted to have more control on how I handle interactions. Progress 10 February 2017 Most of the API's have been implemented and tested, there are still some slight issues with screen walking, but those should be easy to fix Interaction + Walking demo: Banking demo (Endless withdraw / deposit loop) : 19 December 2016: - Initial skeleton has been written. - Basic mouse movement / path generation is working (Whooho!) - Traces of an almost working webwalker can be found throught the code [Webwalker] [Mouse]
  11. for (Entity tree : getObjects().getAll()) { if (tree.getName().equals("Tree")) { self.log(tree.getPosition().getX() + ":" + tree.getPosition().getY()); } } Output: [INFO][Bot #1][12/19 10:06:20 AM]: 3197:3489 [INFO][Bot #1][12/19 10:06:20 AM]: 3197:3489 [INFO][Bot #1][12/19 10:06:20 AM]: 3197:3496 [INFO][Bot #1][12/19 10:06:20 AM]: 3197:3496 [INFO][Bot #1][12/19 10:06:20 AM]: 3197:3489 [INFO][Bot #1][12/19 10:06:20 AM]: 3197:3489 [INFO][Bot #1][12/19 10:06:20 AM]: 3197:3496 [INFO][Bot #1][12/19 10:06:20 AM]: 3197:3496 [INFO][Bot #1][12/19 10:06:20 AM]: 3200:3411 [INFO][Bot #1][12/19 10:06:20 AM]: 3200:3411 [INFO][Bot #1][12/19 10:06:20 AM]: 3201:3409 [INFO][Bot #1][12/19 10:06:20 AM]: 3201:3409 [INFO][Bot #1][12/19 10:06:20 AM]: 3200:3411 [INFO][Bot #1][12/19 10:06:20 AM]: 3200:3411 [INFO][Bot #1][12/19 10:06:20 AM]: 3201:3440 [INFO][Bot #1][12/19 10:06:20 AM]: 3201:3440 [INFO][Bot #1][12/19 10:06:20 AM]: 3201:3409 [INFO][Bot #1][12/19 10:06:20 AM]: 3201:3409 [INFO][Bot #1][12/19 10:06:20 AM]: 3201:3440 [INFO][Bot #1][12/19 10:06:20 AM]: 3201:3440 [INFO][Bot #1][12/19 10:06:20 AM]: 3205:3510 [INFO][Bot #1][12/19 10:06:20 AM]: 3205:3510 [INFO][Bot #1][12/19 10:06:20 AM]: 3205:3510 [INFO][Bot #1][12/19 10:06:20 AM]: 3205:3510
  12. I see nothing wrong here
  13. Abuse replied to Abuse's topic in Scripting Help
    Awesome, exactly what I was looking for
  14. Abuse replied to Abuse's topic in Scripting Help
    Unfortunately getTileHeight always returns 0, and getHeight returns the model height
  15. Abuse posted a topic in Scripting Help
    Hey, I am working on a middle mouse button camera rotation class, I have been able to calculate the required camera yaw angle to get the entity into the gameview however I am having troubles calculating the pitch angle. I need a function that can return me the local 'grid' Z position of an entity, just like getCamera().getZ() does. I've noticed that entities have getGridX() and getGridY() functionality, but I couldn't find anything that returns the Z value (Unless its always the same as position.getZ() Best case scenario would be finding Z position relative to my player (or camera)
  16. It was this or move to Tri-Crap
  17. Launch 10 of them and you'll end up with the same issue
  18. I have the exact same thing, and i've been dealing with it for months now. The only workaround is to have a remote desktop session open at all times, I have a server dedicated to do that I've tried literally everything; - Different OS (Even Linux) - Dummy monitor drivers - VNC server and a loopback connection What did work was a dummy VGA adapter for the physical server, but that's not possible with most datacenters. Spent days looking for a solution and still haven't found one. It's definitely a client issue
  19. It's bad practice in general to store parameter options in a variable Try this: SCRIPT="My\\ Script:null" java -jar "osbot 2.4.101.jar" $OSBOTLOGIN $BOT1 -script $SCRIPT $BOT1WORLD or SCRIPT="My\ Script:null" java -jar "osbot 2.4.101.jar" $OSBOTLOGIN $BOT1 -script $SCRIPT $BOT1WORLD
  20. Abuse replied to IamVortex's topic in General Help
    Linux or windows?

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.