Leaderboard
Popular Content
Showing content with the highest reputation on 03/26/16 in all areas
-
๐ Perfect Czar Free Trials & Demos ๐ MOST POPULAR ๐ HIGHEST QUALITY ๐ MOST TOTAL USERS ๐ LOWEST BAN-RATES ๐ 24/7 SUPPORT ๐ SINCE 2015 ๐ MANY SKILLS ๐ MOST VIEWS ๐ MOST REPLIES ๐
๐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 thread6 points
-
APA Rock Crabs
4 pointsBefore buying, please ensure you check-out with the correct script. Swapping scripts is not possible. View in store $4,99 for lifetime use - Link to Sand Crabs script thread (better exp/h!) - Requirements: Camelot tabs / runes in main tab of bank Designated food in main tab of bank ~ 20-30+ combat level Features: CLI Support! (new!) Supports Ranged & Melee Attractive & fully customisable GUI Attractive & Informative paint Supports any food Custom cursor On-screen paint path and position debugging Supports [Str/Super Str/Combat/Super combat/Ranged/Attack/Super attack] Potions Collects ammo if using ranged Stops when out of [ammo/food/potions] or if something goes wrong Supports tabs / runes for banking Option to hop if bot detects cannon Global cannon detection Option to hop if there are more than X players Refreshes rock crab area when required Avoids market guards / hobgoblins (optional) Automatically loots caskets / clues / uncut diamonds Enables auto retaliate if you forgot to turn it on No slack time between combat Flawless path walking Advanced AntiBan (now built into client) Special attack support Screenshot button in paint GUI auto-save feature Dynamic signatures ...and more! How to start from CLI: You need a save file! Make sure you have previously run the script and saved a configuration through the startup interface (gui). Run with false parameters eg "abc" just so the script knows you don't want the gui loaded up and want to work with the save file! Example: java -jar "osbot 2.4.67.jar" -login apaec:password -bot username@[member=RuneScape].com:password:1234 -debug 5005 -script 421:abc Example GUI: Gallery: FAQ: Check out your own progress: http://ramyun.co.uk/rockcrab/YOUR_NAME_HERE.png Credits: @Dex for the amazing animated logo @Bobrocket for php & mysql enlightenment @Botre for inspiration @Baller for older gfx designs @liverare for the automated authing system4 points
-
Perfect Thiever AIO
3 pointsThis 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!3 points
-
๐ฅ KHAL SCRIPTS TRIALS ๐ฅ HIGHEST QUALITY ๐ฅ BEST REVIEWS ๐ฅ LOWEST BANRATES ๐ฅ TRIALS AVAILABLE ๐ฅ DISCORD SUPPORT ๐ฅ ALMOST EVERY SKILL ๐ฅ CUSTOM BREAKMANAGER ๐ฅ DEDICATED SUPPORT
2 points
- Perfect Miner AIO
2 pointsNEW CURRENT RECORD: 294 HOURS RUNTIME! Shoutout to @Ruutihattu NEW: Sandstone mining + hopper support Humidify/water circlet/bandit unnote Ardy cloak tele support Setup Screen Preview Results 84 HOURS ON NEW LEVEL 20 ACCOUNT Suicided account with mirror mode near rock crabs, 81 mining! I will probably go for 99 Even supports Ancient Essence Crystal mining! Preview: Mine 1 drop 1 item drop pre-hover feature:2 points- APA Script Trials
1 pointโโโโโโโโโโโโโโ PREMIUM SUITE โโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ FREE / VIP+ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ Sand crabs - $4,99 | Rooftop Agility - $5,99 | AIO Smither - $4,99 | AIO Cooker - $3,99 | Unicow Killer - ยฃ3,99 | Chest Thiever - ยฃ2,99 | Rock crabs - $4,99 | Rune Sudoku - $9,99 โก โ AIO Herblore - FREE & OPEN-SOURCE | Auto Alcher - FREE | Den Cooker - FREE | Gilded Altar - FREE | AIO Miner - VIP+ โก โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ What is a trial? A trial is a chance for you to give any of my scripts a test run. After following the instructions below, you will receive unrestricted access to the respective script for 24 hours starting when the trial is assigned. Your trial request will be processed when I log in. The trial lasts for 24 hours to cater for time zones, such that no matter when I start the trial, you should still get a chance to use the script. Rules: Only 1 trial per user per script. How to get a trial: 'Like' this thread AND the corresponding script thread using the button at the bottom right of the original post. Reply to this thread with the name of the script you would like a trial for. Your request will be processed as soon as I log in. If i'm taking a while, i'm probably asleep! Check back in the morning Once I process your request, you will have the script in your collection (just like any other SDN script) for 24 hours. Private scripts: Unfortunately I do not currently offer private scripts. ________________________________________ Thanks in advance and enjoy your trial! -Apaec.1 point- Khal AIO Agility
1 pointWant to buy with OSGP? Contact me on Discord! Detailed feature list: - Supports all rooftops (Draynor, Al-Kharid, Varrock, Canafis, Falador, Seers, Polivneach, Relekka, Ardougne) - Supports most courses (Gnome stronghold, Shayzien basic, Barbarian stronghold, Ape toll, Varlamore basic, Wilderness (Legacy), Varlamore advanced, Werewolf, Priffddinas) - Supports Agility pyramid - All food + option to choose when to eat - (Super) Energy potions + Stamina potions support - Progressive course/rooftop option - Waterskin support - Option to loot and sell pyramid top - CLI support for goldfarmers Custom Breakmanager: - Setup Bot and break times - Randomize your break times - Stop script on certain conditions (Stop on first break, Stop after X amount of minutes, Stop when skill level is reached) - Worldhopping - Crucial part to botting in 2023! Script queueing: - Support queueing multiple script in a row - All Khal scripts support flawless transitions in between scripts - Start creating your acc in a few clicks from scratch to multiple 99's - Flawless CLI support - Learn more here: How to use CLI parameters: - Example Usage: -script 463:ScriptFile.BreakFile.DiscordFile SAVEFILE = Saved Filename BREAKFILE = Breakmanager Filename DISCORDFILE= discordSettings Filename - SAVEFILE: Save file can be created in the GUI. Navigate to the tab you want to run and press "Save As CLI file". Please choose your filename wisely (No special characters) - BREAKFILE (Optional): Breakfile can also be create in the GUI, set the breaksettings you wish to use and press "Save new CLI BreakFile". Please choose your filename wisely (No special characters) - Final form (Note that with some bot manager you do not need to specify '-script 463'): -script 463:TaskList1.4515breaks (With breaks) -script 463:TaskList1.4515breaks.discord1 (With breaks & discord) -script 463:TaskList1..discord1 (NO breaks & discord, leave 2nd parameter empty) Proggies:1 point- Perfect Fisher AIO
1 pointby 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- Molly's Planker
1 pointMolly's Planker This script makes planks at Varrock East for gold. Buy HERE Requirements: None for regular method, for balloon method you need rings of dueling, willow logs(1 per run), be under 40KG weight with full inventory of coins + logs(wear graceful items for example) and you must have completed the quest Enlightened Journey. Features: - Hopping out of bot worlds - Stamina potion usage - Regular energy pot usage, this can be used in conjunction with stamina pots to reduce the amount of stamina pots used - Makes normal, oak, and teak planks -Enlightened journey balloon support Setup: Start at Varrock East, have coins and logs in bank and let it do work! CLI Setup: Proggies: Normal planks, no stam pots used:1 point- Molly's Chaos Druids
1 pointMolly's Chaos Druids This script fights chaos druids in Taverly dungeon, Edgeville dungeon and Ardougne. Profits can easily exceed 200k p/h and 60k combat exp/ph, this is a great method for training low level accounts and pures. Buy HERE Like this post and then post on this thread requesting a 24hr trial. When I have given you a trial I will like your post so you will receive a notification letting you know you got a trial. Requirements - 46 Thieving for Ardougne -82 Thieving and a Lockpick for Yanille - 5 Agility for Taverly(recommended) - No other requirements! Though I do recommend combat stats of 20+ as a minimum Features: - Supports eating any food - Hopping out of bot worlds - Recovers from deaths(respawn point must be lumbridge), includes re-equipping items on death - Potion support - Automatically detects and withdraws/uses Falador teleport tabs if using Taverly dungeon - Automatically detects and withdraws/equips/uses glories if using Edgeville dungeon - Supports looting bag Setup: Start the script, fill out the GUI, and be in the general area of where you want to run the script. CLI setup: Proggies: In the works: Known bugs: Bug report form, this is a MUST for problems to be resolved quickly: Description of bug(where, what, when, why): Log: Your settings: Mirror mode: Y/N1 point- [Tutorial][Indepth] A better take on task based scripts
People are intimidated by Task/Node based scripts because they think its difficult to write and understand. Well you shouldn't be scared, because I'm going to cover everything you need to know. Before going on to the tutorial, I'm expecting from you, To have at least basic knowledge of java To have at least basic knowledge of the OSbots API So what are Task/Node based scripts? Well its simply states but in OOP design. Alright, so we are going to make an abstract class for a Task. We will use this code which I will explain in a bit. import org.osbot.rs07.script.MethodProvider; public abstract class Task { protected MethodProvider api; public Task(MethodProvider api) { this.api = api; } public abstract boolean canProcess(); public abstract void process(); public void run() { if (canProcess()) process(); } } Breaking down this code just comes simply to a few things. A constructor which accepts the MethodProvider class, but why shouldn't it accept the Script class? Well because we only want the task to know about the OSbot api, not the whole methods that the Script class can have, like onLoop(), onStart(), etc. protected MethodProvider api; public Task(MethodProvider api) { this.api = api; } An abstract boolean public abstract boolean canProcess(); An abstract method public abstract void process(); And a run method public void run() { if (canProcess()) process(); } When a class will inherit the methods from the Task class, that class will have a constructor, an abstract method and boolean. The boolean canProcess() will be the condition on which the process() method will execute code. So basically we do the checks and processing with the run() method, we would just check if the condition is true and let the process() method execute code accordingly. Now, we got that abstract class Task, we are going to make it do work for us. We are going to make a drop task, the class will extend the Task class and it will inherit the abstract methods which the Task class has. The drop task will have a condition, the condition will be api.getInventory().isFull(), the condition will return true after the inventory is full and let the process() method execute script accordingly, the code will be api.getInventory().dropAll(); Our class will look something like this import org.osbot.rs07.script.MethodProvider; public class DropTask extends Task { public DropTask(MethodProvider api) { super(api); } @Override public boolean canProcess() { return api.getInventory().isFull(); } @Override public void process() { api.getInventory().dropAll(); } } As you can see we declare a constructor public DropTask(MethodProvider api) { super(api); } Now you might ask why the constructor looks a bit differently from the abstract Task class and what super(api) means? the super() keyword invokes the parents class constructor AKA the Task's class constructor. Now going further we see @Override public boolean canProcess() { return api.getInventory().isFull(); } So that is how our condition is handled, we just return the booleans variable based on what the getInventory().isFull() returns. In term, if the inventory is full the condition will be true, if the inventory is empty the condition will be false. Further on we see @Override public void process() { api.getInventory().dropAll(); } This is basically what our custom task will do after the canProcess() is true, aka when the condition is true. If inventory is full -> we will drop the items. ' After we got our custom task done, we need to let our script execute the tasks, now how we will do it? Simply we will open our main class which extends Script, meaning that the main class is a script. We declare a new ArrayList at the top of our class, to which we will add tasks to. Our main class should look like this import java.util.ArrayList; import org.osbot.rs07.script.Script; public class Main extends Script{ //this is our array list which will contain our tasks ArrayList<Task> tasks = new ArrayList<Task>(); @Override public int onLoop() throws InterruptedException { return 700; } } Now we have our ArrayList which we have a non primitive data type in it (<Task>), in term think of it like the ArrayList is inheriting the methods from Task class. All though its a different topic called https://en.wikipedia.org/wiki/Generics_in_Java you can look into that if you want. Alright, so we have our ArrayList, time to add our tasks to it. In our onStart() method, which only executes once when the script starts we simply add tasks.add(new DropTask(this)); So basically we are adding a new task to the ArrayList, by doing that, to the .add() we add a new object of our DropTask by doing .add(new DropTask(this)); our DropTask has a constructor for MethodProvider which we simply pass by doing DropTask(this) the keyword this references this class that contains the code. Now why does it work by referencing this class, its because the Main class extends Script, the Script class extends MethodProvider as its stated in the OSBots API docs. So we added our tasks to the ArrayList, now we need to check the conditions state and execute the code accordingly. We simply add this to our onLoop() method. tasks.forEach(tasks -> tasks.run()); Which will iterate trough all the tasks in the ArrayList and execute the run() method, as we remember the run() method in our abstract Task script simply checks the condition and executes code if the condition is true. After all this our main class should look like import java.util.ArrayList; import org.osbot.rs07.script.Script; public class Main extends Script{ ArrayList<Task> tasks = new ArrayList<Task>(); @Override public void onStart(){ tasks.add(new DropTask(this)); } @Override public int onLoop() throws InterruptedException { tasks.forEach(tasks -> tasks.run()); return 700; } } Now after all this you can start making your own tasks and adding them to the list. Alright for those who want quick pastes you can find them here in this spoiler: So no need to be scared, you just really need to try and do it, hope this tutorial helped.1 point- El's Little Design Shop [Fast] [Cheap]
1 point- Qhost Account Starter | AI | Customization
โบ Configuration saving/loading: - Save your configurations to use them again in the future. Especially handy when you need a lot of accounts of the same type. โบ Tutorial Island: - Auto-completes Tutorial Island with appearance customization โบ Combat: - Switch attack styles to reach desired combat level quicker - Deadwalk - Choose the combat type (pures, balances etc...) - Supports chickens & goblins based on combat level In development: - Grand exchange support for obtaining better weapons/tools - Currently working for woodcutting Planned: - Quests for 7 QP Media: Release information: - To come. There is still too much work to do to already be bothering about release.1 point- [FREE] Nominal clue collector
1 pointFeatures: Kills guards in the palace in Varrock Banking Clue scroll looting Eating any food Antiban Logging out when clue is looted โ Progress reports: Instructions to run: Type the food you want in then start in Varrock somewhere Download: http://s000.tinyupload.com/index.php?file_id=317527148559300290981 point- DMM Seasonal
1 point- One thing I noticed, old botted accounts when botted again, get banned extremely fast
So I have a lot of old botted accounts that haven't been used for 2-3 years. When I decided to make a few member and bot them, they got banned extremely quick, doing the same exact thing that other accounts were doing on the same IP. Just an observation, since brand new accounts have NO bans compared to 5/6 old accounts being banned. I don't know why this dilemma exists, but just a tip. Sell old botted accounts instead of botting on them again. Also another thing. Two of my accounts that haven't ever been botted or RWT'd on got hit with RWT bans. Funny enough my gold mule remained unbanned.1 point- Perfect Thiever AIO
1 pointscript seems to work flawlessly until around 20 minutes in then it starts to lag and hog the cpu usage1 point- APA AIO Cooker
1 point- ๐ฅ KHAL SCRIPTS TRIALS ๐ฅ HIGHEST QUALITY ๐ฅ BEST REVIEWS ๐ฅ LOWEST BANRATES ๐ฅ TRIALS AVAILABLE ๐ฅ DISCORD SUPPORT ๐ฅ ALMOST EVERY SKILL ๐ฅ CUSTOM BREAKMANAGER ๐ฅ DEDICATED SUPPORT
Experiments Trial Pretty please!1 point- Khal Woodcutter
1 point- Khal Motherlode
1 point- Banned :/
1 pointusing a public vpn? other people were prolly botting on same ip too which got u chained with 'em1 point- Banned :/
1 pointI'm pretty sure all VPN's are flagged af, why would you consider botting on a VPN?1 point- ๐ฅ KHAL SCRIPTS TRIALS ๐ฅ HIGHEST QUALITY ๐ฅ BEST REVIEWS ๐ฅ LOWEST BANRATES ๐ฅ TRIALS AVAILABLE ๐ฅ DISCORD SUPPORT ๐ฅ ALMOST EVERY SKILL ๐ฅ CUSTOM BREAKMANAGER ๐ฅ DEDICATED SUPPORT
- Script name Khal Blast Furnace - trial length 12h - Reason for trial Wanna try before buying! - Are you going to give feedback on the script? Sure1 point- ๐ฅ KHAL SCRIPTS TRIALS ๐ฅ HIGHEST QUALITY ๐ฅ BEST REVIEWS ๐ฅ LOWEST BANRATES ๐ฅ TRIALS AVAILABLE ๐ฅ DISCORD SUPPORT ๐ฅ ALMOST EVERY SKILL ๐ฅ CUSTOM BREAKMANAGER ๐ฅ DEDICATED SUPPORT
- Script name Khal Rockcrabs - Member number 1785911 point- Khal Pest Control
1 point- ๐ Perfect Czar Free Trials & Demos ๐ MOST POPULAR ๐ HIGHEST QUALITY ๐ MOST TOTAL USERS ๐ LOWEST BAN-RATES ๐ 24/7 SUPPORT ๐ SINCE 2015 ๐ MANY SKILLS ๐ MOST VIEWS ๐ MOST REPLIES ๐
Perfect Woodcutter trial please? Heard it's good, hoping it's better than the others. If so may be interested in buying.1 point- ๐ Perfect Czar Free Trials & Demos ๐ MOST POPULAR ๐ HIGHEST QUALITY ๐ MOST TOTAL USERS ๐ LOWEST BAN-RATES ๐ 24/7 SUPPORT ๐ SINCE 2015 ๐ MANY SKILLS ๐ MOST VIEWS ๐ MOST REPLIES ๐
range guild bot please1 point- APA Chest Thiever
1 point- PPOSB - AIO Hunter
1 pointDoes this script have progressive leveling and/or banking with webwalking?1 point- ๐ Perfect Czar Free Trials & Demos ๐ MOST POPULAR ๐ HIGHEST QUALITY ๐ MOST TOTAL USERS ๐ LOWEST BAN-RATES ๐ 24/7 SUPPORT ๐ SINCE 2015 ๐ MANY SKILLS ๐ MOST VIEWS ๐ MOST REPLIES ๐
Perfect Miner1 point- APA Rock Crabs
1 point- APA Chest Thiever
1 pointLooks awesome but you should add alching support to it. You've already got a very good alch bot but then again I have no idea how coding works. Excited for release either way!1 point- be free!
1 point- ๐ฅ KHAL SCRIPTS TRIALS ๐ฅ HIGHEST QUALITY ๐ฅ BEST REVIEWS ๐ฅ LOWEST BANRATES ๐ฅ TRIALS AVAILABLE ๐ฅ DISCORD SUPPORT ๐ฅ ALMOST EVERY SKILL ๐ฅ CUSTOM BREAKMANAGER ๐ฅ DEDICATED SUPPORT
Request Template: - Script name : Pest Control - trial length : How ever long you can do - Reason for trial : looking to buy - Are you ging to give feedback on the script? : Yes1 point- Khal Experiments
1 point- Khal Pest Control
1 pointhi khal! may i please have a 6 hour trial? ive used scripts from you before but never a pc script from anyone, trying to see if pc is the right way to train my str without gaining hp or if i should just stick to barb fishing! thanks very much very big fan of your work!!!!1 point- ๐ฅ KHAL SCRIPTS TRIALS ๐ฅ HIGHEST QUALITY ๐ฅ BEST REVIEWS ๐ฅ LOWEST BANRATES ๐ฅ TRIALS AVAILABLE ๐ฅ DISCORD SUPPORT ๐ฅ ALMOST EVERY SKILL ๐ฅ CUSTOM BREAKMANAGER ๐ฅ DEDICATED SUPPORT
would love rock crab trial would purchase if work's flawlessy.1 point- ๐ Perfect Czar Free Trials & Demos ๐ MOST POPULAR ๐ HIGHEST QUALITY ๐ MOST TOTAL USERS ๐ LOWEST BAN-RATES ๐ 24/7 SUPPORT ๐ SINCE 2015 ๐ MANY SKILLS ๐ MOST VIEWS ๐ MOST REPLIES ๐
Looking to try Czar Fisher, looking into buying.1 point- ๐ Perfect Czar Free Trials & Demos ๐ MOST POPULAR ๐ HIGHEST QUALITY ๐ MOST TOTAL USERS ๐ LOWEST BAN-RATES ๐ 24/7 SUPPORT ๐ SINCE 2015 ๐ MANY SKILLS ๐ MOST VIEWS ๐ MOST REPLIES ๐
Can I try your Magic script? I need to enchant a few things. I've bought one of your scripts previously. Hook me up. (:1 point- ๐ Perfect Czar Free Trials & Demos ๐ MOST POPULAR ๐ HIGHEST QUALITY ๐ MOST TOTAL USERS ๐ LOWEST BAN-RATES ๐ 24/7 SUPPORT ๐ SINCE 2015 ๐ MANY SKILLS ๐ MOST VIEWS ๐ MOST REPLIES ๐
Could i try the ranging guild?1 point- Molly Hobgoblins
1 pointMolly, could you possibly give me another crack at the trial? I bought your Druid script, but wanted to try your Hobgoblin script but I didn't get home till now. Proof I'm not giving you the runaround: https://gyazo.com/e6de13387d89d93dec7a5a7a0f6764251 point- Khal Woodcutter
1 point- Explv's Dank GUI Tutorial
1 pointWhy declare a JFrame within the script class? Separate it. public class GUI extends JFrame { public GUI() { setTitle("GUI); ... pack(); setVisible(true); } } Instantiate within the script class public class ShitScript extends Script { private GUI gui; ... @Override public void onStart() { gui = new GUI(); } @Override public void onExit() { if(gui != null) gui.dispose(); } ... } This way, you can manage your GUI without having to trawl through a ton of unrelated code in the script class.1 point- [Snippet] Warrior's Guild API
1 pointpublic enum TestEnum { SAPPHIRE("Sapphire", "blue", 1222, false); //here we add the name, color, price and if it's a member item. private String name; private String color; private int price; private boolean isMember; /** * * @param name * @param color * @param price * @param isMember */ TestEnum(String name, String color, int price, boolean isMember){ this.name = name; this.color = color; this.price = price; this.isMember = isMember; } /** * * @return name */ public String getName(){ return name; } /** * * @return color */ public String getColor(){ return color; } /** * * @return price */ public int getPrice(){ return price; } /** * * @return ismember */ public boolean isMember(){ return isMember; } } inventory.getItem(TestEnum.SAPPHIRE.getName()); 2min work.Google how enums work for a better understanding.1 point- Favorite Skills
1 point- Web walking [In progress]
1 pointWeb walker Hey, I have returned to OSBot and this time I have started a web walking project. I started working on it a little while ago and its soon done. Once its finished I am planning on re-writing my old scripts with this webwalker. Features Walking: - Surface world (95%) - Dungeons (60%) - Stronghold of security (100%) - I just need to add the last floor and its done. This is also the most tedious dungeon to add by far, due to the different paths + all the doors - Nieve slayer dungeon (100%) - Brimhaven dungeon (0%) - Taverly dungeon (100%) - Fremennik slayer dungeon (100%) - Edgeville dungeon (100%) - Kalphite dungeon (0%) - Other locations (100%) - Slayer tower (100%) - The pass to morytania (100%) Shortcut, obstacles & teleports: All of the agility shortcut and special traveling methods has conditions that needs to be met. This means that the script will not travel with gliders if you haven't done grand tree, and will not use agility shortcuts you don't have the level to handle. - Normal obstacles (100%) - Agility shortcuts (50%) - Traveling methods (80%) - Gnome glider (100%) - Spirit trees (100%) - Fairy rings (80%) - Can't add all locations until they have been mapped - Desert carpets (0%) - Charter boats (0%) - Teleports (0%) - Teleports & teletabs (0%) - Minigame teleports (0%) Media: In the video the walker is walking from lumbridge to the bridge in ardougne. Please note that I am going to fix the two way traveling with spirit trees, I just havent gotten around to connect every tree to eachother1 point- Basic streams, and how to use them
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- Stealth Injection VS Mirror?
1 pointTechnically we are injecting, but it's about as detectable as reflection. Mirror mode of course removes a bunch of traces which could be used to identify someone as a botter. We use the name "stealth injection" so people don't think we are mindlessly injecting into the game. It's pretty safe, I've been botting on it for about six months with no issues; bare in mind I bot maybe 10 hours a week. Stealth Injection - More detectable, less computer resources Mirror Mode - Less detectable, more computer resources1 point - Perfect Miner AIO