Leaderboard
Popular Content
Showing content with the highest reputation on 08/22/13 in Posts
-
6'th Month Anniversary
13 pointsDear 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.org13 points
-
OSBOT IS A RAT
5 points5 points
- Take a picture of your browser...
2 points- I have a dream
2 pointsHol' 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.2 points- 6'th Month Anniversary
2 points- OSBot Gilded Altar
1 pointOSBot 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!1 point- ★★ ►Cynical XBOX 1 Month Codes {25% off all prices}◄ ★ ★
1 point- Gaming Give Away!
1 pointOk, 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.1 point- Weekly or Monthly Challenges?
1 pointI 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.1 point- Whenever I see a thread really getting good...
1 point- 1000 posts & ...
1 point- 1000 posts & ...
1 point- Feedback system : Deal Topic suggestion
1 point- Account shop | Spotify Premium | Netflix EU & US!
1 point- ╰☆╮VERIFIED / 5% FEE ★ Skype's Middleman Service ★ 250+ FB╰☆╮
Vouch for skype, I'll be using him in the future.1 point- ★★SPIKES UNBANNING SERVICE★★
1 point- Need advice for Skrill/Moneybookers online E-wallet
Go on another forum and buy 07 gp for moneybookers, a lot of people use it because you can't chargeback!1 point- Taking my road test today, tips? Your experience?
1 point- Taking my road test today, tips? Your experience?
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 ;)1 point- Taking my road test today, tips? Your experience?
1 point- Osbot biggest jerk.
1 pointdebot , child , superman> not really but he just posts stupid stuff sometimes1 point- Taking my road test today, tips? Your experience?
Know your hand signs, 3 point turn, parallel parking, stop at red light, seat belt before turning on car.1 point- Taking my road test today, tips? Your experience?
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 lol1 point- Taking my road test today, tips? Your experience?
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 anyways1 point- Taking my road test today, tips? Your experience?
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 results1 point- learning java
1 pointPersian 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/1 point- Verified Transactor title issue (@Admins)
http://osbot.org/forum//public/style_extra/team_icons2/verifiedtrans.gif They're trying to get the image from /verifiedtransexualgif but they forgot the '.'1 point- Verified Transactor title issue (@Admins)
1 point- Quest status?
1 pointUse "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. ;)1 point- What to do with $80
1 point- What to do with $80
1 point- pls
1 point- Price Check On Baby Pure
1 pointNot selling atm, gonna train and raise its price Thanks, and I dont even quest tbh..Questing is the last thing I'll do atm.1 point- Starcraft 2 Maphack (2.0.11.26825))
1 point- Take a picture of your browser...
1 point- Hello osbot users
1 pointGood to see you have finally got around to making an introduction. Glad you are here on OSBot. ^_^1 point- Bidoofed's youtube hacked?
1 point- Take a picture of your browser...
1 point- OSBot Helper (Pre-Alpha Beta)
1 pointthat looks completely awesome, i'm pro coder, i would like to help you with this project. Edited: please pm me for more ideas.1 point- ****ing profanity Filter on OSRS
1 point- Stark GDK
1 pointits ridiculous, no updates when the script is messed up, and i paid $15 for it... Lost 2 whips, d skirt, granite plate.1 point- 6'th Month Anniversary
1 pointCongratulations ,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 tabs1 point- RAFLESIA
1 pointRAFLESIA'S BIRRTHDAY TOMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMOROWOOWOWOW GUYS, GIVE HIM SOME GOOOOOOOOOOOOOOOODDYYYYYHYYY GIFTS!!!!1 point- 6'th Month Anniversary
1 pointThanks for unlimited tabs, really useful a week after purchasing VIP! Edit: 2nd, fml.1 point- P/c perfect pure/staker. (:
1 point- Regarding SDN Payments
1 pointAll script developer will be paid by tonight. We are calculating what we owe everybody and payments will be sent. Thank you for your cooperation.1 point- [Pictures]How to Download the Client and add Scripts, Both Local & SDN[Video]
Josh pls stop quoting every post with "youre welcome" OT: great guide!!!1 point- What's your favorite energy drink?
1 point- Free Verified Stamps
1 point- Safety Guide for the Paranoid
1 pointSo 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.1 point - Take a picture of your browser...
Account
Navigation
Search
Configure browser push notifications
Chrome (Android)
- Tap the lock icon next to the address bar.
- Tap Permissions → Notifications.
- Adjust your preference.
Chrome (Desktop)
- Click the padlock icon in the address bar.
- Select Site settings.
- Find Notifications and adjust your preference.
Safari (iOS 16.4+)
- Ensure the site is installed via Add to Home Screen.
- Open Settings App → Notifications.
- Find your app name and adjust your preference.
Safari (macOS)
- Go to Safari → Preferences.
- Click the Websites tab.
- Select Notifications in the sidebar.
- Find this website and adjust your preference.
Edge (Android)
- Tap the lock icon next to the address bar.
- Tap Permissions.
- Find Notifications and adjust your preference.
Edge (Desktop)
- Click the padlock icon in the address bar.
- Click Permissions for this site.
- Find Notifications and adjust your preference.
Firefox (Android)
- Go to Settings → Site permissions.
- Tap Notifications.
- Find this site in the list and adjust your preference.
Firefox (Desktop)
- Open Firefox Settings.
- Search for Notifications.
- Find this site in the list and adjust your preference.