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.

Flamezzz

Members
  • Joined

  • Last visited

Everything posted by Flamezzz

  1. You might want to look at GraphicUtilities#getSuitablePoint(MouseDestination destination). For an entity it calls GraphicUtilities#getModelMeshTriangles and checks what is within MAIN_SCREEN_CLIP, I think that's what you want.
  2. $1.2/m
  3. Over the last few days i have been incorporating a new technique. Wait wut? How did you test this?
  4. Why wouldn't it be successful? Those things are static, so you can safely say success iff mouse.click is successful, right?
  5. I briefly looked at org.osbot.core.debug.HoverDebug and I think it does the same thing, looping through every tile but it compares points in a polygon.
  6. Perhaps you can do something like: for each tile in myplayer.getArea(radius): if tile.polygon contains (mx, my): return tile not the most efficient solution tho
  7. http://osbot.org/api/org/osbot/rs07/GameConstants.html I think you can write a value here and it should work.
  8. I would still prefer the most readable solution of all: bank.getItem(new ContainsNameFilter<>("Amulet of glory")); It reads nicely like a sentence and is equal in performance when rounded to nanoseconds. @OP Nice script
  9. dont you dare to touch my cookies
  10. Because then it is obvious the bot is detected and bot creators would immediately change their bots.
  11. Flamezzz replied to iJodix's topic in Scripting Help
    MethodProvider#stripFormatting removes HTML tags
  12. Flamezzz replied to Botre's topic in Tutorials
    Sooo scheduling an additional thread is not more expensive than some minor computations?
  13. I suggest you read the following to get an idea of what you're doing: https://docs.oracle.com/javase/tutorial/essential/exceptions/ https://docs.oracle.com/javase/tutorial/essential/concurrency/sleep.html There's also more essential Java stuff on the oracle website. Also, it's kind of annoying (at least for me) to look at a gif. Please copy-paste the classes if you still need help.
  14. I'm quite sure that's not in the API. I think this will answer your question, although the widget IDs have changed (it's now 162,38). Once you have selected the correct widget containing the item name, you call widget.interact()
  15. Can you post a minimal script which causes the lag?
  16. You should use webWalking(Position... positions), so if you have a single position you have to create an array until they remove the deprecated one... Position p = new Position(x,y,z); walking.webWalk(new Position[]{p});
  17. That's a nice solution, although I don't like how decorators can be abused and add unnecessary complexity (java IO )
  18. Yes but you have to use the 'low level' api (events): Position dst = new Position(0,0,0); INodeRouteFinder nrf = INodeRouteFinder.threadSafeWrapper(INodeRouteFinder.createAdvanced()); WebWalkEvent e = new WebWalkEvent(nrf, dst); e.disableRun(); boolean failed = execute(e).hasFailed();
  19. I think something like this would work: Position dst = new Position(0,0,0); INodeRouteFinder nrf = INodeRouteFinder.threadSafeWrapper(INodeRouteFinder.createAdvanced()); WebWalkEvent e = new WebWalkEvent(nrf, dst); e.setBreakCondition(new Condition() { @Override public boolean evaluate() { return random(100) == 1; } }); boolean success = execute(e).hasFinished(); if(!success) { // Couldn't walk to dst or we breaked } You can either add a sleep in the evaluate of the break condition or if success = false
  20. IsPendingContinuation() returns true iff it finds "to continue" or "please wait..." so your logic is flawed here.
  21. Drawing a button is of course just g.drawX(...) in onPaint. Next, you basically just implement MouseListener (or extend MouseAdapter) and tell osbot you want to receive mouse events bot.addMouseListener(yourListener). Then you implement mouseClicked(MouseEvent e), e has a property which gives you the location of the click, you can use this to determine if the click was within the bounds of your button.
  22. If there's no documentation then just create it yourself ^^
  23. It will not work because the condition is evaluated exactly once, when the method is called. I've created something similar using a custom interface: public interface Condition { boolean eval(MethodProvider api); } In your script: private boolean sleep(int millis, Condition cond) { MethodProvider api = this; return new ConditionalSleep(millis) { public boolean condition() { return cond.eval(api); } }.sleep(); } Now you can do: sleep(2000, api -> api.myPlayer().isAnimating());

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.