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.

PolishCivil

Members
  • Joined

  • Last visited

Everything posted by PolishCivil

  1. You can simply avoid this situation. Btw i remember back in days sending raw packets to fagex and this was my first bot i ever used and never got banned lol. (been using this like week tho xD) This is funny.
  2. Reflection: ClassLoader.getClass(client).getField©; myPlayer = Classloader.getClass(client.cb): myPlayer.ds; myPlayer.dc; Injection: ByteCodeLibrary -> addMethod -> client -> getFieldC() return c; ByteCodeLibrary -> addWrapper -> Player -> getPositionX return cb.ds; getPositionY return cb.dc; Reflection security: ClassLoader checks,reflection disabling etc Injection security: Class code chec, method invoke checks, trace checks etc. Conclusion: Nowadays everything is simple to use and can be used 100% safe. Why nowadays? Because we know tons of fagex shit. New bot way: Deobfuscate client and live edit code : Awesomeness Guys please... not method matters the api matters how we actually use injection/reflection. How we move mouse, how fast we react etc.
  3. Know that feel i havent sleep for 50h ;s When i code i have hallucinations about type parameters smoking weed with me.
  4. Wait... @Override public int onLoop() throws InterruptedException { new Thread(new Runnable() { @Override public void run() { if (monitor != null && !client.getBank().isOpen() && monitor.hasChanged()) { monitor.onChange(); } } }).start(); return gRandom(800, 300); } ] new Thread(new Runnable() { @Override public void run() { if (monitor != null && !client.getBank().isOpen() && monitor.hasChanged()) { monitor.onChange(); } } }).start(); public void run() { if (monitor != null && !client.getBank().isOpen() && monitor.hasChanged()) { monitor.onChange(); } } What?
  5. What api you use? Do you add good annotation? You don't need to jar your scripts, you can move your build path to /scripts/ folder (classes)
  6. inb4 ban after 15min
  7. ye, i just hooked pixel data.
  8. Poland!
  9. Im asking you guys cuz idk if someone actually need it. INFO: So basically you can make your gui in java fx which looks cool (alot better than awt imo). But at start there might be problem with syncing your gui with script/states because for example if you want to use fxml loader (the .fxml files) with controller class, each time you load your gui with fxloader it makes your controler unique (new instance) so if you for example want to make 1 controler for whole gui with all childs you wont succeed with JavaFX API (i think, I've been searching on google for solution - no results) So generally use of my api is : FXGUI - FXGUIContextBuilder: FXGUIContext: FXGUIController: This is your main controller, which you share between childs like: ^ this is main gui ^and exact one for gui childs Now, if you want to open new child u simply: "Region preview" is just new frame title. "regionview.fxml" is the fx design file for my region preview. So generally you can store FXGUIContext somewhere in your script, and after closing your main gui you can use it as settings holder like; fight(){ npc.getForName(script.context.choosedNpcName).interact("Attack"); }
  10. Wow, this won't change anything.
  11. Nah, I bet fagex just simply sends actions and child's data with equipmeint interface request.
  12. You can also check if you are wearing weapon w/o opening equip interface. But current api doesnt provide required thing : interface settings. int[] interfaceSettings = (int[]) Class.forName("es", false, client.instance.getClass().getClassLoader()).getField("a").get(null); interfaceSettings[843] != 0; Also i bet we can get everything else like cape, helm... Cuz model renderer must have this info.
  13. Eclipse: Ctrl + a & Ctrl + Shift + F Intellij: Ctrl + Alt + L Also u can mix it with: package dependencies.api; import dependencies.api.listeners.ATInventoryListener; import org.osbot.script.Script; import java.util.ArrayList; import java.util.Arrays; /** * @author Xavier */ public class ATInventoryTracker implements Runnable { private Script script; private int[] ids, stacks; private int updateRate = 200; private final ArrayList<ATInventoryListener> listeners; private boolean running = true; private boolean ignoreName; public ATInventoryTracker(Script script) { super(); this.script = script; listeners = new ArrayList<>(); } public void start() { new Thread(this).start(); } public void addListener(ATInventoryListener listener) { if (listener != null) { listeners.add(listener); } } public ArrayList<ATInventoryListener> getListeners() { return listeners; } @Override public void run() { do { try { if (ids == null || stacks == null) { ids = script.client.getInterface(149).getChild(0).getInv(); stacks = script.client.getInterface(149).getChild(0).getInvStackSizes(); } else { int[] new_ids = script.client.getInterface(149).getChild(0).getInv(); int[] new_stacks = script.client.getInterface(149).getChild(0).getInvStackSizes(); //forgot about moved :p I just need added atm for (int i = 0; i < ids.length; i++) { if (new_ids[i] == ids[i] && new_stacks[i] == stacks[i]) { continue; } if (new_ids[i] != ids[i]) { if (ids[i] - 1 != -1) { dispatchRemoved(i, ids[i] - 1, stacks[i]); } if (new_ids[i] - 1 != -1) { dispatchAdded(i, new_ids[i] - 1, new_stacks[i]); } } else if (new_stacks[i] != stacks[i]) { int difference = new_stacks[i] - stacks[i]; if (difference > 0) { dispatchAdded(i, ids[i] - 1, Math.abs(difference)); } else { dispatchRemoved(i, ids[i] - 1, Math.abs(difference)); } } } ids = Arrays.copyOf(new_ids, new_ids.length); stacks = Arrays.copyOf(new_stacks, new_stacks.length); sleep(updateRate); } } catch (Exception e) { e.printStackTrace(); } } while (running); } public void stop() { running = false; } public void setIgnoreName(boolean ignoreNames){ ignoreName = ignoreNames; } private void sleep(int updateRate) { try { Thread.sleep(updateRate); } catch (InterruptedException ex) { //ignore } } private void dispatchRemoved(int slot, int id, int stack) { for (ATInventoryListener listener : listeners) { listener.itemRemoved(slot, id, stack); } } private void dispatchAdded(int slot, int id, int stack) { for (ATInventoryListener listener : listeners) { listener.itemAdded(slot, id, stack, ignoreName ? null : script.client.getInventory().getItemForId(id).getName()); } } private void dispatchMoved(int fromSlot, int toSlot, int id, int stack) { for (ATInventoryListener listener : listeners) { // listener.itemMoved(fromSlot, toSlot, id, stack); } } }
  14. Attention to all users xavier is green hippo, because he use crt from nokia
  15. Yea lol... You thought I hold there water to drink? Jeez what a stupid question
  16. Bitch please.
  17. XD i bought everything from scripting ;3
  18. @deff very nice ;O\!
  19. Guess how my looked 15 min ago.
  20. ^^ mine (inb4 picture iz bad)
  21. Buy atmega8 and make diode blink. (my first code ever created) There is book C for microcontrollers in my country so search for sth like this.
  22. Cuz iOS is for rich ppl!

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.