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

  1. GTi

    Trade With Caution
    8
    Points
    1076
    Posts
  2. Anne

    Java Lifetime Sponsor
    8
    Points
    6983
    Posts
  3. Occazn

    Trade With Caution
    8
    Points
    1033
    Posts
  4. Mikasa

    Ex-Staff
    7
    Points
    10756
    Posts

Popular Content

Showing content with the highest reputation on 08/12/13 in all areas

  1. 7 points
    Someone just raged quit ingame and gave me 2m, Rather than being greedy and selling it, I'lm going to give it away. OSbot is a great community, and I'd like to give something back to it To win all you have to do is LIKE this post, don't bother posting if you don't want too. I'm far too lazy I don't want to go through reading all the posts, I'll just use a number generator and count down to that number. Example: If i get 5 likes, and it goes like this: player 3435 likes this player 244 likes this player 343 likes this player 4997 likes this player 53 likes this Let's say the number generator chooses number 2, the person that wins will be the second person.. (player 244) SIMPLES. THIS IS FOR 2007SCAPE.
  2. Everyone has different reasons for leaving, and I'll respect you either way, however, it's always great to see you stay @@Occazn, in your case, I completely support you leaving. Asians got homework. Reason 1: I've been active on many other bottling websites and I've always ended up back on OSBot. The times I've spent on other communities has ways been a disappointment in one way or another. There isn't a better place to go, OSBot has always been number one. Reason 2: OSBot has been able to offer the most content, the quickest, while remaining secure. They offer things other bots simply can't. OSBot has always had the best bot to offer. Reason 3: I've been in your position. I've tried to leave this place many times because of things I disagreed with. Not only was I stupid to do that, but I should have never gotten mad in the first place. Everything OSBot does is with the users best interests in mind. Reason 4: OSBot has more to offer than a bot. It's active community, dedicated staff team are enough to allow anyone to stay and have a good time. If you don't think the forums are your thing, try the chat, and talk with people who share similar interests as you.
  3. 3 points
    Anyways, if you look closely, you can tell that it's photoshopped. I didn't notice it until I was looking on my phone, but around the text, it is significantly whiter than the rest of the page :wacko:
  4. He's written countless scripts, all of which are extremely popular and have accumulated a lot of downloads. One of the scripts he wrote was the GMC SuperScript Factory which has proven to be a popular script and a rather complex 1 at that. He is extremely capable of writing complex scripts/programs and has much experience under my belt such. He has written many things such as MORPGs from scratch etc (shown me on skype). He has also demonstrated capability of listening to the community as his thread requesting script ideas is one of the largest in the section. and many other reasons. Not really sure why you guys have not picked up on him yet, unless its something personal, I know kati didn't like him all that much, which shouldn't be a reason.
  5. Would be pretty good if people who released premium scripts could select an option which allows users to run their script for like maximum of 3 hours (or even specify their own time frame) , as a trial. then after the 3 hours is up, they can't run it anymore. just a 1 off 3 hours or so, to see if the script interests them and is worthy of them buying etc.
  6. 2 points
    QConstruction What people have been waiting for, a construction script. Price: $5.99 (One time) Download: http://osbot.org/forum/store/product/72-qbotsconstruction/ Features: - Larders (Normal/Oak) - All chairs - All tables - All bookcases - More upon request - Butler support soon - Tab support - Castle Wars and Camelot banking (Want somewhere else? ASK) Changelog: [Aug 11] V1 - Chairs, larders, and tables functional and flawless; GUI setup; Paint made [Aug 12] V1.2 - Castle wars support added. Teletab support added. [Aug 12] V1.3 - Bookcase support added [Aug 29] V1.5 - Teletab support for all current locations fixed/added. Antiban added. Some misc. issues fixed. [Aug 31] V1.51 - Code cleanup. Run now reenables. Misclicking portal fix(Will reenter). Sleep while moving added. [Sept 15] V2.0 - Mounted Glory support. Butler support. Deposits items not needed for construction. Some GUI cleanup, should hopefully work for mac users. Images: This will be a premium script with a price of $4.99 (Might be lower on release)
  7. http://puu.sh/3ZXsN.png Saved me 30M in items
  8. Do not accept .PIF Files from ANYONE on Skype. No matter how convincing they may look! These users are known for sending .PIF files through skype. Zemmah (rens.verbeemen) or (zemmah) [or any similar name - not 100% on full skype name - most likely from Belgium] Evann =3 (kleinekevermans) ALWAYS REQUEST ANY PICTURES TO BE UPLOADED TO IMGUR, OR SCREENSHOTTED WITH PUUSH/LIGHTSHOT/GYAZO OR OTHER SIMILAR PROGRAMS Suspected forum user(s): @Command, @Smeo His forum username is unknown as of yet, and will probably remain that way unless a moderator checks his IP, will PM his real IP on request as he may be using a proxy IP is found in Occazn's picture 80.200.128.56 Proof: Command + Smeo both contain the last name Verbeeman in their registered forum Email, as well as @Smeo's E-Mail is Evan.Verbeeman@gmail.com (HI EVANN) and the username Zemmah's skype is more than likely rens.verbeeman (as shown below) All 3 skypes connect to the same IP
  9. I am sure he wants to convice people to stay by telling us how awesome OSBot is. OT: fully agreed, well written Ah i see. well i agree with the compliments and shouldn't this thread go in: Feedback? It's not necessarily feedback, rather it's an encouragement.
  10. "There's 10 million dollar under the....." *dies* Ohyea I would give my facebook password to a friend and he has to make a status "lol free internet in hell" and update my status frequently to scary people. Than I can die in peace.
  11. I'd laugh if they were qutting for school.. schools an xp waste, I prefer to sit inside and eat mark donalds errday
  12. 2 points
    I actually rofl'd irl sorry man. Btw since everyone answers with a picture here.......... And that's not photoshopped but shitty iPhone quality. http://i.imgur.com/8rwn8b3.jpg
  13. 2 points
    You all need to get out more, maybe then you'll realise were all human and there's millions of attractive women all over the place.
  14. 2 points
    why you nerds only obsessed with half naked chicks? :wacko: always give bad ratings unless boobs are showing.
  15. Voted yes, I think both of you are excellent script writers and would love to see you guys rewarded for the hard work you two have invested into OSBot. Edit: Make votes public if you want, I would like to know who says no.
  16. 2 points
    w00t a girl!!! But in my opinion AnneLotte is more handsome :$
  17. 2 points
    Community, I knew that this day would come, just as it has come many times before. Not only for me, but for many before me and after me. A decision was made by me and I had my reasons to make the decision. Whether the decision was just, right, wrong, is flexible. I'm not afraid to admit that the recent actions of mine were highly uncalled for. The decisions didn't only hurt my fellow Administrators, who I admire each and every one of, my actions hurt the community I helped build from the ground. I acknowledge the betrayed trust towards everyone at this community, including the staff team which I introduced most of. Not only has OSBot been embarrassed, I've myself been embarrassed. I can apologize but I can't fix it. I've done all I can to revoke my bad actions and restore the community to its faithful standpoint. I have an excessively strong feeling for the entire staff team. We sure have been through some difficult times and harassments; some hilarious and some serious. I'll gladly admit that every moment of it was worthwhile and enjoyable. I do understand that many people like me and many people do not. For the people who do like and trust me, let me tell you something. You're wasting your time trying to fight for me. There is no battle, it's over. I've accepted it and moved on. It was a wonderful run and I enjoyed (almost) every minute of it. To the ones who don't like me, I apologize for whatever I've done to you. You can choose to accept my apology or deny it. That's your decision and there's no reason for me to influence it. Life lives on. Clearly there are questions about who I am or who I may be. I'm not about to comment on that because of several reasons. That is one of my choices. I will tell you this. I've stuck with OSBot from the very beginning. Not only OSBot, but communities before. I've had great dedication, massive amounts of time, and many friends throughout it all. One simple mistake ruined it. Maybe I regret my decision, maybe I don't. My regrets don't matter at this point. What's done is done. I especially appreciate Maxi and Laz for their continued faith in myself. They are amazing, intelligent people and we've stuck through some hard times. They're quite pissed at me, which sucks. I don't blame them. In the position I was in many will say what they would have done as would I. What you'd actually do in the moment is a different story. I'm not here to judge.. just here to make my amends. I don't know if I'll stick around, disappear, come back under an alias. I haven't made any decision. My say and jurisdiction on the staff team no longer exists. I hope we've taught each other enough for them to make it without me. I wish them the best of luck. That being said, my final requests may not surprise you. I have thought about introducing Raflesia to an administrator position for quite some time. Not sure if I've mentioned it to anyone. In his replacement I feel Smart would fit the job best as super mod. You can take my requests as I give them: advice. My intentions have always been great for OSBot. People make mistakes. The sooner you realize, the better. Once again, I apologize to everyone, and wish them a farewell from my administration. Kati And no, I didn't sell the database.
  18. I understand there's already a topic on this, I find it somewhat difficult to understand. Please understand that using breaks is an important part in keeping your account unbanned. More information on how to bot smart -> http://osbot.org/forum/topic/6894-bot-smart-what-it-is-how-to-do-it/ Defining the parts of a "break" [Average Interval] - The "average interval" is the average time between breaks. It's an "average" because of interval deviations, which i'll be getting to in a moment. This is how much time will be in between your breaks on average. [interval Deviation] - This is a very important part of making sure jagex doesn't notice a precise pattern in our breaks. Lets say your "average interval" is 75 minutes, and your "interval deviation" is 10 minutes. This means that the time between your breaks can be anywhere from 65 - 85 minutes. [Average Break Time] - The "average break time" is the average length of the breaks your account will be taking. It is an average, because there are also break deviations, which I will get to in a moment. Your "average break time" should be how long you want your account to stay logged off per break on average. [break Time Deviation] - Break time deviation is very similar to "interval deviation". Your "break time deviation" is how much the length of your accounts break can deviate from the average time. Lets say your "average break time" is 20 minutes and your "break time deviation" is 5 minutes. This means your accounts breaks will be anywhere from 15-25 minutes long. Here is a picture of my break setup Please be sure that you have the "enable breaks" box selected. Now, let me explain how breaks work going off of my break setup. My "average interval" is 75 minutes. my "interval deviation" is 25 minutes. This means that the time in between my accounts breaks can be anywhere from 50 - 100 minutes. my "average break time" is 25 minutes. My "break time deviation" is 10 minutes. This means that the length of my accounts breaks can be anywhere from 15 - 35 minutes. If you have any more questions, please feel free to ask below. Drop a like on the post if this helped you!
  19. Get this script - http://osbot.org/forum/store/product/64-gmcexterminatecrabs/ Notice: There is currently an issue where if you turn DashAI off, the script will bug out. An update is coming soon to fix this. I am also updating DashAI to be smarter and less obvious than its previous version. Get this script - http://osbot.org/forum/store/product/64-gmcexterminatecrabs/ Have any issues? Suggestions? Post here and I'll do my best to help you.
  20. 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!
  21. 1 point
    If the tutorial is small here, go here >> http://ztrinity.deviantart.com/art/Samus-Tutorial-383012439?ga_submit_new=10%253A1372996848 Hope you guys enjoy! This took forever to do, so if you enjoyed it, please like this post If you have a deviant art, please favorite it! http://fav.me/d6c1aaf
  22. 1 point
    While working on a UI for someone i got inspired to make these little music tags. These are free and you can leave a request for one of these, if i have free time i'll make it. (When you include the link, try avoid VEVO, it ruins music by censoring certain words.) Request Form Artist Name: Song Name: Youtube Link:
  23. Today I finally got around to finishing up the world hopping system. This was also a nice moment to bring the random management system in to action. For anyone interested in the random management system in action code wise for the world hopping system, here you go: package org.osbot.script.rs2.ui; import org.osbot.engine.Bot; import org.osbot.script.mouse.RectangleDestination; import org.osbot.script.rs2.randoms.RandomBehaviourHook; import org.osbot.script.rs2.randoms.RandomManager; import org.osbot.utility.Gaussian; import java.awt.*; import java.util.ArrayList; import java.util.Map; /** * Created with IntelliJ IDEA. * User: Maxime * Date: 26-05-13 * Time: 19:24 * To change this template use File | Settings | File Templates. */ public class WorldHopper { private final Bot bot; private boolean isHopping = false; private int nextWorld = -1; public WorldHopper(Bot bot) { this.bot = bot; } /** * Logs you out and changes hops to the world specified. This method does not take in to account full worlds yet, * so hopping to a full world will fail. * @param world Worlds range from 301 to 378 but remember that the worlds * 307, 315, 323, 324, 331, 332, 347, 348, 355, 356, 363, 364, 371, 372 * do not exist. */ public void hopWorld(int world) throws InterruptedException { nextWorld = world; isHopping = true; bot.getScript().randomManager.registerHook(hook); while (bot.getClient().getLoginState() != 10) { if (bot.getScript().logoutTab.logOut()) { Thread.sleep(500 + Gaussian.random(300, 300)); } } } private static enum State { GO_TO_SELECTION, WORLD_SELECTION, UNHOOK; } private RandomBehaviourHook hook = new RandomBehaviourHook(RandomManager.LOGIN_SCRIPT) { private State state = null; @Override public String getName() { return "World Hopping"; } public void scan() { if (!isHopping || bot.getClient().getLoginState() != 10 || nextWorld == -1) { state = State.UNHOOK; return; } if (bot.getClient().getColorPicker().isColorAt(54, 294, Color.BLACK)) { state = State.WORLD_SELECTION; return; } else { if (bot.getClient().getCurrentWorld() == nextWorld) { state = State.UNHOOK; } else { state = State.GO_TO_SELECTION; } } } /** * The main loop logic. This will continue until shouldActivate() returns true or * -1 is returned. * * @return The time to sleep until the next loop. * @throws InterruptedException */ @Override public int onLoop() throws InterruptedException { scan(); switch (state) { case GO_TO_SELECTION: bot.getClient().moveMouseTo(new RectangleDestination(new Rectangle(12, 466, 86, 26)), false, true, false); return 600 + gRandom(200, 200); case WORLD_SELECTION: Rectangle dest = getWorldMouseDestination(nextWorld); bot.getClient().moveMouseTo(new RectangleDestination(dest), false, true, false); return 600 + gRandom(200, 200); case UNHOOK: nextWorld = -1; isHopping = false; bot.getRandomManager().unregisterHook(RandomManager.LOGIN_SCRIPT); return -1; default: return 500 + gRandom(500, 500); } } @Override public void onExit() { isHopping = false; nextWorld = -1; } }; /** * Calculates the rectangle of the destination to click a world. * @param world The specified world in the range of 301 - 378 * @return The rectangle used for the mouse destination */ private Rectangle getWorldMouseDestination(int world) { ****** } ***** static { ***** } } Furthermore I started on a breaking system. You will be able to set your break settings per saved account profile, which will then be used if you enable it. Expect both updates to be released tonight or tomorrow, Sincerely, OSBot.org
  24. For those who tl;dr: OSBot is awesome. Don't go anywhere. :3
  25. I am sure he wants to convice people to stay by telling us how awesome OSBot is. OT: fully agreed, well written
  26. 1 point
    Very interesting! I think we die and our soul just stays in the world and we haunt people like ghosts.
  27. Jagex support sucks. Still pending xD
  28. 1 point
    v1.30 should be live now.
  29. If his claim is actually genuine, then saying to "stop crying" about a 1m loss is absolutely ludicrous. Users want to be confident that the scripts they use act as intended and only so. Losing valuables of any kind is unacceptable (unless due to OSBot random handler failure).
  30. 1 point
    Wait for v1.30 to be pushed by admins.
  31. 1 point
    sandwich lady ain't got shit on him...
  32. I've done numerous ones without C4D Text, reason why i use it is because that's what people want. As for these smaller signatures, i've designed hundreds of those and more, however the person who makes the order decides what they want, not me. If someone decides they want one of those small signatures, i'll happily make one.
  33. 1 point
    LOL, i dont see the point in wanting people to believe that you're a girl. probably "Debot" trying to come back
  34. 2 days? No, no. Takes only few hours with constructive and mature posts.
  35. 1 point
    Hi, cute photoshop job
  36. He will not do that. He scammed me too. He has withdrawn all his money he ever paid me. -- IP: 2.217.46.132 Country: United Kingdom State/Region: London, City of City: London Latitude: 51.5142 (51° 30′ 51.12″ N) Longitude: -0.0931 (0° 5′ 35.16″ W)
  37. 1 point
    http://images.google.com/search?tbs=sbi:AMhZZiubTZMO7MjHwF5131Zf44ZqRtid0k46IRpcpnZsV2qGtgxxMZCeIsFGPyZDWRZ5X4CVsPD0gM0ZriR0Jew_1OtlTlktUkK1jZWlLax_175YFxOzvIfvhRED44itlYCbtQVnGxN_1bo4khG-HaP-8E3J2MK0Ne7zgiTjDJ9tLDVmk0jb4rmbvTOiu2q4RRNv8sKVL3M_1-2ojUn9MnYvA0G_1CtGArt3E82h3ml4V5fEo3Yxazw-qirwFhhcsJiYTTKgB4hk2G1qJZPvR_1veMzu2VfV7RAJBF2MnLREwXWbUmyyQc3JzPZS5t_1oXO1V2JuseSvZTbbC-Q43xProSJZIr9MWJaW4Dls7O1_1KGWMURnLFyIYUvx3FehO_1lTG4V5G_1oFU-xFWk719T2clBCVUZ89zVP0r0RGUPVbBHkjXaiqCTi1N_1YLixBz23SxQGZjQb7en6C0fwk680fFn2PbLVdkibKu-E3y-2dkY17YcyGY_1mLfcMwtzM82WW-vziEmPEnAsLFUVoM4u7bCDsNnIgx-VEeQzafC7mikTaBfS7c4FT0O3ssc4ECt6KU7iugNcKHe2cPLnvvOsMHVGAJSj32qmtMdn5AAgYNqD-Aq0-0rBfDPLjTaTD2650EBafRqJP-wDPxBcMDwWK-5R3Ng6fMm791AFysJXEFVfdmnIFdJjamlf4NHuMq9VMG5ptnvyF6LY1Ub-vd-3mFUnbam3uzXTOhwoe4YzOsgdpkL6egjEQr8SOl0aQXXqXFo94DdV7ALyFFCMJF7pRTCp3fDQA-wdagL6PgZ1ydlLea84fRUdtTdQByEiORTWxJjONnYXJNSvWtzHCKZ9gL0YJsLZOGnXER6klCHY6F0o7AQsI0B7qg2mUXng7yCo5fmnsTV8V4c5eJSeywh6SY_1OwHKZ1HjiPwumFE2jqcp2GUO7sqnVf5jTwMS39pmu7HJXKmiKNkJPMOqQB_17z8TicU7oQBj3ew2JexVtmDZ4lZJhb9WhL13CP4_1f5nsKsxbeT5QanJA5_1ZqXno1-YUVHKID596zxOIcR9EGNASl1C_1ZjOK0VlIQJ5AzqMgaRD_1mSjhNUq2QECRMLzVlVXICzrbc4xhwCcGrUsgnJScJXJ0tpFLsV6g3XHq-nOek62zHTsRlp6k4a-kQuJJ1ThwB_1jwXFZjQJfM1ilWoGRhwFdQ1K3CApO_1wjFuXWUQGs_1z-sqR3L1Hx8-4a27HN_1gl4efvDL4i4GDI8EowUgZwHjZnvXOQlJbaXV6zTGG0IkR1z5a93SKWBENO8rpu0CG5OhB2TJqGWszeTQIeP9Ds3ArhX-Nhl3cdND4wIIvd0&bih=177&biw=206
  38. 1 point
    Thanks! Will definitely work on it for that 10/10 I'd stay range based. 94+ range, and 60atk/85str you'll be a low combat, have beast specs, and rape anyone with range Yeah that's what i had in mind! Is mage really necessary if i'm not planning to blitz or barrage pk? Na, its not needed if you don't plan to use mage at all. just makes your pure look nice
  39. I've figured that much out myself, but thanks for clarifying a bit. but how were they blackmailed is what i dont understand. How was the information handed over.. I think thats what most of us want to know I'll have to correct Ely right there before this rumour spreads stronger. Kati, like said by Ely, gave a copy of the OSBot database which contains only information about your forum account to someone who wanted to have it. Whatever was exchanged for this and why exactly this was done will remain a mystery as we don't know who is telling the truth. All that matters now that we require everyone to refresh their passwords on the forums and make sure their emails/rs accs/etc are secure meaning not use the same password and email etc. Kati was demoted and taken away all access and power given to her.
  40. 1 point
    Nice Combat Goodluck on your Build.
  41. Osbot username+Runescape display name can be checked so what you said wouldnt matter, unless someone wants to create 20 osbot accounts and 20 rs accounts to test a script for 20 hours.
  42. 1 point
    Don't give him anything, and don't fall for his threats. Also, if you get DDOSed, reset your router and block the IPs. To get the IPs, open up your CMD and do the command: netstat -a That will show all the connections on your computer, all unfamilair IPs are the IPs attacking you.
  43. Let's just say you'll be disappointed Would you like help finding a real pc? Just read below, i'll edit this post =] cpu : http://www.amazon.com/Intel-i7-4770K-Quad-Core-Processor-BX80646I74770K/dp/B00CO8TBQ0/ref=sr_1_1?ie=UTF8&qid=1376175861&sr=8-1&keywords=intel+i7+4770k cpu cooler : http://www.amazon.com/Cooler-Master-Hyper-212-RR-212E-20PK-R2/dp/B005O65JXI/ref=sr_1_1?s=pc&srs=2529193011&ie=UTF8&qid=1376175979&sr=1-1&keywords=cooler+master mobo : http://www.amazon.com/LGA1155-Z77-CrossFireX-Motherboard-PRO4-M/dp/B007RS70YW/ref=sr_1_2?s=electronics&ie=UTF8&qid=1376176378&sr=1-2&keywords=ASRock++Z77+Extreme3 ram : http://www.amazon.com/Corsair-Vengeance-Desktop-Memory-CMZ8GX3M1A1600C10/dp/B005T63BJM/ref=sr_1_3?s=electronics&ie=UTF8&qid=1376176084&sr=1-3&keywords=corsair+vengeance+8+gb gpu : http://www.amazon.com/GIGABYTE-GeForce-PCI-Express-Graphics-GV-N65TOC-1GI/dp/B009L946F6/ref=sr_1_3?ie=UTF8&qid=1376175888&sr=8-3&keywords=gtx+650+ti case : http://www.amazon.com/CM-Storm-Enforcer-Computer-Windowed/dp/B004WK3KKQ/ref=sr_1_6?s=pc&srs=2529193011&ie=UTF8&qid=1376175979&sr=1-6&keywords=cooler+master psu : http://www.amazon.com/Corsair-Enthusiast-Modular-Bronze-TX850M/dp/B005E98EI2/ref=sr_1_2?s=electronics&ie=UTF8&qid=1376176148&sr=1-2&keywords=corsair+cx850 hdd : http://www.amazon.com/Western-Digital-WD1002FAEX-Internal-Desktop/dp/B0036Q7MV0/ref=sr_1_1?s=electronics&ie=UTF8&qid=1376176233&sr=1-1&keywords=western+digital+caviar+black+1tb cd rom : http://www.amazon.com/Asus-24xDVD-RW-Serial-Internal-DRW-24B1ST/dp/B0033Z2BAQ/ref=sr_1_3?s=electronics&ie=UTF8&qid=1376176252&sr=1-3&keywords=cd+rom You can add an ssd for a bit more, change out the case, upgrade more ram easily, and same with gpu. The cpu power is good so it will handle the gpu really well. If you ever decide to upgrade to a 300-400 dollar gpu you can easily do that with this build. I recommend cooler master cases btw also i didnt even bother calculating it before i posted, so ill check right now *Bit much over you budget, but you can downgrade you cpu to a... http://www.amazon.com/Intel-i5-4670K-Quad-Core-Desktop-Processor/dp/B00CO8TBOW/ref=sr_1_2?s=electronics&ie=UTF8&qid=1376176621&sr=1-2&keywords=intel+i5+3570k
  44. do I have to stand in Camelot area? cos i stood in catherby bank and the bot started to work like hell on the command line.

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.