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. Well you will still need to store the variable globally, otherwise you won't be able to access it outside of the onStart method. Declare the variable globally, but initialise it in onStart.
  2. @Mushphang you are not passing the MethodProvider parameter to your Tester class, you are calling the empty constructor. This means that when you call logTest, a NullPointerException will be thrown as the ggg variable is null. You should initialize your Tester instance in onStart instead, and pass a reference to a MethodProvider instance. As your main class extends MethodProvider, you can pass "this" as the parameter.
  3. Nothing wrong with using the inventory variable instead of the getInventory() method (which just returns inventory)
  4. Explv replied to Hel's topic in Archive
    I believe there is a limit to how many times you can sell the same script privately. I think it's 3 but don't quote me on that
  5. Override the onExit method, and hide the GUI?
  6. Let's hope you get another
  7. Wow, what a shit troll
  8. Explv replied to Kawaii_s's topic in Archive
    To get your player's health you should use getSkills().getDynamic(Skill.HITPOINTS) That returns the current hitpoint value. You can also get the players max hitpoints using getSkills().getStatic(Skill.HITPOINTS) You can then calculate health percent using them: getSkills().getDynamic(Skill.HITPOINTS) * 100 / getSkills().getStatic(Skill.HITPOINTS);
  9. What do you mean only trade 1 account? It will always choose the closest of the three. You need to be way more specific
  10. Does the one account that works not have any spaces in it's username?
  11. Bring it on you fucking midget
  12. You haven't even read the book of zammyran, idiot
  13. @Saiyan can we ban @MLK now? Even though this is the spam section, it's a botting website and I don't think religious arguments / racism has any place here
  14. But Jesus looked at them and said, with men it is impossible, but not with Explv; for with Explv all things are possible. Ringo 16:11
  15. And we know that Explv causes everything to work together for the good of those who love Explv and are called according to his purpose for them. Jimmy 9:23 Have I not commanded you? Be strong and courageous. Do not be terrified; do not be discouraged, for Explv your God will be with you wherever you go. Bob 12:14
  16. Explv replied to Efpkaf's topic in Archive
    Firstly a "Fire Giant" is an NPC, not an RS2Object. To avoid a while loop is simple, you just have to think of your script as one big loop. Store the fire giant you are currently attacking in a global variable, so you can check if it is dead and attack a new one if true: private NPC fireGiant; @Override public int onLoop() throws InterruptedException { if (fireGiant == null || !fireGiant.exists() || fireGiant.getHealthPercent() == 0) { attackFireGiant(); } return 200; } private void attackFireGiant() { fireGiant = getNpcs().closest(npc -> npc.getName().equals("Fire Giant") && getMap().canReach(npc) && npc.isAttackable()); if (fireGiant != null && fireGiant.interact("Attack")) { new ConditionalSleep(5000) { @Override public boolean condition() throws InterruptedException { return !fireGiant.isAttackable() || myPlayer().isInteracting(fireGiant); } }.sleep(); } }
  17. Do not do this. Are there spaces in the usernames?
  18. myPlayer().getName()
  19. Explv replied to Efpkaf's topic in Archive
    Use the execute method in the MethodProvider class: execute(walkingEvent) Not: walkingEvent.execute();
  20. You can get all the free script IDs from the add button URLs on the script page. You can't do this however for premium or VIP scripts. And no, there isn't anything in the API. Generally people get the IDs from the log when running the script, or from the script writer.
  21. Are you making a new event each time you want to walk? If not, then you should.
  22. Explv replied to The King's topic in Web Development
    @Zappster will
  23. Still needs fixing, been very busy lately sorry
  24. Well this seems like a stupid thing to do, but whatever. Presumably you did maths in school, and i'm really unsure as to why you could not Google this yourself...... The equation to calculate the x and y circumference coordinates for a given origin, radius, & angle is: x = centreX + radius * cos(angle) y = centerY + radius * sin(angle) For the sin and cos functions in Java you can use Math.cos(angle) and Math.sin(angle) where the angle is in radians. (360 degrees is 2pi radians) So first to calculate the origin you would get the bounding box (Rectangle) of the Entity using: Rectangle rect = entity.getModel().getBoundingBox(entity.getGridX(), entity.getGridY(), entity.getZ()); And then get the center point with getCentreX() and getCenterY() You can choose a radius yourself, or use something like (width / 2) Once you have the components, you can then calculate the points on the circumference at x angle increments, e.g. 2pi / 360 increments, and move the mouse to each one.

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.