Leaderboard
Popular Content
Showing content with the highest reputation on 10/10/21 in all areas
-
Want to buy with OSGP? Contact me on Discord! Detailed feature list: - Account builder mode to level your firemaking to level 50 or even higher. - Equips pyromancer gear option - Chopping and burning logs (base Option) - Relights brazier - Fletch option - Fix brazier option - Make potion and heal pyromancer when down option - Tons of food supported - Brazier swicthing when pyromancer is down - Advanced game settings to skip games, smart caluclate points, afk at certain points, ... - Bank or Open crates - Dragon axe special attack - Fletch at brazier option - Chop in safespot option - Worldhopping - 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 909:ScriptFile.BreakFile.DiscordFile SAVEFILE = Saved Filename BREAKFILE = Breakmanager 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 managers you do not need to specify -script 909): -script 909:TaskList1.4515breaks (With breaks) -script 909:TaskList1.4515breaks.discord1 (With breaks & discord) -script 909:TaskList1..discord1 (NO breaks & discord) Proggies:1 point
-
Progamerz AIO Prayer Buy now($6.99): Store Or Like the post and comment below to get 12 hours trial Discord Support Server Features Simple and easy to use GUI Supports 4 different modes(Bury, Gilded altar, Chaos Altar, Ectofuntus) Supports burying bones available in bank Supports looting bones around and burying Supports using gilded altar in Yanille OR Remmington Supports multiple banking methods for gilded altar Supports "Personal Host" mode, in which the script will light up the incenses when needed Supports "Friend Host" mode, in which the script will go to, and use the bones on altar Supports auto detection of gilded altar host, when having the option "Auto find host" enabled Supports logging out when host is not found and option "Auto find host" is not enabled Chaos altar supports travelling using Burning Amulet and dying from the wine of zamorak to get out of wilderness with druid support Chaos altar supports Anti-PK, it will try to hop worlds whenever a player appears Ectofuntus supports with using ectophial to teleport to ectofuntus or going by walking to ectofuntus Ectofuntus supports filling buckets with slime or using a bucket of slime available in the bank If you have any suggestions or features you would like to see in the script, comment on the thread! Screenshots CLI(Command line interface)1 point
-
Pretty impressed so far. We'll see how long I can last do with short hours per day. Going to try and get more accounts and pump my numbers up @Goopie1051 you're my motivation1 point
-
Crafting is a good one, any cooking/preparing pie dishes etc would also be useful since they make at least ~100k/hr profit these days1 point
-
1 point
-
I've seen a lot of people on here that still to this day think that using the basic run down getWidgets() method works. Example: [DO NOT USE] @Override public int onLoop() { log(getWidgets().get(int rootId, int childId).getMessage()); getWidgets().get(int rootId, int childId).interact(); return 300; } Note: This is a big NO NO! The reason why is because you're not properly null checking the widgets, and will cause the script to fail if the widget returns as a null, so lets get started! Basic Tutorial [FOR NOOBS]: So lets take into consideration that you just want to do things with your widget but you find yourself down the road running into problems with it not working properly. First we want to get our widget, but how do we do this? Simple let's call for a widget and store it! private RS2Widget getMyWidget() { //Replace ids with your ids RS2Widget storedWidget = getWidgets().get(int rootId, int childId); return storedWidget; } Now that we have our basic method getMyWidget() created, we still need to null check getMyWidget() before using it. Below you will see how to use it in your onLoop() method! @Override public int onLoop() { if (getMyWidget() != null && getMyWidget().isVisible()) { log(getMyWidget().getMessage()); getMyWidget().interact(); } else { log("(Error) - Can't use any action for getMyWidget(). Returning as null or invisible."); } return 300; } You're now officially done, you've created a method to get your widget and to check if it's not null and is visible on screen! BUT LETS KEEP GOING TO MAKE IT EVEN MORE SIMPLE! Lets make a boolean method to check to see if our widget is working. private boolean isMyWidgetWorking() { return getMyWidget() != null && getMyWidget().isVisible(); } Now we have to change our original if statement in the onLoop() method. @Override public int onLoop() { if (isMyWidgetWorking()) { log(getMyWidget().getMessage()); getMyWidget().interact(); } else { log("(Error) - Can't use any action for getMyWidget(). Returning as null or invisible."); } return 300; } CONGRATULATIONS YOU'VE SUCCESSFULLY KNOW HOW TO USE A WIDGET! YOU'RE FINAL RESULTS SHOULD LOOK SIMILAR TO THE ONE BELOW: private RS2Widget getMyWidget() { //Replace ids with your ids RS2Widget storedWidget = getWidgets().get(int rootId, int childId); return storedWidget; } private boolean isMyWidgetWorking() { return getMyWidget() != null && getMyWidget().isVisible(); } @Override public int onLoop() { if (isMyWidgetWorking()) { log(getMyWidget().getMessage()); getMyWidget().interact(); } else { log("(Error) - Can't use any action for getMyWidget(). Returning as null or invisible."); } return 300; } Advanced Tutorial [FOR PROS]: This will be a more in depth guide that will teach you how to use widgets without ever having to use root and child ids. This makes it way more convenient for script writers that do not want to constantly update their widgets when Jagex updates the game. We will continue off the Basic Tutorial, so for your getMyWidget() we are going to change a few things. But first I will teach you how to use the Widget Debugger that OSBot has in the Options. First open up Settings in OSBot and select Options. Now click on Debug and check the Widgets option. Lets go into the game and check for a widget we can use. So in this tutorial we will use the widget that has Look up name in it. We will have to query this widget in Widget Debugger so go back to OSBot Options and click on Widget Debugger. The widget we used was in the color of white, why use the white one and not the green one? Because it has the fields we need, that's all that matters. We will take these fields and add them to a filter to find the widget! So lets make a filter search in the method getMyWidget(). private RS2Widget getMyWidget() { List<RS2Widget> allWidgets = getWidgets().getAll(); String[] actions = {"Look up name"}; RS2Widget storedWidget = allWidgets.stream().filter(w -> w.getWidth() == 120 && w.getHeight() == 30 && w.getInteractActions() == actions).findFirst().orElse(null); return storedWidget; } Now we can change our onLoop() method and get rid of getMyWidget().getMessage() because it will return as null. @Override public int onLoop() { if (isMyWidgetWorking()) { getMyWidget().interact(); log("(Info) - Succesfully clicked getMyWidget()!"); } else { log("(Error) - Can't use any action for getMyWidget(). Returning as null or invisible."); } return 300; } THAT'S IT YOU ARE NOW OFFICIALLY A PRO AND WON'T HAVE TO EVER WORRY ABOUT UPDATING YOUR WIDGET! YOUR FINAL RESULTS SHOULD LOOK SIMILAR TO THE ONE BELOW: private RS2Widget getMyWidget() { List<RS2Widget> allWidgets = getWidgets().getAll(); String[] actions = {"Look up name"}; RS2Widget storedWidget = allWidgets.stream().filter(w -> w.getWidth() == 120 && w.getHeight() == 30 && w.getInteractActions() == actions).findFirst().orElse(null); return storedWidget; } private boolean isMyWidgetWorking() { return getMyWidget() != null && getMyWidget().isVisible(); } @Override public int onLoop() { if (isMyWidgetWorking()) { getMyWidget().interact(); log("(Info) - Successgully clicked getMyWidget()!") } else { log("(Error) - Can't use any action for getMyWidget(). Returning as null or invisible."); } return 300; } CREDITS: Dream - Simplifying the methods above for an easy understanding! OSBot Developers - For providing the API and being able to write your own scripts! Me - For making a tutorial for noobs like you!1 point
-
ive noticed sometimes when a trap is lying on the floor it takes it and then lays it, any chance it can just right click and then straight to lay?1 point
-
Glad to hear it, both of you Feel free to be the first to leave a rating on the store page ;)1 point
-
1 point
-
I ran the script for about 10 hours (with breaks) and it worked perfect, caught me well over 2k chins. Great job on the script.1 point
-
1 point
-
1 point
-
1 point
-
You can exchange your GP for osbot vouchers here, which in turn can be used to purchase scripts1 point
-
1 point
-
I heard your scripts are very good, so good luck with this! BTW, the availability and pricing just says about availability :P1 point