Leaderboard
Popular Content
Showing content with the highest reputation on 09/12/15 in all areas
-
This update removes the MouseZoom random event and allows botters to use any zoom settings they wish. All credits go to @Zach for making this happen. Changelog: -Removed MouseZoom Random Event -Updated position calculations -Added Camera isDefaultScaleZ() This is a development build so there may be issues, please report any version 2.3.114 specific issues here. Edit: Moved to Stable Build -The OSBot Staff8 points
-
Nothing in here requires an in-depth explanation. I'd like to thank @Botre for reporting a serious bug that uncovered a lot of others hidden bugs. Also throw @Zach a few high fives for tracking down and killing off some pesky bugs. Yes, we plan on removing the Mouse Zoom random event solver at some point soon. Changelog: -Removed Settings isTabOpen(SettingsTab) -Rewrote Settings open(SettingsTab) --Checks internally if it's already opened -Removed Settings openHouseOptions() -Removed Settings closeHouseOptions() -Rewrote and Deprecated Settings setHouseBuildingMode(boolean) -Rewrote and Deprecated Settings isHouseBuildingModeOn() -Deprecated Settings areRoofsEnabled() and immediately returns false --Planning on rewriting -Deprecated Settings toggleRoofs() and immediately returns false --Planning on rewriting -Added Settings resetMouseZoom() -Updated MouseZoom random to check SettingsTab -Removed unused interfaces which were being initialized -Patched ItemContainer and RS2Widget for correct item ids -Patched Widget Debugger issues returning incorrect values -Updated Store API The OSBot Staff8 points
-
Introducing Muffin's Oakie/Teakie Planker ! WHAT ARE OAK PLANKS AND TEAK PLANKS USED FOR? An oak plank/teak plank is a material used in the Construction Skill. Each plank gives 60 Construction experience when used. NO REQUIREMENTS NEEDED TO BE MADE YO. WHAT DOES IT DO? Turns oak logs and teak logs into oak planks and teak planks for insane profit Supported Locations? VARROCK CAUSE THATS WHERE THE SAWMILL IS DUH. How can I get this script? Download it, and put it in C:/Users/YOURNAME/Osbot/Scripts Go into your script browser, hit refresh, and select it https://www.mediafire.com/?a7zp2h4lfefedwb How do I use this script? -Start with cash and oak/teak in your inventory -Start the script and select your plank via the GUI -Put Oak/Teak logs at the top of your bank -Start it in Varrock East Bank! -Profit! Thanks for viewing my thread and have a wonderful day! -Muffins Progress Reports: ANY BUGS THAT OCCUR POST ON HERE. Credits to: @Bobrocket for helping me with a Pathing issue! && @DubzieBug with a banking issue && @Okabe For some GUI Help4 points
-
4 points
-
im hyped for new areas and new scripts too, but sailing is something that does not attracts my attention2 points
-
2 points
-
efficient & flawless Link: Script now live: Here Features Bypasses Jagex's camera movement bot trap. new! Uses ESC key to close the interface new! Uses the higher xp method (aligns the camera to the target so it closes the menu when it pops up) NEVER gets in combat, 'tower' method of getting out of combat isn't even there (deliberately). Logs out when no money left Equips bronze arrows when necessary Displays 'goal' information, e.g. (at 77 range it will also show details for 80 range, time left, xp left, etc) Automatically equips higher level gear such as d'hide chaps and vambs Runs away just in case of emergency! ................................................................................................................................ With the bots on OSBot, Czar promises to deliver yet another incredible piece to the CzarBot empire. This means you will get to run the script with no worries about bans and xp waste. LEGENDARY HALL OF FAME 100 hour progress report Configuring the bot and the result: Set the npc attack option to 'Hidden' if you want to avoid deaths forever! For extra XP FAQ Why should I use this script when there are millions out there? It is the best script. Simply. Why are you releasing this now? It's time to make it public, it was privately shared with some friends and has been working flawlessly. Instructions There are no instructions. We do the all the work for you. CzarScripting™ Tips If you are low level, you can use a ranging potion at level 33 ranged to get in the ranging guild. Try and have as high ranged bonus as possible. Gallery ANOTHER 1M TICKETS GAINED !!1 point
-
by Czar Buy now (only $8.99!) 143 HOURS IN ONE GO!!!!! update: this bot is now featured on the front page of osbot! More reviews than every other fishing bot combined! 100 hour progress report!!! How to use Script Queue: ID is 552, and the parameters will be the profile name that you saved in setup! This process is really simple, just to save you headache1 point
-
1 point
-
1 point
-
1 point
-
so idiots dont come into the chatbox spamming "WTF WHY SCRIPT BORKEN NO WORK REFNUD SCRIPT BORKEN" because they dont have it on default zoom.1 point
-
1 point
-
They said there will be no pvp sailing but they might add a quest which includes pirates n stuff1 point
-
There can be as many arguments as you like, however the expressions can easily become cluttered and messy, so if you've got a lot of parameters, consider boxing them inside of an new object and passing that object as a single parameter. When you have multiple arguments, you have to wrap them in brackets and give each parameter a name, e.g.; #forEach((param1, param2, param3, param4, param5, param6, param7) -> doSomething(param5)); This is why Comparator works and why I've used it as so in my earlier post. Any interface can be used just so long as that interface is a functional interface, aka. an interface that only has one method. For instance, in Lambda, you cannot use MouseListener (or the other mouse/key listener variants), because they have two or more required methods implementations. If you wanted to implement interfaces via Lambda expressions for one MouseListener function (e.g., #mouseClicked(MouseEvent)), then you could do a work around such as this: import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.util.ArrayList; import java.util.List; public class MouseClicked implements MouseListener { // Create a list to store our new functional interface type (below) private final List<Listener> listenerList; public MouseClicked() { this.listenerList = new ArrayList<>(); } @Override public void mouseClicked(MouseEvent e) { // Check if list is empty if (!listenerList.isEmpty()) { // Iterate through the list and pass the MouseEvent to the functional interfaces listenerList.forEach(listener -> listener.mouseClicked(e)); } } // Delegate methods: public void addListener(Listener listener) { listenerList.add(listener); } public void removeListener(Listener listener) { listenerList.remove(listener); } // New functional interface: public static interface Listener { void mouseClicked(MouseEvent e); } /* * To hold true to the interface "contract", we will have to implement the * other methods that come packaged with MouseListener. However since we * don't need to use them/interact with them, we can leave their code bodies * empty. * * Irrelevant methods implements: */ @Override public void mousePressed(MouseEvent e) { // Ignored. } @Override public void mouseReleased(MouseEvent e) { // Ignored. } @Override public void mouseEntered(MouseEvent e) { // Ignored. } @Override public void mouseExited(MouseEvent e) { // Ignored. } } Then in your script: public void doSomething() { // Create new object, which also functions as valid MouseListener MouseClicked mc = new MouseClicked(); // Add MouseClicked listeners as Lambda expressions mc.addListener((e) -> System.out.println(e)); // Register the entire listener getBot().addMouseListener(mc); }1 point
-
Here I will be covering streams. Streams are great ways to essentially sort through lists. Why should we use streams? Since you can do just about anything with them in a single line of code. There are cases where streams probably aren't the most useful, take this: NPC guard = getNpcs().closest("Guard"); This is our bog standard way of grabbing the closest "Guard" npc. What it would actually be doing behind the scenes would be using a stream like so: public NPC closest(String name) { return getNpcs().getAll().stream().filter(npc -> (npc.exists() && npc.getName().equalsIgnoreCase(name))).min(new Comparator<NPC>() { @Override public int compare(NPC one, NPC two) { return Integer.compare(getMap().distance(one), getMap().distance(two)); } }).orElse(null); } Looks complicated, right? Here's what it would look like if it wasn't all one line: public NPC closest(String name) { Stream<NPC> unfilteredStream = getNpcs().getAll().stream(); Stream<NPC> filteredStream = unfilteredStream.filter(npc -> (npc.exists() && npc.getName().equalsIgnoreCase(name))); Optional<NPC> npc = filteredStream.min(new Comparator<NPC>() { @Override public int compare(NPC one, NPC two) { return Integer.compare(getMap().distance(one), getMap().distance(two)); } }); return npc.orElse(null); } Here's a breakdown of all the functions: (more on comparators in a bit) filter() -> This function will filter out our list for the specified properties that we're looking for in an NPC. In our case, we're looking for an NPC that exists and has a name of our variable "name". Every NPC that is in our region that doesn't suit our needs is discarded. min() -> This is a bit of a complicated function, but what it will do is find the NPC which returns the smallest compare() value. In this scenario, it will return the NPC which is closest to us. orElse() -> This is the same as an if (x) y; else z; statement, however basically what we are saying is if we could not find a suitable NPC, we can return the value inside orElse() (in this case, null). Now, this probably still looks like a bunch of wizardry to you. No worries, streams are scary at first, but after you know how to write them they're great! How to write a stream By now, you're probably itching to write a stream. In this example, we're going to find all the players within a 6 tile radius. To start off, we're going to have a function called getPlayersWithinSix(): public List<Player> getPlayersWithinSix() { return null; //We'll change this soon } Now we're going to begin the filter! To start off, we want to grab all the players, and put it in a Stream<Player>. This is what we will be filtering! public List<Player> getPlayersWithinSix() { Stream<Player> ourStream = getPlayers().getAll().stream(); return null; //We'll change this soon } Now that we have our stream, we can finally begin filtering! In this example, we only want to filter to see if the player is within 6 tiles of our own player. We're going to store the filter in another stream like so: public List<Player> getPlayersWithinSix() { Stream<Player> ourStream = getPlayers().getAll().stream(); Stream<Player> ourFilteredStream = ourStream.filter(player -> (player.exists() && getMap().distance(player) <= 6)); return null; //We'll change this soon } In our filter, we're checking these conditions: Does the player exist? Is the distance of the player within 6 tiles? Finally, we want to turn our Stream into a list so we can use it. We do this like so: public List<Player> getPlayersWithinSix() { Stream<Player> ourStream = getPlayers().getAll().stream(); Stream<Player> ourFilteredStream = ourStream.filter(player -> (player.exists() && getMap().distance(player) <= 6)); return ourFilteredStream.collect(Collectors.toList()); } See how we changed our return to ourFilteredStream.collect();? What that will do is put all of these players we found into a list, and return it. Now, this doesn't look like our streams from before, so to put it all in one line it would look like this: public List<Player> getPlayersWithinSix() { return getPlayers().getAll().stream().filter(player -> (player.exists() && getMap().distance(player) <= 6)).collect(Collectors.toList()); } Comparators, what do they do? A comparator is basically a way we compare two objects. Since the Comparator type is abstract (much like our Filter<T> class), we have to make our own compare() method. An example can be seen in our NPC closest function: new Comparator<NPC>() { @Override public int compare(NPC one, NPC two) { return Integer.compare(getMap().distance(one), getMap().distance(two)); } } What this Comparator does, in essence, is compare the distances of both NPCs (relative to the player). Since getMap().distance() returns an integer, we use Integer.compare to compare both of the distances. You'll most likely be using a Comparator to check for distance. More stream examples Here I'll be writing a few more stream examples to show why they're so useful. Find the furthest away NPC that has the name "Man": getNpcs().getAll().stream().filter(npc -> (npc.exists() && npc.getName().equalsIgnoreCase("man"))).max(new Comparator<NPC>() { @Override public int compare(NPC one, NPC two) { return Integer.compare(getMap().distance(one), getMap().distance(two)); } }).orElse(null); Get all the NPCs in a 10 tile radius that you can attack: getNpcs().getAll().stream().filter(npc -> (npc.exists() && npc.hasAction("Attack") && getMap().distance(npc) <= 10)).collect(Collectors.toList()); Get all the fishing spots where you can cage for lobsters: getNpcs().getAll().stream().filter(npc -> (npc.exists() && npc.hasAction("Cage") && npc.hasAction("Harpoon"))).collect(Collectors.toList()); If I missed anything, let me know1 point
-
Just brought, testing now. edit1: First bank run went well, used tab, refilled inv with tab/food and walked back smoothly. Nothing even remotely buggy so far. edit2: 57 minutes in, stopped showing the XP gains for HP?1 point
-
@bignskakey, what bugs do you speak of? i havent had any issues whatsoever, also not using the auto break timer (just stopping it after however many hrs i intend to bot for manually).1 point
-
As promised from the 2.3.111 development build, the OSBot Break Manager was re-written and is currently working with all the features found from the new settings interface. Here is some general info regarding the break manager: -Randomize bot/break time randomizes the time by 10% --Ex: 100 min bot time = 90-110 min bot time -If you are using a default account, you will be logged out after the bot time is reached --Should be obvious, you can't log back in without giving the client your user/pass Changelog: -Rewrote Break Manager -Patched Default account bug while logged-out -The OSBot Staff1 point
-
1 point
-
1 point
-
Doesn't matter, ip banned due to being a fuckin moron. User on the skype lynx.titan is @Dylan and is ip banned for scamming. They were doing services together and he was sharing his osbot account with him. Glad no one got scammed.1 point
-
1 point
-
Two minor improvements: Create a separate function to handle the logic of the filtering. It makes the Lambda expression more readable. Include comparator as a Lambda expression also. For example: /** * * @param npc * NPC object instance * @param name * Name to check against (case insensitive) * @return <tt>NPC is defined</tt> */ private boolean isDefined(NPC npc, String name) { return npc != null && npc.exists() && npc.getName().equalsIgnoreCase(name); } /** * * @param name * Name to check against (case insensitive) * @return NPC object instances */ public NPC getClosestNPC(String name) { return getNpcs().getAll().stream() .filter(npc -> isDefined(npc, name)) .min((npc1, npc2) -> Integer.compare(getMap().distance(npc1), getMap().distance(npc2))) .orElse(null); } Oh and everything after #stream(), I break-line each of the running expressions, to make them more readable also.1 point
-
1 point
-
Whenever I try to do a custom area osbot permanently becomes extremely slow & even unresponsive at times even when I cancel the script until I restart the whole client.1 point
-
1 point
-
Hi I bought your range guild script and loved it! Could I please have a trail for this and your other mining script to decide which one I should buy.1 point
-
1 point
-
WIld one here, any chance to add support for keeping your pickaxes in the inventory? Figured holding a some quest items may act as a small little anti ban. Or is that pointless?1 point
-
1 point
-
1 point
-
1 point
-
1 point
-
1 point
-
1 point
-
1 point