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.

Explv

Scripter II
  • Joined

  • Last visited

Everything posted by Explv

  1. .................................................
  2. You're welcome. It's not an OSBot issue, it's just a Java configuration issue on your pc.
  3. Explv replied to Sebastian's topic in Scripting Help
    - Here is an example image where I have turned widgets on in settings: As you can see, the emote widget is highlighted in green. It has the value (216, 1, 1) Its parent can be seen highlighted in red, it is the widget containing all emotes, with the value (216, 1)
  4. Explv replied to Sebastian's topic in Scripting Help
    Try enabling widgets in settings, and hovering your mouse over different parts of the screen. The screen is separated into widgets. Each widget has an identifier that is either 2 or 3 values: Parent, Child, Child of Child or Parent, Child In this case we have the values 216, 1, 1 216 is the parent widget, 1 is the widget that contains all of the emotes, and finally 1 is the emote So each of the emotes will have widget values 216, 1, ( 0 -> Some number)
  5. Explv replied to ForcaNL's topic in Scripting Help
    What Extreme posted is correct, here is the proper syntax: Grounditem item = getGroundItems().closest("Wine"); if(item != null){ getMagic().castSpellOnEntity(Spells.NormalSpells.TELEKINETIC_GRAB, item); }
  6. Explv replied to Sebastian's topic in Scripting Help
    I think its 216, 1, 0 -> some number getWidgets().get(216, 1, 1).hover(); getMouse().click(false);
  7. Problem has been fixed. OSBot seemed to be using an old version of the script (that didn't contain the sleep). Deleting OSBot folder and rebuilding script solved it.
  8. No one learns by using a builder :xdoge:
  9. THIS TUTORIAL WILL BE REWRITTEN AS PART OF: https://osbot.org/forum/topic/115124-explvs-scripting-101/
  10. Are you sure its not the rest of your code? :xdoge:
  11. You're right, fixed
  12. You said So I did :xdoge:
  13. Your code can be simplified / improved to: import org.osbot.rs07.api.model.GroundItem; import org.osbot.rs07.script.Script; import org.osbot.rs07.script.ScriptManifest; import org.osbot.rs07.utility.ConditionalSleep; @ScriptManifest(author = "FFTL", info = "First", name = "main", version = 1.0, logo = "") public class FFTLFeathers extends Script { @Override public int onLoop() throws InterruptedException { long featherCount = getInventory().getAmount("Feather"); GroundItem feather = getGroundItems().closest("Feather"); if(feather != null){ feather.interact("Take"); new ConditionalSleep(5000) { @Override public boolean condition() throws InterruptedException { return getInventory().getAmount("Feather") > featherCount; } }.sleep(); } return 750; } } But that is besides the point. He needs to learn Java xD
  14. See my post. http://osbot.org/forum/topic/87717-fixing-osbot-not-starting/
  15. Please format your code properly if you are going to post it in the Scripting help section. Otherwise it is a pain to read.. I strongly suggest you learn the basics of Java first. You haven't even declared your "class" as a class. There are a lot of issues in this script not due to your lack of understanding of the API, but due to your lack of Java / programming knowledge.
  16. How to fix OSBot when it won't start 1. Confirm you have Java 8 installed: 2. Confirm java will open OSBot: Windows: Linux / Mac OS: 3. If OSBot opens using the above commands, try running this software, it will attempt to fix your .jar file, allowing you to open it by double clicking.
  17. Fixed Fixed, sort of :xdoge:
  18. Explv's Dank Paint Tutorial Run Time (ms) Formatting Time Dynamic Time Formatting (Includes Days) Formatting Money and XP Starting the Experience Tracker Using the Experience Tracker The Skills class Percentage to next level Price of an item Overall price, Buying price, Buying quantity, Selling price, Selling quantity of an item The following code requires a Graphics 2D instance, and therefore should be used within the onPaint method (as this method has a Graphics 2D instance as a parameter). We assume that the name of the variable passed to the onPaint method is 'g'. Drawing text on screen Changing text font and size Drawing shapes on screen Changing text / shape colour Changing opacity Drawing an image Customising the mouse
  19. Except that doesn't work in this instance hence the other answers x 2
  20. I recommend you use configs for Tutorial Island. It greatly simplifies everything. For example, when config 281 == 30 you need to open the Inventory tab ( on the Survival stage of Tut Island ) if(script.getConfigs().get(281) == 30){ script.getTabs().open(Tab.INVENTORY); new ConditionalSleep(1500) { @Override public boolean condition() throws InterruptedException { return script.getTabs().getOpen() == Tab.INVENTORY; } }.sleep(); }
  21. I could not tell you what is wrong with your code without seeing the full source / testing it for myself. However this script I have just written, works perfectly well on all three Varrock Yews behind the castle, it automatically walks to the third tree if it is not in click-able distance, so perhaps you are over complicating it: import org.osbot.rs07.api.model.RS2Object; import org.osbot.rs07.script.Script; import org.osbot.rs07.script.ScriptManifest; import org.osbot.rs07.utility.ConditionalSleep; @ScriptManifest(author = "Explv", name = "Wood Chop Chop", version = 1.0, info = "Chops wood", logo = "") public class WoodChopChop extends Script { @Override public int onLoop() throws InterruptedException { if (!myPlayer().isAnimating() && !myPlayer().isMoving()) { if(getInventory().isFull()) getInventory().dropAllExcept(item -> item.getName().contains("axe")); else chop(); } return 0; } private void chop() { RS2Object yew = getObjects().closest("Yew"); if (yew != null) { if (!yew.isVisible()) getCamera().toEntity(yew); yew.interact("Chop down"); new ConditionalSleep(5000) { @Override public boolean condition() throws InterruptedException { return myPlayer().isAnimating(); } }.sleep(); } } }
  22. Feel free to PM me and I can take a look at the full source code for you
  23. Probably just that there isn't a Yew tree nearby?? Also if you are near a Yew tree, and there is an Oak or Willow nearby it will try and cut those first. I suggest you change your yew code to: else { Entity Yew = getObjects().closest("Yew"); if (Yew != null) { if (Yew.isVisible()) { log("Chopping Yew"); Yew.interact("Chop down"); } else { log("Yew is not visible"); sleep(random(500, 700)); } } else{ log("Yew is null"); } } And view the logger so you can see what's happening. On a side note your code can be simplified to: case CHOP: Entity yew = getObjects().closest("Yew"), willow = getObjects().closest("Willow"), oak = getObjects().closest("Oak"); if (willow != null && willow.isVisible()) willow.interact("Chop down"); else if (oak != null && oak.isVisible()) oak.interact("Chop down"); else if (yew != null && yew.isVisible()) yew.interact("Chop down"); else sleep(random(500, 700)); Side note 2: variable names should always be lowercase I would also suggest you take a look at Java Swing, there are some tutorials here on OSBot, and create a GUI that lets the user select which kind of tree they want to chop.
  24. Edit: These are RS3 .zip archives of large item icons and item sprites for all items Large icons (96 x 96): http://www.mediafire...a3uq5/large.zip Sprites (32 x 32): http://www.mediafire...2d43/sprite.zip Large icons preview: Sprites preview:
  25. Explv replied to gorgas8's topic in Scripting Help
    Do everyone a favour when you post code, post it using the code tool, and make sure it is properly formatted. Otherwise it is a headache to read. https://gyazo.com/5819a6c62741a431cb9fa7113d3f6dc9 Also there is a method in the API for determining if the player is under attack myPlayer().isUnderAttack()

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.