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.

TheScrub

Members
  • Joined

  • Last visited

Everything posted by TheScrub

  1. emulation errors are outrageous Exception in thread "pool-1-thread-7" java.lang.VerifyError: Expecting a stackmap frame at branch target 44 in method script.Core.onMessage(Ljava/lang/String;)V at offset 7 at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Unknown Source) at java.lang.Class.getConstructor0(Unknown Source) at java.lang.Class.getConstructor(Unknown Source) at org.osbot.script.engine.ScriptManager$4.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)
  2. what client revision are you running? there are new ones i might need to recompile
  3. i will when sever is up..
  4. Post OCE LOL Names if you want to play some normals with me
  5. Will be playing against osbot members in funorb chess Scrub V.S Acerd ~ Scrub Win Gilgad vs JLaw ~ Gilgad win Gilgad vs JLaw ~ Gilgad win Gilgad vs Asuna ~ Gilgad win Gilgad vs Crazy ~ Gilgad win Gilgad vs Jack44 ~ Gilgad win Gilgad vs Megaman ~ Gilgad win Gilgad vs Zezurge ~ Gilgad win Gilgad vs Gotenks ~ Gilgad win mustard vs scrub ~ mustard win If you want to challenge me/ have a match post something below
  6. the osbot 1 emulator is working pretty good
  7. do not add bones to your loot list just tick b2p will do all bones
  8. 240 ea..
  9. being a script developer and have used the osbot 2 client i don't think it will be ready for public release soon..
  10. far out not working isn't a good reason.... or even worth posting please post correct BUG: CONSOLE MESSAGES: INFORMATION TO REPRODUCE BUG:
  11. updated 1.01
  12. TheScrub replied to TheScrub's topic in Snippets
    the data there is fine just need to do the bitwise operations for selection
  13. TheScrub posted a topic in Snippets
    package prayer; import java.util.ArrayList; import java.util.List; import org.osbot.script.Script; import org.osbot.script.rs2.skill.Skill; import org.osbot.script.rs2.ui.RS2InterfaceChild; public class Prayers { private Script script; public Prayers(Script script) { this.script = script; } enum Prayer { THICK_SKIN(1, 1, 1, "Thick Skin"), BURST_OF_STRENGTH(4, 2, 2, "Burst of Strength"), CLARITY_OF_THOUGHT(7, 4, 3, "Clarity of Thought"), SHARP_EYE(8, 262144, 4, "Sharp Eye"), MYSTIC_WILL( 9, 524288, 5, "Mystic Will"), ROCK_SKIN(10, 8, 6, "Rock Skin"), SUPERHUMAN_STRENGTH( 13, 16, 7, "Superhuman Strength"), IMPROVED_REFLEXES(16, 32, 8, "Improved Reflexes"), RAPID_RESTORE(19, 64, 9, "Rapid Restore"), RAPID_HEAL( 22, 128, 10, "Rapid Heal"), PROTECT_ITEM(25, 256, 11, "Protect Item"), HAWK_EYE(26, 1048576, 12, "Hawk Eye"), MYSTIC_LORE( 27, 2097152, 13, "Mystic Lore"), STEEL_SKIN(28, 512, 14, "Steel Skin"), ULTIMATE_STRENGTH(31, 1024, 15, "Ultimate Strength"), INCREDIBLE_REFLEXES(34, 2048, 16, "Incredible Reflexes"), PROTECT_FROM_MAGIC(37, 4096, 17, "Protect from Magic"), PROTECT_FROM_MISSILES(40, 8192, 18, "Protect from Missiles"), PROTECT_FROM_MELEE(43, 16384, 19, "Protect from Melee"); private int requiredPrayerLevel; private int configValue; private int slot; private String prayerName; Prayer(final int requiredPrayerLevel, final int configValue, final int slot, final String prayerName) { this.requiredPrayerLevel = requiredPrayerLevel; this.configValue = configValue; this.slot = slot; this.prayerName = prayerName; } public int getRequiredPrayerLevel() { return requiredPrayerLevel; } public int getConfigValue() { return configValue; } public int getSlot() { return slot-1; } public String getName() { return prayerName; } } public boolean hasRequiredPrayerLevel(Prayer p) { return script.client.getSkills().getLevel(Skill.PRAYER) >= p .getRequiredPrayerLevel(); } public boolean isSet(Prayer p) { return p != null && getSelectedPrayers().contains(p); } public List<Prayer> getSelectedPrayers() { List<Prayer> selectedPrayers = new ArrayList<Prayer>(); for (Prayer p : Prayer.values()) { if ((script.client.getConfig(83) & (1 << getReversedPower(2, p.getConfigValue()))) != 0) { selectedPrayers.add(p); } } return selectedPrayers; } public List<Prayer> getSelectedQuickPrayers() { List<Prayer> selectedPrayers = new ArrayList<Prayer>(); for (Prayer p : Prayer.values()) { if ((script.client.getConfig(84) & (1 << getReversedPower(2, p.getConfigValue()))) != 0) { selectedPrayers.add(p); } } return selectedPrayers; } public boolean isSetQuickPrayer(Prayer p){ return p != null && getSelectedQuickPrayers().contains(p); } public boolean isQuickPrayerMenuOpen(){ return getChild(77,4) !=null; } private RS2InterfaceChild getChild(int parent, int child) { if (script.client.getInterface(parent) != null) { RS2InterfaceChild c = script.client.getInterface(parent).getChild(child); if (c != null && c.isVisible()) { return c; } } return null; } /* * Used to figure out how many shifts are needed.. */ private int getReversedPower(int powerOfNumber, int endNumber) { for (int i = 1; i < 31; i++) { if (Math.pow(powerOfNumber, i) == endNumber) { return i; } } return 0; } } the slot class to return the slots like such.. package prayer; import java.awt.Point; import java.awt.Rectangle; import org.osbot.script.Script; import org.osbot.script.mouse.RectangleDestination; import org.osbot.script.rs2.ui.RS2InterfaceChild; import org.osbot.script.rs2.ui.Tab; import prayer.Prayers.Prayer; public class PrayerSlot { private Script script; private Prayers prayers; public PrayerSlot(Script script) { this.script = script; prayers = new Prayers(script); } private final int START_WIDTH = 553; private final int START_HEIGHT = 218; private final int WIDTH = 37; private final int HEIGHT = 37; private Point getPoint(int slot) { int column = slot / 5; int row = slot % 5; int x = (int) (START_WIDTH + (row * WIDTH)); int y = (int) START_HEIGHT + (column * HEIGHT); return new Point(x, y); } public Rectangle getRectangle(int slot) { Point p = getPoint(slot); return new Rectangle(p.x, p.y, 30, 27); } public void togglePrayerOn(Prayer p) throws InterruptedException { if (p != null && !prayers.isSet(p)) { Rectangle interactionSlot = getRectangle(p.getSlot()); if (script.currentTab() != null && interactionSlot != null) { if (!script.currentTab().equals(Tab.PRAYER)) { script.openTab(Tab.PRAYER); } if (script.currentTab().equals(Tab.PRAYER)) { interact(interactionSlot, "Activate"); } } } } public void togglePrayerOff(Prayer p) throws InterruptedException { if (p != null && prayers.isSet(p)) { Rectangle interactionSlot = getRectangle(p.getSlot()); if (script.currentTab() != null && interactionSlot != null) { if (!script.currentTab().equals(Tab.PRAYER)) { script.openTab(Tab.PRAYER); } if (script.currentTab().equals(Tab.PRAYER)) { interact(interactionSlot, "Deactivate"); } } } } public void toogleQuickPrayerOn(Prayer p) throws InterruptedException { if (p != null && !prayers.isSetQuickPrayer(p)) { Rectangle interactionSlot = getRectangle(p.getSlot()); if (script.currentTab() != null && interactionSlot != null) { if (!script.currentTab().equals(Tab.PRAYER)) { script.openTab(Tab.PRAYER); } if (script.currentTab().equals(Tab.PRAYER)) { interact(interactionSlot, "Toggle"); } } } } public void toogleQuickPrayerOff(Prayer p) throws InterruptedException { if (p != null && prayers.isSetQuickPrayer(p)) { Rectangle interactionSlot = getRectangle(p.getSlot()); if (script.currentTab() != null && interactionSlot != null) { if (!script.currentTab().equals(Tab.PRAYER)) { script.openTab(Tab.PRAYER); } if (script.currentTab().equals(Tab.PRAYER)) { interact(interactionSlot, "Toggle"); } } } } public void confirmQuickPrayers() throws InterruptedException { if (script.currentTab() != null && prayers.isQuickPrayerMenuOpen()) { if (!script.currentTab().equals(Tab.PRAYER)) { script.openTab(Tab.PRAYER); } if (script.currentTab().equals(Tab.PRAYER)) { interact(getChild(77,4).getRectangle(),"Done"); } } } public void openQuickPrayerMenu() throws InterruptedException{ //548,85 if (getChild(548,85) !=null){ interact(getChild(548,85).getRectangle(),"Setup"); } } public void activateQuickPrayers() throws InterruptedException{ if (getChild(548,85) !=null){ getChild(548,85).interact("Activate"); } } private RS2InterfaceChild getChild(int parent, int child) { if (script.client.getInterface(parent) != null) { RS2InterfaceChild c = script.client.getInterface(parent).getChild(child); if (c != null && c.isVisible()) { return c; } } return null; } private boolean interact(Rectangle rec, String action) throws InterruptedException { return script.selectOption(null, new RectangleDestination(rec), action); } } updated it again a little
  14. reworking it got my web hosting pasting new pictures...
  15. this snippet is pretty old and is only used by me in osbot 2 related stuff as the api doesn't contain an AREA class
  16. omni bad news my paint has a mistake on it from you didn't notice it says thesrub instead of thescrub
  17. a megaman type of game like owata would be fun to make owata for anyone who hasn't played link not working... dagobah.net/flash/owata.swf
  18. you press add script find the script press file transfer and your done.
  19. TheScrub replied to TheScrub's topic in Snippets
    just updated the class added the methods to return the rectangles for the trade and renamed stuff
  20. yes got 3 new mixtapes really motivated to add new stuff!
  21. new version released redownload for it includes small bug fix's + allow you to run on .78+
  22. TheScrub replied to Zach's topic in Releases
    -edit made a thread in scripter section
  23. TheScrub replied to Zach's topic in Releases
    my suggestion got added in

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.