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.

Aeonx

Trade With Caution
  • Joined

  • Last visited

Everything posted by Aeonx

  1. Aeonx replied to Khaleesi's topic in Others
    Awesome, thank you!
  2. Aeonx replied to Khaleesi's topic in Others
    Alright, thanks. Could you then make logging out optional?
  3. Aeonx replied to Khaleesi's topic in Others
    Hey, could you please add a feature so once Tutorial island is done, it runs a specified script?
  4. Aeonx replied to Aeonx's topic in Snippets
    Ok I rewrote the whole API as previous one was pretty much a dev. version. Added Remove Friend method and pretty much fixed all the possible bugs and so it's reliable. Enjoy
  5. Aeonx replied to Aeonx's topic in Snippets
    Thanks! I'm adding Remove friend later as well ;)
  6. Aeonx posted a topic in Snippets
    Hey, just wrote a few methods to control your friends list so thought to share. RandomSleep(); // Your sleeping methods private void AddFriend(String name) throws InterruptedException { if(tabs.getOpen() != Tab.FRIENDS) { tabs.open(Tab.FRIENDS); RandomSleep(); } if(IsFriend(name)) return; RS2Widget widget = widgets.get(429, 7); if(widget == null) return; if(widget.isVisible()) widget.interact(); RandomSleep(); widget = widgets.get(162, 33); if(widget != null && widget.isVisible()) { keyboard.typeString(name); keyboard.pressKey(13); } } private boolean RemoveFriend(String name) throws InterruptedException { if(tabs.getOpen() != Tab.FRIENDS) { tabs.open(Tab.FRIENDS); RandomSleep(); } if(!IsFriend(name)) return false; RS2Widget widget = widgets.get(429, 3); if(widget == null) return false; RS2Widget[] friends; if((friends = widget.getChildWidgets()) != null) { for(RS2Widget w : friends) { if(w.getMessage().equals(name) && w.isVisible()) return w.interact("Delete"); } } return false; } private void MessageFriend(String name, String message) throws InterruptedException { if(tabs.getOpen() != Tab.FRIENDS) { tabs.open(Tab.FRIENDS); RandomSleep(); } RS2Widget widget = widgets.get(429, 3); if(widget == null) return; RS2Widget[] friends; if((friends = widget.getChildWidgets()) == null) return; for(RS2Widget w : friends) { if(w.getMessage().equals(name) && w.isVisible()) w.interact("Message"); } RandomSleep(); widget = widgets.get(162, 33); if(widget != null && widget.isVisible()) { keyboard.typeString(message); keyboard.pressKey(13); } } private boolean IsFriend(String name) { RS2Widget widget = widgets.get(429, 3); if(widget == null) return false; RS2Widget[] friends; if((friends = widget.getChildWidgets()) != null) { for(RS2Widget w : friends) { if(w.getMessage().equals(name)) return true; } } return false; } private boolean IsFriendOnline(String name) { if(!IsFriend(name)) return false; RS2Widget widget = widgets.get(429, 3); if(widget == null) return false; RS2Widget[] friends; int child = 0; if((friends = widget.getChildWidgets()) != null) { for(RS2Widget w : friends) { if(w.getMessage().equals(name)) return (!friends[child + 1].getMessage().equals("Offline")); child++; } } return false; }
  7. Aeonx replied to Aeonx's topic in Scripting Help
    Nvm, found a solution
  8. Aeonx posted a topic in Scripting Help
    Hi, so I've been having all kind of issues when implementing trading... from trade trade.acceptTrade() to trade.didOtherAcceptTrade() not working correctly. #1 It manages to accept trade only when client is freshly loaded. Anything after, moves to decline button and randomly movies doing nothing. #2 Sometimes it does return true, sometimes not. Has anyone had simiar issues or does know how to solve, workaround these? Thanks
  9. Aeonx posted a topic in General Help
    Hi, is anyone else having trouble with stability lately? I'm running stealth injection, so if I run another bot client while already in game with one, everything freezes up, eventually closing itself, no error or anything. The only way it works fine is if at start I launch more bots without logging into the game and only then do so. Any ideas? P.S Also webwalking is causing like serious freezes when initializing... Thanks!
  10. 1. Pictures of the account stats 2. Pictures of the login details 3. Pictures of the total wealth (if there is any) 4. Pictures of the quests completed 5. The price you will be starting bids at 60M 6. The A/W (Auto-win) for your account 120M 7. The methods of payment you are accepting RSGP 8. Your trading conditions Middle Man 9. Pictures of the account status 10. Original/previous owners AND Original Email Address I'm the only owner, yes.
  11. Aeonx replied to Aeonx's topic in Snippets
    Hi, it doesn't drop nothing. It trades the mule.
  12. Aeonx replied to TKEgold's topic in Scripting Help
    Just place it under scripts in OSBOT, that's it
  13. What is this? lolz
  14. Sick! Do you accept work requests maybe?
  15. Thanks, it's great ;)
  16. Use AutoIt, if you haven't yet found a solution for that AutoClicker.
  17. Hey, check out snippets, that should help you understand it better.
  18. Aeonx replied to Deceiver's topic in Resources
    Exactly what I've been looking for, thanks! To add: alphacoders.com really neat stuff there ;)
  19. Aeonx replied to Fruity's topic in Minigames
    Hey Fruity, I wonder whether signatures still work? As I just tried to post one proggy and failed to load. Thanks!
  20. Aeonx replied to Aeonx's topic in Snippets
    Thanks man! Yeah it's great, just make an army of accounts that way and bans have no much meaning, profit
  21. Aeonx posted a topic in Snippets
    Hey guys, just sharing one script I've made really quick, it Mines clay in West Varrock, then banks it. After x clay, it trades mule standing in West Bank Area. Might help someone import java.awt.*; import java.lang.String; import java.text.Normalizer; import org.osbot.rs07.api.Bank; import org.osbot.rs07.api.map.Area; import org.osbot.rs07.script.Script; import org.osbot.rs07.script.ScriptManifest; import org.osbot.rs07.api.model.NPC; import org.osbot.rs07.api.model.Player; import org.osbot.rs07.api.model.RS2Object; import org.osbot.rs07.api.ui.Tab; import javax.swing.*; @ScriptManifest(author = "YourName", info = "Miner", name = "Miner", version = 0, logo = "") public class main extends Script { // Areas private final Area WEST_VARROCK_BANK = new Area(3185, 3439, 3182, 3433); private final Area WEST_MINING_ZONE = new Area(3182, 3378, 3184, 3377); private final Area TRADING_AREA = new Area(3185, 3437, 3181, 3434); private enum State { CHECK, MINE, BANK, GRAB_LOAD, TRADE, UNLOAD } private Window window; private State state = State.GRAB_LOAD; private boolean isRunning = false; private int runs, cooldown, clayNum, world; private long elapsed; private void Check() throws InterruptedException { if(worlds.getCurrentWorld() != world) { worlds.hop(world); return; } if(inventory.isFull()) { if(tabs.getOpen() != Tab.INVENTORY) { tabs.open(Tab.INVENTORY); } if(!WEST_VARROCK_BANK.contains(myPlayer())) { RandomSleep(); MoveToZone(WEST_VARROCK_BANK); } state = State.BANK; } else { if(!WEST_MINING_ZONE.contains(myPlayer())) { RandomSleep(); MoveToZone(WEST_MINING_ZONE); } state = State.MINE; } } private void Mine() throws InterruptedException { RS2Object node = objects.closest(WEST_MINING_ZONE, 7454); if(node != null) { if(!node.isVisible()) { camera.toEntity(node); sleep(450, 850); } node.hover(); sleep(10, 25); if(node.interact("Mine")) { RandomizeMouse(); sleep(850, 1250); while(myPlayer().isAnimating() && node.exists()) sleep(50); sleep(250, 450); } } state = State.CHECK; } private void Bank() throws InterruptedException { if(!bank.isOpen()) { RS2Object bankx = objects.closest("Bank booth"); if(bankx != null) { if(!bankx.isVisible()) { camera.toEntity(bankx); sleep(650, 1250); } if(bankx.interact("Bank")) { sleep(2450, 3250); RandomizeMouse(); RandomSleep(); } } return; } else { if(!bank.depositAllExcept(1271)) return; runs++; sleep(450, 650); RandomizeMouse(); RandomSleep(); if(runs >= cooldown) { bank.enableMode(Bank.BankMode.WITHDRAW_NOTE); sleep(250, 500); RandomizeMouse(); sleep(1250, 1850); bank.withdrawAll(434); RandomSleep(); } bank.close(); sleep(1250, 1850); } if(runs >= cooldown) { runs = 0; cooldown = random(16, 32); state = State.TRADE; } else { state = State.CHECK; } } private void GrabLoad() throws InterruptedException { log("load"); } private void Trade() throws InterruptedException { if(isTrading()) { state = State.UNLOAD; } else { if(getWorlds().getCurrentWorld() != 308) { worlds.hop(308); sleep(8*1000, 14*1000); return; } if(!TRADING_AREA.contains(myPlayer())) { MoveToZone(TRADING_AREA); return; } Player player = players.closest("YourMuleName"); if(player != null) { if(!player.isVisible()) camera.toEntity(player); sleep(1850, 3450); player.hover(); sleep(100, 350); if(player.interact("Trade with")) { sleep(450, 650); RandomizeMouse(); sleep(4500, 6500); } } } } private void Unload() throws InterruptedException { if(isTrading()) { if(trade.isFirstInterfaceOpen()) { if(!trade.offer(435, inventory.getItem(435).getAmount())) return; sleep(450, 850); RandomizeMouse(); RandomSleep(); trade.acceptTrade(); sleep(150, 300); RandomizeMouse(); while(isTrading() && !trade.didOtherAcceptTrade()); } if(trade.isSecondInterfaceOpen()) { RandomSleep(); trade.acceptTrade(); sleep(150, 300); RandomizeMouse(); while(isTrading() && !trade.didOtherAcceptTrade()); } return; } state = State.CHECK; } @Override public int onLoop() throws InterruptedException { switch(state) { case CHECK: log("State: Check"); Check(); break; case MINE: log("State: Mine"); Mine(); break; case BANK: log("State: Bank"); Bank(); break; case GRAB_LOAD: log("State: Grab Load"); GrabLoad(); break; case TRADE: log("State: Trade"); Trade(); break; case UNLOAD: log("State: Unload"); Unload(); break; } return random(150, 200); } @Override public void onStart() { //String input = getClass().getResource("talk").getFile(); //File file = new File(input); isRunning = true; cooldown = random(18, 32); world = worlds.getCurrentWorld(); Thread runTimeThread = new Thread() { @Override public void run() { try { RunTime(); } catch (Exception e) { log(e.getMessage()); } } }; runTimeThread.start(); } @Override public void onExit() { isRunning = false; } @Override public void onPaint(Graphics2D g) { int x = getMouse().getPosition().x; int y = getMouse().getPosition().y; g.drawLine(0, y, 765, y); g.drawLine(x, 0, x, 503); DrawUpdate(g); } private void DrawUpdate(Graphics2D g) { g.setColor(new Color(0, 0, 0, 80)); g.fillRect(4, 280, 512, 58); g.setColor(Color.white); g.setFont(new Font("Consolas", Font.PLAIN, 12)); g.drawString("RunTime: " + GetRunTime(), 14, 300); g.drawString("Clay collected: " + clayNum, 170, 300); } private void RunTime() throws InterruptedException { long startTime = System.currentTimeMillis(); while(isRunning) { elapsed = (System.currentTimeMillis() - startTime); sleep(1000); } } private void LaunchGUI() { } private void CloseGUI() { } private void sleep(int min, int max) throws InterruptedException { sleep(random(min, max)); } private String GetRunTime() { long hours = (elapsed / (1000 * 60 * 60)) % 24; long minutes = (elapsed / (1000 * 60)) % 60; long seconds = (elapsed / 1000) % 60; return String.format("%02d:%02d:%02d", hours, minutes, seconds); } @SuppressWarnings("deprecation") private void MoveToZone(Area zone) throws InterruptedException { walking.webWalk(zone.getRandomPosition()); } private boolean isTrading() { return trade.isCurrentlyTrading(); } private boolean isInRadius(NPC npc) { Player me = myPlayer(); int x = me.getX(), y = me.getY(); return new Area(x + 1, y + 1, x - 1, y - 1).contains(npc); } private void RandomizeMouse() { switch(random(0, 5)) { case 0: mouse.moveRandomly(); break; case 1: mouse.moveOutsideScreen(); break; case 2: mouse.moveSlightly(); break; } } private void RandomSleep() throws InterruptedException { switch(random(0, 5)) { case 0: sleep(650, 1250); break; case 1: sleep(1450, 2050); break; case 2: sleep(2250, 2850); break; case 3: sleep(3050, 3850); break; } } }
  22. Aeonx replied to Mister Slyther's topic in Gallery
    Looking great, nice job man
  23. Yep, it supports pretty much everything, besides it's fully customizable, fell in love with it few years ago.

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.