Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 05/16/16 in Posts

  1. CzarScripts #1 Bots LATEST BOTS If you want a trial - just post below with the script name, you can choose multiple too. Requirements Hit 'like' on this thread
    5 points
  2. thats not a female in my picture
    5 points
  3. mods that are guys irl with female pics r getting demodded, gg no re.
    5 points
  4. Stand by most likely we will be giving lifetime vip not sponsor, as we don't want to give people a false sense of trust that they spent 125 dollars on the site. I haven't talked to maxi on the give away. If you didn't leave your osbot name on the post you need to link me to your Fb so I can confirm or send osbot a message on Fb with your osbot name
    5 points
  5. Without further ado, here it comes: Happy 3'rd OSBot anniversary everyone! Three years ago we started out venturing in the world of OSRS botting and now we are here. It has been a sincere blast and with the developments over the last months we are sure we will bring another year worth mentioning! To celebrate we wanted to give something back to you guys so we decided that we are starting with giving away 5 LIFETIME Sponsorships. After that, we will have another round of giveaways, because we can! Special thanks goes out to you, the community, the community staff members who have been with us and those who still are and the development team. Without you, OSBot would not have been here. @Maldesto you are a true hero for handling this community, @Alek you are a true hero for keeping our scripters cornered and @Zach is there anything you can not do?! @MGI you are an amazing programmer and an even nicer person and @Dex please continue messing with our forums haha. @Asuna maybe you can teach Dex? @Genii, @Khaleesi, @Epsilon and everyone aforementioned; keep up the good work, you are awesome! What do you need to do to win? Like our OSBot Facebook page, like our anniversary post, share that post and be one of 5 to get that beautiful rank as a gratitude for your time with us. To get to the page and post click the image below. When will we announce the winners? On May 15'th we will make an announcement on the Facebook page as well as here on the forums. The winners will be only announced by their OSBot usernames with privacy in mind. Happy botting, The entire OSBot staff
    3 points
  6. The ones who made a secondary Facebook just for this or have 0 friends, do you think we wanted you to share it to your 0 friends? There is a reason we mentioned sharing it. To spread the word.
    3 points
  7. was so close to believing it! had to zoom in to spot the difference between the legit
    3 points
  8. 3 points
  9. can you stop with that: "Best Regards, Williamg0d =D" you don't need to do that in all of your posts and comments lol.. that's really annoying
    3 points
  10. This is an AIO (All-in-one) bot that has almost every thieving style except blackjack, ask for a free trial by liking thread or making a post! Vyres and elves are now supported! Both can make solid profit per hour, decent passive income! BIG THANK YOU TO ALL OUR SUPPORTERS! WE ARE THE MOST SOLD THIEVING BOT IN OSBOT HISTORY. MOST REPLIES, MOST USERS, LONGEST PROGGIES #1 Thiever | Most Overall Sales | Most Total Replies | Most Results | 10+ Years Maintained | 'the intelligent choice' by Czar SUPPORTS VYRES 224M made in a single sitting of 77 hours 1.1B made from elves and vyres!! ELVES SUPPORTED TOO! (NEW) 2.1m/hr, 6 crystals in 7 hrs 99 THIEVING MANY MANY TIMES, 35M EXP IN ONE BOTTING RUN!! 99 thieving in ~43k xp (12 minutes remaining)! Just got 99 proggy! Gratz to @iz0n THIEVING PET AT LVL 22 FROM TEA STALLS 11.5 HOURS, WITH PET TOO!! 610k/hr getting 99s on deadman worlds!
    2 points
  11. NEW! Added Gemstone Crab! 81 Hours at Cows Brutal Black Dragon support Sulphur Nagua support Blue Dragon 99 ranged 99 Ranged at Gemstone Crab 81 Range F2p Safespotting Hill Giants Hotkey List // F1 = set cannon tile // F2 = hide paint // F3 = Set afk tile // F4 = reset afk tile // F6 = Set safespot tile // F7 = activate tile selector // F8 = Reset tile selector // F9 and F10 used by the client, EDIT: will re-assign as they are no longer used by client // F11 = Set breaks tile // F12 = Reset breaks tile User Interface Banking Tab Demo (handles everything with banking) You can copy inventory (to avoid adding individual items...), you can insert item names which have Auto-Fill (for you lazy folk!) and you can choose whether to block an item and avoid depositing it in bank, ideal for runes and ammo. Looting Tab Demo (From looting to alchemy, noted/stackable items too) You can choose whether to alch an item after looting it simply by enabling a checkbox, with a visual representation. All items are saved upon exiting the bot, for your convenience! Tasking Demo (Not to be confused with sequence mode, this is an individual task for leveling) You can set stop conditions, for example to stop the bot after looting a visage, you can have a leveling streak by changing attack styles and training all combat stats, you can have windows alert bubbles when an event occurs and an expansive layout for misc. options! Prayer Flick Demo (Just example, I made it faster after recording this GIF) There are two settings: Safe mode and efficient mode, this is safe mode: Fight Bounds Demo Allows you to setup the fight bounds easily! Simplified NPC chooser Either choose nearby (local) NPCs or enter an NPC name to find the nearest fight location! Simple interface, just click! Level Task Switch Demo (Switching to attack combat style after getting 5 defence) You can choose how often to keep levels together! e.g. switch styles every 3 levels Cannon Demo (Cannon is still experimental, beta mode!) Choose to kill npcs with a cannon, recharges at a random revolution after around 20-24 hits to make sure the cannon never goes empty too! Results Caged Ogres: How does this bot know where to find NPCs? This bot will find far-away npcs by simply typing the NPC name. All NPCs in the game, including their spawn points have been documented, the bot knows where they are. You can type 'Hill giant' while your account is in Lumbridge, and the bot will find it's way to the edgeville dungeon Hill giants area! Here is a visual representation of the spawn system in action (this is just a visual tool, map mode is not added due to it requiring too much CPU) Fight Area Example (How the bot searches for the npc 'Wolf') Walking System The script has 2 main walking options which have distinctive effects on the script. The walking system is basically a map with points and connections linking each point. It tells the script where to go, and decides the routes to take when walking to fightzones. Walking system 1 This uses a custom walking API written by myself and is constantly being updated as new fightzones are added. Pros: - Updates are instant, no waiting times - More fightzones are supported Cons: - Sometimes if an object is altered, the changes are not instant - Restarting the script too many times requires loading this webwalker each time which adds unnecessary memory (there is no way to make it only load at client startup since I don't control the client) Walking system 2 This is the default OSBot webwalking API - it is relatively new and very stable since the developers have built it, but is currently lacking certain fightzones (e.g. stronghold) and other high level requirement zones. It is perfect for normal walking (no object interactions or stairs, entrances etc) and never fails. Pros: - Stable, works perfect for normal walking - All scripters are giving code to improve the client webwalker - More efficient when restarting the script since it is loaded upon client start Cons: - No stronghold support yet - Some new/rare fightzones not supported yet - If there is a game-breaking update or an unsupported fightzone, it may take some time to add/repair (less than 24 hours usually) So which system should I choose? Whichever one suits your chosen fightzone best! There really shouldn't be any problems - the sole purpose of these options are for backup and emergency purposes, if the script ever messes up there is always the next option to select. Note: If the script ever fails, there will be immediate updates to fix the walking systems! Script Queue/Bot Manager: Script ID is 758, and the parameters will be the profile name that you saved in the fighter setup! Bug Report templates: New feature request - What is the new feature - Basic description of what the script should do - Basic actions for the script: 'Use item on item' etc. For when the script gets stuck on a tile (or continuous loop): - Which exact tile does the script get stuck on? (exact tile, not 'near the draynor village') - Plugin or normal script? - Did you try all 3 walking options? Script has a logic bug (e.g. dies while safespotting) or (cannon mode doesn't pickup arrows) - What is the bug - How did you make the bug happen - (optional) recommendation for the bug, e.g. 'make the script walk back' or something - Tried client restart? - Normal script or a plugin? - Which exact setup options are enabled? Afk mode, cannon mode, etc etc.
    2 points
  12. Molly's Thiever This script is designed to quickly and efficiently level your thieving! Check out the features below. Buy HERE Features: - Capable of 200k+ per hour and 30k+ exp/ph on mid-level thieving accounts. - Quickly reaches 38 thieving to get started on those master farmers for ranarr and snap seeds! - Fixes itself if stuck. - Hopping from bot-worlds. - Stun handling so the bot doesn't just continually spam click the npc. - Drops bad seeds if inventory is full at master farmers. - Eats any food at the hp of your choosing. Supports: -Lumbridge men -Varrock tea -Ardougne cake -Ardougne silk -Ardougne fur -Kourend Fruit Stalls -Ardougne/Draynor master farmer -Ardougne/Varrock/Falador guards -Ardougne knight -Ardougne paladin -Ardougne hero -Blackjacking bandits as well as Menaphite thugs, this has limitations, click the spoiler below to see them Setup: Select your option from the drop down menu, it will tell you the location where the target is located. Fill out the gui and hit start. Simple setup! Proggies: Proggy from an acc started at 38 theiving:
    2 points
  13. Hey guys, I'm new to the community, and also to script developing, so for my first script I wanna make is a flip bot. I will update this post with progress, video's and screenshots. I also would like to hear what you guys think about it, or what it is missing. Ps: should I make this free or paid? - Answers: Free for F2P items, paid for P2P. Development progress Current Alpha version bugs: TO ALL ALPHA TESTERS, KEEP TRACK OF THIS LIST. THIS WILL BE UPDATED EVERY FEW MINUTES Aborted items wont be collected properly. This is kind of a weird situation. (CURRENTLY DELETED) - Changes applied, failed. There is some kind of a weird delay when aborting items, and it's hard without a non-ge API to react to that. depending on widgets worked sometimes, but the situation is weird. GF Jagex. More than 8 items in one profile -> you're gonna have a bad tile - Fixed It just randomly gets out of sync with the grand exchange boxes too - Fixed Item names like charcoal will get chosen over coal, when coal is entered as an item. - awaiting Introduction First I want to thank everyone for the support, ideas, hate, and love! Currently the script will be open for alpha testing. You can post here or message me to apply. I can't promise that I'll give it to you, since I'm gonna keep this very private now. Also, alpha testers will have a hardcoded date in the script that will make the script complete useless after a while. (to be determined yet) Setting up the script. In-game UI But, how does it work?! Well, this script requires some knowledge about flipping. My method might not be the best, but this used to make me bank. Be aware that low cashstacks will not result in much profit/hour. So, this technique uses a peek and flip system. The bot will buy an item for a lot, and sell it for – wel euhm – not a lot. (This is the part where u loose a bit of money). Then He will save those values and calculate the difference. When the difference is big enough, it will start buying those items for the lowest price, and sell them for the highest. Now, since prices always change, it’s hard for a bot to keep perfect track of this. That’s why the repeek and abort timers are implemented. It won’t be perfect, but it does the job. Screenshots
    2 points
  14. What is going on?
    2 points
  15. done good luck ;) Btw guys, just going to code some paths and some areas before task mode is released, luckily this script will still be the first agility script with task mode feature on this site ^^
    2 points
  16. How would a 9500 euro fine be bragging lol that's moronic if anything.. gl on your farm
    2 points
  17. I don't see any evidence that may indicate that @guesswhosafes is responsible for those phising links. Can you screenshot me the message source please? You can view this by going to actions > view message source on the outlook website when you open the email.
    2 points
  18. PPOSB - AIO Hunter Brand new trapping system just released in 2024! *ChatGPT Supported via AltChat* https://www.pposb.org/ ***Black chinchompas and Black salamanders have been added back*** Supports the completion of Varrock Museum & Eagle's Peak OR CLICK HERE TO PAY WITH 07 GOLD! The script has been completely rewritten from the ground up! Enjoy the all new v2 of the script JOIN THE DISCORD CHAT FOR QUESTIONS/ SUPPORT/ CHATTING/ UPDATES! New GUI: Features: Click Here Current functioning hunter tasks: (green - complete || yellow - started || red - incomplete) Screenshots: Progressive Leveling: 1-19 --> Crimson swift 19-43 --> Tropical wagtail 43-63 --> Falconry 63+ --> Red chinchompas Updates How to setup Dynamic Signatures Report a bug CLI Support - The script now supports starting up with CLI. The commands are given below. Please put in ALL values (true or false) for CLI to work properly. Make sure they are lowercase values, and they are each separated with an underscore. The script ID for the hunter bot is 677. Parameters: EnableProgression_EnableVarrockMuseum_EnableEaglesPeak_EnableGrandExchange Example: -script 677:true_true_false_true ***Don't forget to check out some of my other scripts!*** OSRS Script Factory Click here to view thread LEAVE A LIKE A COMMENT FOR A TRIAL The script is not intended for Ironman accounts. It still works for Ironman accounts, but you must have all equipment, gear, and items.
    1 point
  19. Heya, I just learned this so I thought i should share this with you guys. This is for the people that have never worked with Visual Studios C# programming before. This is what your end product will look like (or simillar, depending on your own design preference) First of all, open Microsoft Visual Studio 1. Making a new Project - Go to --> File --> New --> Project --> Click Visual C# --> Windows Forms Application - Change the name to something like 'calculator'. - Let the solution name change itself. - Obviously, hit OK afterwards. 2. This is what you should start with 3. Changing the name & size of our Calculator - In the right bottom right you can see the properties of your selected item. If you do not see this, click the Form1 application once or right-click properties. - To change the name we're going to change its Text in the properties. Scroll down in the properties untill you find its Text. Change this to 'Calculator' or something like that. Be sure to change its Text and not its name, since these are two different things which i'll be explaining lateron. - To change its size, you can simply Drag the Calculator to your desired size or you can change its size in the properties. The size I used for my calculator is Width 426, Height 404 4. This is what your Calculator should look like after doing steps 1 - 3 5. Adding the Textpanel - First of all, your Calculator needs Textpanel to show the answers of the calculations ofcourse. - We'll do this by opening the Toolbox at first. Navigate to --> View --> Toolbox. - The Toolbox is shown now, with the Toolbox you can add various things such as buttons. - Search the Toolbox until you find the 'RichTextBox', drag&drop it into your Calculator. - Change its size to your desired size. - Change its name to something like 'tbAnswer' (since its a textbox and we're going to show our answer in it) 6. Adding our Buttons - Search for a button in the Toolbox and drag&drop it into your Calculator. - Give it any size and place you want. - Change its Text to '1' and its name to something like 'bt1'. (since it's a button and it's for the number '1') The name is what the button will be 'called' or 'recognised' as. - Do this for all the other buttons aswell; 2, 3, 4, 5, 6, 7, 8, 9, 0, Calculate, CE, +, -, * , / and '.' - Your result would look like this: 7. Making our buttons do something - Firstly, we'll need to define some objects. string input = string.Empty; //String storing user input string operand1 = string.Empty; //String storing first operand string operand2 = string.Empty; //String storing second operand char operation; //char for operation double result = 0.0; //calculated result Write the code above this message between public partial class Form1 : Form { and public Form1() like this --> I've written some quick information about the objects in the green colored text. - Now we need to 'link' our buttons with a piece of code. To do this, you have to Double-Click on the button itself. - Do this for all the buttons. - Visual Studio has now made a private void for every button. It should look like this. private void btn1_Click(object sender, EventArgs e) { } - Obviously, we should add some code so the private void actually has an action to perform. - To make the btn0 result a '0' once its clicked, we can use something like this: private void btn0_Click(object sender, EventArgs e) { tbAnswer.Text = ""; input = input + "0"; tbAnswer.Text = tbAnswer.Text + input; } //tbAnswer is our Textbox. We need to define this on top so the Textbox starts with a 'clean line', with no text. (otherwise clicking multiple times on the 0-button wouldn't add multiple 0's. //input We defined a String, input. We defined it as an empty String but we're going to give the string some 'information' to store. The new input will be : the current input + "0". This means, if the input has been defined as 0 (because we've clicked the 0-button), and we click the 0-button again it will change to "00" instead of staying at "0". //tbAnswer.Text is our text which is linked and shown in our Textbox-Answer. We define our new tbAnswer's Text to: the current tbAnswer Text + our new defined input. - Do this for all numbers so your result will be: private void btn0_Click(object sender, EventArgs e) { tbAnswer.Text = ""; input = input + "0"; tbAnswer.Text = tbAnswer.Text + input; } private void btn1_Click(object sender, EventArgs e) { tbAnswer.Text = ""; input = input + "1"; tbAnswer.Text = tbAnswer.Text + input; } private void btn2_Click(object sender, EventArgs e) { tbAnswer.Text = ""; input = input + "2"; tbAnswer.Text = tbAnswer.Text + input; } private void btn3_Click(object sender, EventArgs e) { tbAnswer.Text = ""; input = input + "3"; tbAnswer.Text = tbAnswer.Text + input; } private void btn4_Click(object sender, EventArgs e) { tbAnswer.Text = ""; input = input + "4"; tbAnswer.Text = tbAnswer.Text + input; } private void btn5_Click(object sender, EventArgs e) { tbAnswer.Text = ""; input = input + "5"; tbAnswer.Text = tbAnswer.Text + input; } private void btn6_Click(object sender, EventArgs e) { tbAnswer.Text = ""; input = input + "6"; tbAnswer.Text = tbAnswer.Text + input; } private void btn7_Click(object sender, EventArgs e) { tbAnswer.Text = ""; input = input + "7"; tbAnswer.Text = tbAnswer.Text + input; } private void btn8_Click(object sender, EventArgs e) { tbAnswer.Text = ""; input = input + "8"; tbAnswer.Text = tbAnswer.Text + input; } private void btn9_Click(object sender, EventArgs e) { tbAnswer.Text = ""; input = input + "9"; tbAnswer.Text = tbAnswer.Text + input; } - Now, we need to give our operation buttons a action aswell (+,-,* etc.) We need to do this a little differently, take a look at the following code: private void btnPlus_Click(object sender, EventArgs e) { operand1 = input; operation = '+'; input = string.Empty; } //operand1 will be set to the 'information' our defined input carried with it. our operation will be '+'. we will clean our defined input, we define it as a Empty String once more, we need to do this because we need to have 2 sides of numbers to be able to count this above each other. (example ; 3 + 3 = 6 , 1 number on the left of the our operation '+' and one on the right) - Do this for all of the operation buttons, i'm not telling you what to do with the dot-button & CE-Button. You'll have to think about this yourself. If you can't figure out, look at the code below. (It's easy!) It should look like this: private void btnmin_Click(object sender, EventArgs e) { operand1 = input; operation = '-'; input = string.Empty; } private void btnPlus_Click(object sender, EventArgs e) { operand1 = input; operation = '+'; input = string.Empty; } private void btnKeer_Click(object sender, EventArgs e) { operand1 = input; operation = '*'; input = string.Empty; } private void btngedeelddoor_Click(object sender, EventArgs e) { operand1 = input; operation = '/'; input = string.Empty; } private void btnPunt_Click(object sender, EventArgs e) { input = input + "."; } private void btnCE_Click(object sender, EventArgs e) { input = string.Empty; tbAnswer.Text = ""; } - Now, we have 1 button left to give a action it should perform on a Click, the Calculate button. - This one is actually a big one, and will probably be hard for you to understand. - We need to define a few more objects for the Calculate button. Do this in the Calculate's Click method! operand2 = input; double num1, num2; double.TryParse(operand1, out num1); double.TryParse(operand2, out num2); //operand2 Will be defined as the 'information' input caried within it. //doubles doubles are numbers with decimals (Example : 4,21) - Now, every operation needs its own action it should perform. We are doing this with if & else cases, just like Java. For our '+' operation: If the operation is +, we should add the num1 and num2 together, right? This is how that would look like in code: if (operation == '+') { result = num1 + num2; tbAnswer.Text = result.ToString(); } //result We are defining result to: The answer of num1 + num2 //result.ToString() The result we defined, would be an answer of numbers, which is an int. The .Text method only works with Strings (multiple characters, like a text. Example: "Heya") Because the .Text method only works with String we need to change our answer , which is an int, to a String. - For the '-' operation it would be: else if (operation == '-') { result = num1 - num2; tbAnswer.Text = result.ToString(); } //else if This is because there can only be one 'if', all the others should either be 'else if' or 'else'. - Make all the actions for the remaining operations. - The full code of your Calculate button should look like this: private void btnCalculate_Click(object sender, EventArgs e) { operand2 = input; double num1, num2; double.TryParse(operand1, out num1); double.TryParse(operand2, out num2); if (operation == '+') { result = num1 + num2; tbAnswer.Text = result.ToString(); } else if (operation == '-') { result = num1 - num2; tbAnswer.Text = result.ToString(); } else if (operation == '*') { result = num1 * num2; tbAnswer.Text = result.ToString(); } else if (operation == '/') { result = num1 / num2; tbAnswer.Text = result.ToString(); } } - Now, if you've done everything like I did, your Calculator should work! - Try it out! Click on the 'Play' button on the top. - The full code:
    1 point
  20. did you really just discover this
    1 point
  21. aw that's cute :] look at @Genii in the corner thinking he's slick
    1 point
  22. Hey Czar - can I get a trial of the magic script I already purchased :D - seriously though any ideas on the Orb Charger??? OR any way I can get in on the Trials??????
    1 point
  23. 1 point
  24. I know your confusion seeing as there are so many people saying different things like some people saying one thing, while others are saying completely opposite things. In my experience, I have been banned on accounts that I would bot at the same times as other accounts, but never were they all smashed at the same time. Eventually they all got banned. However, seeing as though I would bot 4 or 5 accounts using the same script on 1 laptop with no proxy/VPN, I think it has a lot to do with the quality of scripts or methods you are using. Also, I only ever get banned whenever someone reports me. I asked a similar question on here a few weeks ago whether or not proxies are worth it. You can check it out since the advice a lot of people gave might help you. I'm still thinking of investing in proxies for the sole purpose of botting heaps of accounts. But resources get expensive hahah. Anyway, I don't think you need to rely on proxies or VPNs imo.
    1 point
  25. Useing this script for a while now and its still working perfect and no ban yet Keep it up Apaec<3
    1 point
  26. 1 point
  27. when i press play .the script wont start up . it was just working when i purchased yesturday
    1 point
  28. Nice lol. Malzahar ult gives me cancer.
    1 point
  29. 1 point
  30. No , Czar. The guy is correct. You used to be able to start in canafis bank it would walk to experiments, now it just walks to priest in peril ladder. Hopefully its fixed soon.. I seen my account doing this after 50 or some odd minutes.. because the script had worked flawless for weeks. pay attention to your bots boys!
    1 point
  31. can you add motherlode support please?
    1 point
  32. Mule support as in grabbing items from a mule or transferring gold to a mule? EDIT: Or both Atm I use a mule to give bond/supplies to my bots, but I manually transfer the gold. I can code some kind of system for transferring gold easy though, just finishing off GE mode
    1 point
  33. Hi czar, could I get a 24h trial for your stronghold bot please? want to test it
    1 point
  34. Script updated to V0.36: - Fixed jewel crafting, most of it changed due to these new jewels.. Should be online in a few hours! Khaleesi
    1 point
  35. 1 point
  36. I bought the script a bit ago, and I want to know how often should I be using it? I guess I've been suicide botting new accounts to almost 70 mining then they get banned so im thinking of just safe botting. Will 8 hours a day be overkill? Should I set breaks? And bot maybe like 4 days a week for a certain amount of hours? I just want a goldfarmer, I already play legit on 2 accounts
    1 point
  37. Go to CVS and buy a prepaid visa giftcard and then use that to buy scripts
    1 point
  38. Alright I think there was another webwalking update then. Will be fixed in next SDN update.
    1 point
  39. With this you can lookup: Price Icon (32x32 normal and 96x96 large) Description Name Others I've also included some caching to minimize API lookups but you can disable this if you want. Usage: Create a new instance of the API: GrandExchangeApi api = new GrandExchangeApi(); Look up an item: GELookupResult result = api.lookup(itemId); Get data about the item: int price = result.price; String iconUrl = result.smallIconUrl; String description = result.description; //etc Snippet: import java.io.IOException; import java.net.URL; import java.util.HashMap; import java.util.Map; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * Utility class for access to the Grand Exchange API. */ public class GrandExchangeApi { /** * The URL of the API endpoint. */ private static final String API_LOCATION = "http://services.runescape.com/m=itemdb_oldschool/api/catalogue/detail.json?item=%d"; /** * The cache in which items that have already been looked up are stored. */ private final Map<Integer, GELookupResult> cache; /** * Creates a new Grand Exchange API instance, with caching enabled. */ public GrandExchangeApi() { this(true); } /** * Creates a new Grand Exchange API instance. * @param cache Whether to enable caching of results. */ public GrandExchangeApi(boolean cache) { if(cache) { this.cache = new HashMap<>(); } else { this.cache = null; } } /** * If caching is enabled, clears the cache so that new results are fetched on lookup. */ public void flushCache() { if(cache != null) { cache.clear(); } } /** * Looks up an item using the Grand Exchange API. This method blocks while waiting for the API result. * @param itemId the id to look up. * @return the result returned by the api. May be null if an error has occurred. */ public GELookupResult lookup(int itemId) { if(cache != null) { GELookupResult result = cache.get(itemId); if(result != null) { return result; } } String json; try { URL url = new URL(String.format(API_LOCATION, itemId)); Scanner scan = new Scanner(url.openStream()).useDelimiter("\\A"); json = scan.next(); scan.close(); } catch(IOException e) { return null; } GELookupResult result = parse(itemId, json); if(cache != null) { cache.put(itemId, result); } return result; } /** * Parses a GELookupResult from the JSON returned by the API. * @param itemId The item ID. * @param json The JSON returned by the server. * @return The serialized result. */ private static GELookupResult parse(int itemId, String json) { Pattern pattern = Pattern.compile("\"(?<key>[^\"]+)\":\"(?<value>[^\"]+)\""); Matcher m = pattern.matcher(json); Map<String, String> results = new HashMap<>(); while(m.find()) { results.put(m.group("key"), m.group("value")); } int price = 0; Matcher priceMatcher = Pattern.compile("\"price\":(?<price>\\d+)").matcher(json); if (priceMatcher.find()) { price = Integer.parseInt(priceMatcher.group("price")); } return new GELookupResult( results.get("icon"), results.get("icon_large"), results.get("type"), results.get("typeIcon"), results.get("name"), itemId, price ); } /** * A class representing a result from an API lookup. */ public static final class GELookupResult { public final String smallIconUrl, largeIconUrl, type, typeIcon, name; public final int id, price; private GELookupResult(String smallIconUrl, String largeIconUrl, String type, String typeIcon, String name, int id, int price) { this.smallIconUrl = smallIconUrl; this.largeIconUrl = largeIconUrl; this.type = type; this.typeIcon = typeIcon; this.name = name; this.id = id; this.price = price; } } }
    1 point
  40. In spirit of Frog Friday, we have a weekend release for all to enjoy. Finally got around to patching some logic which has been driving me crazy for about a year, Bank depositAllExcept. If your inventory did not have the specified item in the call, it would still individually deposit each item instead of clicking the "Deposit All" button. Other than that debugging should work again and scripters should be pleased with the new getDirectoryData() method. Example: new File(getDirectoryData()+getName()+File.separator+"info.txt"); Additionally the ScriptAnalyzer has now been disabled; I've gathered enough information from local scripts to being developing a server-sided solution. Changelog: -Patched debugging, see the "FAQ" for more information on arg flags -Improved Bank logic -Added Inventory getEmptySlotCount() -Added Script getDirectoryData() -Disabled local ScriptAnalyzer -The OSBot Staff
    1 point
  41. Mhm, Bad Quality ikr..
    1 point
×
×
  • Create New...