Jump 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.

jca

Members
  • Joined

  • Last visited

Everything posted by jca

  1. jca replied to Kramnik's topic in Botting & Bans
    Why ask the question then?
  2. jca replied to Kramnik's topic in Botting & Bans
    Never use the same IP with your mules.
  3. jca replied to xakingas's topic in Scripting Help
    FYI it was breaking because you're calling getInventory() before the inventory is available. Most API functions should be saved for your onLoop() as they require the game to be loaded / an account logged in to work correctly.
  4. Thanks! Maybe, maybe not. It probably helps. Botting times were random, sometimes 8-12 hours, sometimes less than 5. But I was doing other skills in between, mainly farming runs. I’ve also achieved 99 woodcutting and cooking with similar script.
  5. Look at using the stored rocks position and writing a condition that finds the same rock on that position and checks if it doesn’t have ore, rather than checking the referenced rock. private boolean checkRockHasOreAtPosition(Position p){ RS2Object rock = getObjects().getAll() .stream() .filter(obj -> obj.getPosition().equals(p) && Rock.CLAY.hasOre(obj)) .findFirst() .orElse(null); return rock != null; } Something like that
  6. If they are asynchronous just execute them in your onStart or a function that is guaranteed to run once and you’ll also be fine.
  7. jca replied to Malcolm's topic in Scripting Help
    Is the NPC mage already set by the time you reach the condition? In the Boolean function call NPC mage = getNpcs().closest(“mage”); before returning. That may help...
  8. jca replied to RDM's topic in Runescape
    Well good luck on maxing!
  9. inventory#contains will check if any item in the provided array is in the inventory. There's probably a better way, but I use a separate function private boolean inventoryContainsAllItems(String... items){ for( String item : items ){ if ( !getInventory().contains(item) ) return false; } return true; }
  10. Check out my thread below
  11. Ah I’m not really, I just wondered if there was a way. Again, theoretically dealing with a large area feels like it should be handled by region checking. But I can stick with areas, thanks for your thoughts and @Eliot
  12. That’s still defining an area... it’s not an issue. Just if there was an option with regions it feels better to use. But maybe it’s not possible.
  13. Yeah... well that’s one option. The area I need to check is huge (the size of the region, basically 104x104). My logic is if it’s already defined as a region and I could check that then it makes more sense then defining a massive area. But if there’s not really a better way then areas will have to do.
  14. Identify the region my player is in so I can then perform logic, for example @Eliot if ( isInRegion(region) ){ doA(); } else { doB(); }
  15. As far I’m aware that doesn’t give any information that helps you identify the region you’re currently in. It only gives you access to getClippingPlanes() and getTiles()...
  16. Good job on the release... I would try and refactor your code a little to be more maintainable. Rather than have a giant onLoop() you can break it down to functions and boolean checks. if ( ! myPlayer().isAnimating() ){ if ( !getInventory().isFull() ){ fish(); } else { if ( shouldBank() ){ bank(); } else { cook(); } } } else { // Wait as we are fishing or cooking } Also wrap your interactions in conditionals if ( fishingSpot.interact("Lure") ){ status = "Fishing"; //handle post interaction logic } This ensures you can check for interaction success / failure. Look into walking#walkPath as you shouldn't need to use webWalk for this.
  17. Haven’t found a clean solution to check what region my player is in. At the moment using getMap().getBaseX() and getMap().getBaseY() but this varies slightly depending on how my player accessed the position in the region. With a rough calc I’m able to work it out, but as I said it’s a bit dirty. Are there any cleaner solutions?
  18. Of course, my bad. I'll correct!
  19. Hi Okimonit, you don't need a credit card, you can pay with PayPal, just select it on the checkout page.
  20. Not sure if there is a method in the Skills API, I can't seem to find one, but you could do something like this... int totalLevel = 0; for( Skill skill : Skill.values() ){ totalLevel += getSkills().getStatic(skill); } log("My total level is " + totalLevel);
  21. jca replied to Patrick's topic in Releases
    The memory usage is significantly lower, especially on lowcpu and nointerface. Also the buttons on lowresource being properly aligned left makes me happy. Great update!
  22. On WooCommerce I use Coinbase Commerce and their plugin. It looks like that.
  23. jca replied to Patrick's topic in Releases
    Strong
  24. jca replied to RDM's topic in Runescape
    Summoning was a winner with Graahk crafting nature runes... neverending RC xp with no bans.

Account

Navigation

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.