Leaderboard
Popular Content
Showing content with the highest reputation on 02/21/24 in all areas
-
By Czar 99 in one go!!! Multiple 99s in 1 sitting!!!!! Features List - Supports 4 locations, with randomisation options (Randomise all, randomise north-only, randomise south-only) - Supports taking the axe for woodcutting, if not already equipped/held - Supports taking all equipment including Tinderbox, knife, unfinished potions from crates - Prepares for matches early, and waits around the brazier if you selected to light them (For +25 initial points) - Supports waiting at the safezone after winning the match (at 500 points) to preserve food - Supports training agility via the northern agility steppe - Knows exactly which external actions interrupt your current action, and plans accordingly - Identifies cold snaps and either avoids them completely, or randomises between avoiding and tolerating them - Allows you to fletch logs before burning them for a more balanced experience gain - Choose to optionally switch to other sectors if pyromancer is dying - Identifies pyromancer health, brazier repaired, brazier lit at all times - Knows exactly how many points our current inventory holds (in terms of burning logs) - Gets 1-50 firemaking: locked to maximum of 50 firemaking, and locked to Grand Exchange only. - Buys a player-owned-house via the Varrock Estate agent if you don't already own one (Optional) - Identifies if the account has visited Zeah before, and plans ahead. - Will travel to Zeah by ship to unlock it for newer accounts (Highly useful for goldfarming!) - Resupplies food, jewellery and teleports via the Grand Exchange - Teleports to Grand Exchange supported: Ring of wealth, Varrock teleport tab, Varrock spell (runes only!), Amulet of glory, Home teleport (Lumbridge/Edgeville) - Teleports to Wintertodt Camp supported: Games necklace, walking - Allows you to filter and join matches when a certain % of the game is already active, so wait for next match if below X% - Either holds onto crates, banks them or opens them - up to you! - Supports choosing your own food, choosing when to eat (eat %), choosing minimum to leave match for, and amount to withdraw - Upgrades to pyromancer gear when applicable - Identifies when you get a Phoenix pet - Buys warm clothing that your account is able to wear, filters by skill requirement. - Stop notifications tab (similar to Perfect Fighter): allows you to choose when to stop the bot, or when to alert/notify you - Stop the script at ANY moment in time, after X minutes/hours/seconds, after X wins, after X item gained (pet too!), after X experience gained & more! Buying Warm Clothing (3 missing pieces)! Results1 point
-
Just finished a quick LMS script. So far it works best whenever someone is running a bot frm at certain hours, as it will usually get 3-5 kills per game when they are running their farm. otherwise it will get 1-2 kills typically whenever actual players are online playing. Currently it switches prayers (excluding prot mage, which i am going to add tomorrow or the next day), as well as switches gear accordingly based on what the enemy is praying and where they are located, ect. I do need to add mage support as well for attacking, rather than just range and melee. It loots chests and switches armour/weapons and drops unused loot, as well as will walk towards the safe zone when not fighting. The script obviously isnt 100% perfect as I wrote it very quickly, however I was able to get 100 points in ~4 hrs or so of run time. If there is a large interest in this script i will release free trials to everyone, as well as improve the script. Rarely does anyone ask me if i am a bot, which when i first began writing it, pple would ask somewhat often as bots are quite easy to find in this minigame.1 point
-
1. open OSB.jar then select "Game client patcher" seen below. After clicking on the game client patcher select "runelite" as the client you'd like to patch. (seen below) then select "Patch game client" after all your options are selected. You can now use your favorite 3pc with a jagex account, enjoy. -sanc1 point
-
Hey, This release brings mostly (small) tweaks and fixes. API CHANGES: - Deprecated Client#getLoginState(). - Added Quests#DEFENDER_OF_VARROCK. FIXES: - Fixed an issue with the auto login handler idling after logging in. - Client patcher for macos should be fixed. - Fixed an issue with Bank#getCurrentTab() resulting in spam clicking the tab and other weird behaviour. WEB WALKER: - Walking should be improved compared to the previous release. - Added various new links all across the map. BOT MANAGER: - Better support for multiple account types (Jagex / OSRS). MISC: - Minor bug fixes. - The OSBot Team1 point
-
1 point
-
1 point
-
1 point
-
Legend! I'll give it a go tomorrow and report back. Appreciate you making the change.1 point
-
1 point
-
1 point
-
1 point
-
1 point
-
1 point
-
1 point
-
1 point
-
Not really a bug in a script as osbto deals with logging back in and how you set it up. Makle sure to add youa cc to osbot and don;t use the default one1 point
-
no no, i trust your judgement and you have way more experience than me. i didnt know if it was intended or not. just thought it was a bit odd1 point
-
You might have them in your rune pouch, you could also just put both nature and fire runes in your rune pouch and it will use that instead. I did some changes and should fix it in V1.01 You can use a trident or any other wep with a built in spell and have it equipped at this point. Bone staff being the best by far, just like other bone weaponry against this boss So once you get a spine drop just get it asap ^^ Khal Scurrius updated to V1.01: - Changed some of the banking logic when being out of the instance - Fixed issue with rune pouch check for alching runes Live soon!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