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.

Leaderboard

Popular Content

Showing content with the highest reputation on 08/22/13 in Posts

  1. Dear community, As the summer is coming to an end things are significantly different than at the start of OSBot almost 6 months ago. In 12 days we will celebrate our 6'th anniversary, on the 2'nd of September. Where we first had no working random events, no SDN support and lots of bugs due the immaturity of OSBot things were looking better and better as time passed and today we have come to the point where OSBot has an API with a rich variety of build in features that other bots don't support and most important a stable product. However with the experience gained over the last 6 months, we know we can improve on various factors of the client and like we announced earlier we will bring a brand new client with those improvements taken in to account from the ground up. The last 6 weeks or so were quite the different ones for me. Where I was able to devote all my attention to OSBot improving it on a daily basis, other roadblocks popped up in real life and my attention was drawn away. I've seen my grandfather die, been on a vacation with my friends and then had other private things going on absorbing my attention, drive and time. Luckily, as with everything in life, things turn around when you want them to and I've battled my way out. Because of my lack of time for OSBot some administrative things were delayed time after time. I'm sincerely sorry for everyone who was victim of this. But let's talk about something positive again. Because we want to celebrate our upcoming 6'th month anniversary we will be doing two things: The first thing we will do is give our developers a 80% cut instead of the usual 70% of the benefits made of their script over the last month to thank them for their efforts. Normally we take 30% for the administrational tasks that need to be done, but as the administrational work has slowed by my absence we will make up for that this way. Until the 2'nd of September we will give everyone unlimited tabs! This will be starting tomorrow. To conclude this thread I want to make a shout out to everyone who has been part of OSBot, whether it being from the beginning or more recently, without you OSBot would not be where it's at today. Thanks for reading, OSBot.org
  2. Does everyone on this website use an adblocker lol?
  3. 2 points
    Hol' up. Not trying to kill your vibe, but you need A.D.H.D to script like xavier. Also, you wont be under the shade of a money tree unless you have a scripting recipe like goldengates. You have to have a plan, no backseat freestyle. Its no swimming pool here in the osbot community, its a m.a.a.d city.
  4. Unlimited tabs? D: Memory leak threads inc
  5. OSBot Gilded Altar I wrote this for myself and wanted to share it as I wrote to be ready enough to be shared with others. Usually I don't make paints and add several variations to a script picked by a GUI, but I did it this time as I might be using it more often. I'm releasing this script open source, some of you might find it interesting to look through it and learn from it. For anyone else, hopefully you put it to good use and grind some bones with it. Features: Use a host or your own house Walking from Yanille bank to Yanille house and vica versa Instead of walking, use House teleport tabs or House teleport combined with a mounted Amulet of Glory in your house Choice between offering Dragon bones, Big Bones and normal bones Never ever offers bones when there are no 2 lit Incense burners Automatic door support, will work with every house setup Begin anywhere in your house, near a bank or near your portal (depending on setup) without supplies GUI: Progress report: Download JAR: http://up.ht/11Y7WUi Code: package osbot.maxi.script.gildedaltar; import org.osbot.script.Script; import org.osbot.script.ScriptManifest; import org.osbot.script.rs2.model.Item; import org.osbot.script.rs2.model.RS2Object; import org.osbot.script.rs2.skill.Skill; import org.osbot.script.rs2.ui.Spell; import org.osbot.script.rs2.utility.Area; import org.osbot.script.rs2.utility.ConditionalSleep; import java.awt.*; import java.util.List; import java.util.concurrent.TimeUnit; /** * Created with IntelliJ IDEA. * User: Maxi */ @ScriptManifest(name = "GildedAltar", author = "Maxi", version = 1.0D, info = "Offers Dragon bones, Big bones and normal bones on a Gilded Altar located in your or a friend's " + "with various transportation options.") public class GildedAltar extends Script { private DoorHandler doorHandler = null; private long startTime = 0; private int startXp = 0; private GildedAltarGUI gui = new GildedAltarGUI(); private boolean configured = false; private State state; private String host = null; private ToHouseMethod toHouseMethod; private ToBankMethod toBankMethod; private String bonesName; private static final Area WALK_AREA = new Area(2586, 3096, 2589, 3098); private static enum State { ENTER_HOUSE, TO_ALTAR, LIGHT_BURNERS, OFFER_BONES, TO_BANK, RESTOCK, TO_HOUSE, QUIT } private static enum ToHouseMethod { WALK(0, new String[] { "Tinderbox", "Marrentill" }, 25, 15), TELEPORT(1, new String[] { "Law rune", "Earth rune", "Tinderbox", "Marrentill" }, 23, 60), TELETAB(2, new String[] { "Teleport to house", "Tinderbox", "Marrentill" }, 24, 252); public int index; public String[] validItems; public int noBones; public int xp; private ToHouseMethod(int index, String[] validItems, int noBones, int xp) { this.index = index; this.validItems = validItems; this.noBones = noBones; this.xp = xp; } public static ToHouseMethod forIndex(int index) { for (ToHouseMethod method : ToHouseMethod.values()) { if (index == method.index) return method; } return null; } } private static enum ToBankMethod { WALK(0), GLORY(1); public int index; private ToBankMethod(int index) { this.index = index; } public static ToBankMethod forIndex(int index) { for (ToBankMethod method : ToBankMethod.values()) { if (index == method.index) return method; } return null; } } @Override public void onStart() { doorHandler = new DoorHandler(); doorHandler.provideBot(bot); gui.setVisible(true); } @Override public int onLoop() throws InterruptedException { if (!gui.started) return 10; if (!configured) { configure(); } scan(); log("State = " + state.toString()); switch (state) { case ENTER_HOUSE: return enterHouse(); case TO_ALTAR: return toAltar(); case LIGHT_BURNERS: return lightBurners(); case OFFER_BONES: return offerBones(); case TO_BANK: return toBank(); case RESTOCK: return restock(); case TO_HOUSE: return toHouse(); case QUIT: log("Something went wrong, shutting down script"); return -1; } return -1; } private void configure() { if (gui.useHostCheckbox.isSelected()) { host = gui.hostNameTextField.getText(); } else { host = null; } toHouseMethod = ToHouseMethod.forIndex(gui.toHouseMethodComboBox.getSelectedIndex()); toBankMethod = ToBankMethod.forIndex(gui.toBankMethodComboBox.getSelectedIndex()); bonesName = (String) gui.boneTypeComboBox.getSelectedItem(); startTime = System.currentTimeMillis(); startXp = client.getSkills().getExperience(Skill.PRAYER); configured = true; } private int toHouse() throws InterruptedException { switch (toHouseMethod) { case WALK: return enterHouse(); case TELEPORT: return teleportToHouse(); case TELETAB: return teleportToHouseTab(); default: log("No proper to house method found, shutting down..."); return -1; } } private int toBank() throws InterruptedException { switch (toBankMethod) { case WALK: return exitHouse(); case GLORY: return useMountedGlory(); default: log("No proper to bank method found, shutting down..."); return -1; } } private int exitHouse() throws InterruptedException { setRunning(true); if (isInHouse()) { RS2Object portal = closestObjectForName("portal"); if (portal != null) { if (!doorHandler.handleNextObstacle(portal)) { portal.interact("enter"); } } else { warn("Could not find entry portal!"); } } else { return 10 + gRandom(10, 10); } return 10 + gRandom(10, 10); } private int teleportToHouse() throws InterruptedException { closeOpenInterface(); if (magicTab.castSpell(Spell.HOUSE_TELEPORT)) { waitForHouse(); return 10 + gRandom(10, 10); } else { return 10 + gRandom(10, 10); } } private int teleportToHouseTab() throws InterruptedException { closeOpenInterface(); if (client.getInventory().interactWithName("Teleport to house", "Break")) { waitForHouse(); return 10 + gRandom(10, 10); } else { return 10 + gRandom(10, 10); } } private void waitForHouse() throws InterruptedException { new ConditionalSleep(5000) { @Override public boolean condition() { return client.getValidInterfaces()[399]; } }.sleep(); new ConditionalSleep(10000) { @Override public boolean condition() { return !client.getValidInterfaces()[399]; } }.sleep(); } private boolean restockLawRunes() throws InterruptedException { Item lawRune = client.getBank().getItemForName("Law rune"); if (lawRune != null) { return client.getBank().withdrawX(lawRune.getId(), 100); } else { log("You have no law runes left in your bank or inventory, shutting down..."); return false; } } private boolean restockEarthRunes() throws InterruptedException { Item earthRune = client.getBank().getItemForName("Earth rune"); if (earthRune != null) { return client.getBank().withdrawX(earthRune.getId(), 100); } else { log("You have no earth runes left in your bank or inventory, shutting down..."); return false; } } private boolean restockTabs() throws InterruptedException { Item tab = client.getBank().getItemForName("Teleport to house"); if (tab != null) { return client.getBank().withdrawX(tab.getId(), 100); } else { log("You have no law runes left in your bank or inventory, shutting down..."); return false; } } private boolean restockTeleportSupplies() throws InterruptedException { switch (toHouseMethod) { case TELEPORT: if (!client.getInventory().contains("Law rune") && !restockLawRunes()) { return false; } if (!client.getInventory().contains("Earth rune") && !restockEarthRunes()) { return false; } break; case TELETAB: if (!client.getInventory().contains("Teleport to house") && !restockTabs()) { return false; } break; } return true; } private boolean hashAllRequiredSupplies() { if (client.getInventory().getAmount("Tinderbox") != 1) { log("Too little or too many tinderboxes in inventory..."); return false; } switch (toHouseMethod) { case TELEPORT: if (!client.getInventory().contains("Law rune")) return false; if (!client.getInventory().contains("Earth rune")) return false; break; case TELETAB: if (!client.getInventory().contains("Teleport to house")) return false; break; } if (client.getInventory().getAmount("Marrentill") != 2) { return false; } if (client.getInventory().getAmount(bonesName) < toHouseMethod.noBones) { return false; } return true; } private boolean restockMarrentills() throws InterruptedException { int curAmount = (int) client.getInventory().getAmount("Marrentill"); int needed = 2 - curAmount; if (needed < 0) { int toStore = curAmount - 2; for (; toStore > 0; ) { client.getBank().deposit1(client.getInventory().getItemForName("Marrentill").getId()); sleep(5 + gRandom(10, 5)); } } else { Item marrentil = client.getBank().getItemForName("Marrentill"); if (marrentil != null) { for (; needed > 0;) { if (client.getBank().withdraw1(marrentil.getId())) { needed--; sleep(5 + gRandom(10, 5)); } } } else { log ("We ran out of marrentills, shutting down..."); return false; } } return true; } private boolean restockTinderbox() throws InterruptedException { if (!client.getInventory().contains("Tinderbox")) { Item tinderBox = client.getBank().getItemForName("Tinderbox"); if (tinderBox != null) { client.getBank().withdraw1(tinderBox.getId()); } else { log("You have no tinderbox in your bank or inventory, shutting down..."); return false; } } else if (client.getInventory().getAmount("Tinderbox") > 1) { Item tinderBox = client.getInventory().getItemForName("Tinderbox"); int toStore = (int) client.getInventory().getAmount("Tinderbox") - 1; if (tinderBox != null) { client.getBank().depositX(tinderBox.getId(), toStore); } } return true; } private boolean restockBones() throws InterruptedException { if (client.getInventory().getAmount(bonesName) < toHouseMethod.noBones) { Item bones = client.getBank().getItemForName(bonesName); if (bones != null) { client.getBank().withdrawAll(bones.getId()); } else { log("We ran out of " + bonesName + ", shutting down..."); return false; } } return true; } private int restock() throws InterruptedException { if (client.getBank().isOpen()) { client.getBank().depositAllExcept(toHouseMethod.validItems); if (hashAllRequiredSupplies()) return 10 + gRandom(10, 10); if (!restockTeleportSupplies()) return -1; if (!restockTinderbox()) return -1; if (!restockMarrentills()) return -1; if (!restockBones()) return -1; if (client.getInventory().contains(toHouseMethod.validItems)) return 10 + gRandom(10, 10); else return 10 + gRandom(10, 10); } else { if (hashAllRequiredSupplies()) return 10 + gRandom(10, 10); else { RS2Object bank = closestObjectForName("Bank booth"); if (bank != null) { if (bank.interact("Bank")) { new ConditionalSleep(2000) { @Override public boolean condition() { return client.getBank().isOpen(); } }.sleep(); } return 100 + gRandom(20, 50); } else { walk(WALK_AREA, 1); return 10 + gRandom(10, 10); } } } } private int useMountedGlory() throws InterruptedException { RS2Object glory = closestObjectForName("Amulet of Glory"); if (glory != null && !doorHandler.handleNextObstacle(glory)) { this.walk(glory, false, 6, true, false); client.moveCameraToEntity(glory); client.rotateCameraPitch(20); new ConditionalSleep(5000) { @Override public boolean condition() { return !myPlayer().isMoving(); } }.sleep(); if (glory.interact("Rub")) { if (!new ConditionalSleep(7000) { @Override public boolean condition() { return client.getValidInterfaces()[234]; } }.sleep()) { log("Glory interface did not show up within 7 seconds.. retrying"); return 5 + gRandom(5, 5); } else { if (client.getInterface(234).getChild(1).interact()) { new ConditionalSleep(5000) { @Override public boolean condition() { return !isInHouse(); } }.sleep(); return 5 + gRandom(5, 5); } else { return 50 + gRandom(50, 50); } } } else { if (client.getValidInterfaces()[234]) { if (client.getInterface(234).getChild(1).interact()) { new ConditionalSleep(5000) { @Override public boolean condition() { return !isInHouse(); } }.sleep(); return 5 + gRandom(5, 5); } else { return 50 + gRandom(50, 50); } } return 50 + gRandom(50, 50); } } else { log("Error with finding/walking glory"); return 100 + gRandom(100, 100); } } private int offerBones() throws InterruptedException { client.rotateCameraPitch(67); new ConditionalSleep(5000) { @Override public boolean condition() { return !myPlayer().isMoving(); } }.sleep(); RS2Object altar = closestObjectForName("Altar"); if (altar != null) { final int slot = client.getInventory().getSlotForName(bonesName); if (slot < 0) return 10 + gRandom(10, 10); client.getInventory().interactWithName(bonesName, "Use"); sleep(30 + gRandom(20, 20)); altar.interact("Use", true); new ConditionalSleep(1200) { @Override public boolean condition() { return client.getInventory().getItems()[slot] == null; } }.sleep(); return 10 + gRandom(20, 20); } else { log("Couldn't find altar, shutting down..."); return -1; } } private int lightBurners() throws InterruptedException { client.rotateCameraPitch(67); List<RS2Object> burners = closestObjectListForName("Incense burner"); for (final RS2Object burner : burners) { for (String s : burner.getDefinition().getActions()) { if (s != null && s.toLowerCase().contains("light")) { if (burner.interact("Light", 9, false)) { new ConditionalSleep(1000) { @Override public boolean condition() { return !burner.exists(); } }.sleep(); return 100 + gRandom(100, 100); } else return 10 + gRandom(10, 10); } } } return 10 + gRandom(10, 10); } private int toAltar() throws InterruptedException { final RS2Object altar = closestObjectForName("Altar"); if (altar != null && distance(altar) > 2) { if (!doorHandler.handleNextObstacle(altar)) { this.walk(altar, false, 2, true, false); new ConditionalSleep(2000) { @Override public boolean condition() { return distance(altar) <= 2; } }.sleep(); } else { return 400 + gRandom(100, 100); } } return 100 + gRandom(100, 100); } private int enterHouse() throws InterruptedException { if (client.getInterface(232) != null && client.getInterface(232).getChild(1).isVisible() && client.getInterface(232).getChild(1).getMessage().equalsIgnoreCase("go to your house")) { if (host == null) { if (client.getInterface(232).getChild(1).interact()) { waitForHouse(); } } else { client.getInterface(232).getChild(3).interact(); if (new ConditionalSleep(5000) { @Override public boolean condition() { return client.getInterface(137) == null || !client.getInterface(137).isVisible(); } }.sleep()) { type(host); waitForHouse(); } else { return 200 + gRandom(50, 50); } } return 3000 + gRandom(600, 200); } setRunning(true); RS2Object portal = closestObjectForName("portal"); if (portal != null) { if (!doorHandler.handleNextObstacle(portal)) { portal.interact("enter"); } } else { warn("Could not find entry portal!"); } return 600 + gRandom(300, 100); } private void scan() { if (state == State.OFFER_BONES) { if (client.getInventory().contains(bonesName) && isInHouse()) { List<RS2Object> burners = closestObjectListForName("Incense burner"); if (!burners.isEmpty()) { for (RS2Object burner : burners) { for (String s : burner.getDefinition().getActions()) { if (s != null && s.toLowerCase().contains("light")) { if (client.getInventory().getAmount("Marrentill") >= 0) { state = State.LIGHT_BURNERS; return; } else { state = State.TO_BANK; return; } } } } } } } if (isInHouse()) { if (!client.getInventory().contains(bonesName)) { state = State.TO_BANK; return; } RS2Object altar = closestObjectForName("Altar"); if (altar != null && distance(altar) > 3) { state = State.TO_ALTAR; return; } else { List<RS2Object> burners = closestObjectListForName("Incense burner"); if (!burners.isEmpty()) { for (RS2Object burner : burners) { for (String s : burner.getDefinition().getActions()) { if (s != null && s.toLowerCase().contains("light")) { if (client.getInventory().getAmount("Marrentill") >= 0) { state = State.LIGHT_BURNERS; return; } else { state = State.TO_BANK; return; } } } } } if (client.getInventory().contains(bonesName)) { state = State.OFFER_BONES; return; } } } else { if (hashAllRequiredSupplies()) { RS2Object portal = closestObjectForName("Portal"); if (portal != null && distance(portal) < 10) { state = State.ENTER_HOUSE; return; } state = State.TO_HOUSE; return; } else { state = State.RESTOCK; return; } } } private int getBonesPerHour() { if (gui.started && configured) { int exp = client.getSkills().getExperience(Skill.PRAYER) - startXp; int noBones = exp / toHouseMethod.xp; long time = System.currentTimeMillis() - startTime; if (time == 0) return 0; return (int) (((double) noBones / (double) time) * 3600000D); } return 0; } @Override public void onPaint(Graphics g) { g.setColor(new Color(0, 0, 0, 120)); g.fillRect(10, 300, 500, 35); g.setColor(Color.green); if (gui.started && configured) { long time = System.currentTimeMillis() - startTime; g.drawString("Bones/hour : " + getBonesPerHour(), 15, 315); int exp = client.getSkills().getExperience(Skill.PRAYER) - startXp; g.drawString("Exp/hour : " + (int) (exp == 0 ? 0 : (3600000D / (((double) time) / ((double) exp)))), 15, 330); g.drawString("Bones: " + exp / toHouseMethod.xp, 190, 315); g.drawString("Exp: " + exp, 190, 330); g.drawString("State : " + state, 352, 315); g.drawString("Time running : " + formatTime(time), 352, 330); } else { g.drawString("Bones/hour : 0", 15, 315); g.drawString("Exp/hour : 0", 15, 330); g.drawString("Bones: 0", 190, 315); g.drawString("Exp: 0", 190, 330); g.drawString("State : Unstarted" + state, 352, 315); g.drawString("Time running : 00:00:00:00", 352, 330); } } private String formatTime(final long l) { final long day = TimeUnit.MILLISECONDS.toDays(l); final long hr = TimeUnit.MILLISECONDS.toHours(l - TimeUnit.DAYS.toMillis(day)); final long min = TimeUnit.MILLISECONDS.toMinutes(l - TimeUnit.DAYS.toMillis(day) - TimeUnit.HOURS.toMillis(hr)); final long sec = TimeUnit.MILLISECONDS.toSeconds(l - TimeUnit.DAYS.toMillis(day) - TimeUnit.HOURS.toMillis(hr) - TimeUnit.MINUTES.toMillis(min)); final long ms = TimeUnit.MILLISECONDS.toMillis(l - TimeUnit.DAYS.toMillis(day) - TimeUnit.HOURS.toMillis(hr) - TimeUnit.MINUTES.toMillis(min) - TimeUnit.SECONDS.toMillis(sec)); return String.format("%02d:%02d:%02d:%02d", day, hr, min, sec); } } Enjoy!
  6. Ok, first off. Don't like this shitty thread unless you actually want to thank me. I don't want free likes, or some stupid stuff so don't say that. I am giving away these keys for free... Dead Space Origin Key Burnout Paradise: The Ultimate Box Origin Key Crysis 2 Maximum Edition Origin Key Medal of Honor Origin Key If you want any of them, just say which one. And only 1 and i'll randomly generate a number once I feel it's adequate. If you post twice you're automatically out of the drawing. I am going to keep this going til I get like 50 or some posts probably. If any of you have any keys that you want to giveaway you can pm me if you want to do it on this thread and I will give you credit. Or you can make ur own thread, whatever floats ur **** You can also donate https://www.humblebundle.com/ and get all the games plus more for just 5 dollars. Good deal Also if you want say, 1 specific game like Medal of Honor, you get all the games besides Bf3, and sims 3 for only 1 dollar. But I do recommend just donating 5 dollars, as it is for charity and you do get bf3.
  7. I suggest having weekly or monthly botting or some other type of challenges. It would give the community a goal and something to do if they are bored. Say the person wins the challenge. They could get a few days of free VIP or some 07GP. Supporters could very well help this thread get seen by an admin. I support. EDIT: I know you might think this is copying p****bot. But think about it this is a whole different website for 07. p****bot doesn't have an 07 bot. So IMO I don't consider it copying. Sorry for saying other website by the way.
  8. Guest
    MASTER CHIEF HAS SPOKEN.
  9. #11th Person to get 1,000 posts i was 10th
  10. Guest
    whatever skype types into this website i support
  11. Your method doesn't work anyway.
  12. Go on another forum and buy 07 gp for moneybookers, a lot of people use it because you can't chargeback!
  13. DONT HIT THE CONE LIKE I DID BRUUUHTHAAAA
  14. When I took it, the guy told me to put the keys in just enough so I can turn on the accessories. I didn't hear him say that, asked if I could turn the car on. He just stood there and stared at me. I was like, alright, and turned the car on. He was like "Nonono you have to listen. Don't turn the car on" i was like, Alright. Next, we got in the car, he asked if he could turn on the AC, and I just stared at him. He turns it on, and I say that was too much and turned it down to the minimum setting. Needless to say, i failed due to him taking a lot of points off for BS reasons ;)
  15. debot , child , superman> not really but he just posts stupid stuff sometimes
  16. Know your hand signs, 3 point turn, parallel parking, stop at red light, seat belt before turning on car.
  17. The first time that I went I had no idea what to expect, and I wasn't taught 100% properly about what might be on the test either. I failed my first test, the instructor laid on the pressure hard to.... The second time I knew what was coming (because they make you do the whole test) so I took it at another location to avoid getting the same instructor. Previous errors had made me much more relaxed, and down the road I started a conversation by asking the guy if he's into cars. Passed the second time he even told me he knows I can drive. I can tell you always to shoulder check, and at any stop sign even if you can't see stop at the line completely then move forward. Watch for signs, there are alot of signs out there, slow down coming to intersections not speed up. Always use your signal and shoulder check EVERY time. that's what I learned lol
  18. Not sure where your from man, so it all differs im sure. My suggestion would be, drive like your still a noob, meticulous but correctly, if you act to comfortable like driving by yourself they notice it and say hi and bye to your instructor, but focus more on driving an taking direction, those a-holes usually don't like to speak much anyways
  19. Don't be nervous and RELAX. that was my biggest problem. just start a conversation with your instructor and you'll forget your driving btw if you ever do make a mistake, don't stress about it and laugh it off. Don't expect your test to be over or it will be over. Positive thinking will ed up with positive results
  20. 1 point
    Persian dick as always Peter: If you want to start scripting and learn some java i will link you to some of the basics: Java Keywords: http://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html Wikipedia is best for the keywords as it gives a definition: http://en.wikipedia.org/wiki/List_of_Java_keywords Java parentheses: http://beginwithjava.blogspot.com.au/2008/07/parens-and-brackets-and-braces-oh-my.html explains the brackets you speak of.. Osbot API: www.osbot.org/api What is an API? http://en.wikipedia.org/wiki/Application_programming_interface Usefully java class's for scripting: http://docs.oracle.com/javase/6/docs/api/java/util/ArrayList.html http://docs.oracle.com/javase/6/docs/api/java/util/HashMap.html http://docs.oracle.com/javase/7/docs/api/java/lang/System.html Important for GUI'S! (User friendly is apart of scripting whether you like it or not) http://www.eclipse.org/windowbuilder/ And of course their is the osbot snippet section http://osbot.org/forum/forum/156-snippets/
  21. http://osbot.org/forum//public/style_extra/team_icons2/verifiedtrans.gif They're trying to get the image from /verifiedtransexualgif but they forgot the '.'
  22. 1 point
    Use "Configs". You can turn them on in "Settings -> Advanced". I've used this in my SnapeGrass script to check if the Quest "Fremmenik Trails" has been started: if(client.getConfig(347) != 1) { // Quest has not been started. } Every quest has another config ID. You have to start a quest and keep an eye on config changes. ;)
  23. I rather kill myself tbh.
  24. pls

    1 point
    Can't get your post count up in the spam section. :wacko:
  25. Not selling atm, gonna train and raise its price Thanks, and I dont even quest tbh..Questing is the last thing I'll do atm.
  26. Legit can vouch for zlitzhackz
  27. Sorry Laz, but the ads on YouTube are just too annoying
  28. Good to see you have finally got around to making an introduction. Glad you are here on OSBot. ^_^
  29. Guest
  30. that looks completely awesome, i'm pro coder, i would like to help you with this project. Edited: please pm me for more ideas.
  31. 1 point
    its ridiculous, no updates when the script is messed up, and i paid $15 for it... Lost 2 whips, d skirt, granite plate.
  32. Congratulations ,but VIP and sponsors should get our statues frozen for the 23-2nd Pretty unfair because we have paid for those benefits to have unlimited tabs
  33. 1 point
    RAFLESIA'S BIRRTHDAY TOMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMOROWOOWOWOW GUYS, GIVE HIM SOME GOOOOOOOOOOOOOOOODDYYYYYHYYY GIFTS!!!!
  34. Thanks for unlimited tabs, really useful a week after purchasing VIP! Edit: 2nd, fml.
  35. 2 days of botting lol
  36. All script developer will be paid by tonight. We are calculating what we owe everybody and payments will be sent. Thank you for your cooperation.
  37. Josh pls stop quoting every post with "youre welcome" OT: great guide!!!
  38. Vault. No me gusta caffeine.
  39. Yeah, hit me up and I'll verify this thread. I'm totally staff.
  40. So lately people have been posting that they've been getting hacked Which is in no way connected to OSBot, any hackings are the users own fault through other means not through OSBot And it's getting kind of annoying, so I figured I'd throw this together to help paranoid people avoid this Let's get a few things straight first: Firstly...when you start up the bot you DO NOT have to enter your account information. Even if you decide to do this, OSBot does not have access to these files as they are encrypted locally on your computer This has been verified by , an OSBot Administrator Secondly, you DO NOT have to include your account information while running a script. When you are prompted for which account to use while running the bot, simply click this button: It's really not complicated. Except the only downside to selecting 'None' is that if your account somehow gets logged out the bot will not be able to log back in automatically, and thus you will be stuck in the login screen. Will probably add more to this later when I see more people accusing OSBot of 'hacking' them through different ways. It's impossible for OSBot to hack you, and with over 3000 people using this bot, do you really think any admins will give a crap about your 4m bank? Na. Have a nice day. This is a serious guide, just sort of unfinished as of yet.

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.