Leaderboard
Popular Content
Showing content with the highest reputation on 09/24/17 in all areas
-
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.4 points
-
4 points
-
Changelog: -Improved bit logic behind Bank methods withdraw/swap modes -Removed index identifier from Spells -Updated Magic API, not reliant on static ids --Zach patched getSpellName() hook3 points
-
────────────── 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.2 points
-
Note: No additional quests or PoH interiors are required anymore. Please take the time to read through the following information, they may answer your questions If not, feel free to ask in this thread Barrows Barrows is a dangerous combat minigame, located in the southern parts of Morytania. The purpose of the minigame is to kill all 6 barrow brothers and finally claim their treasure, providing a chance to receive the unique and valuable barrows equipment, as well as other precious loot. Feature Guide Starting the script Proggies (Post your own in this thread to have them added) Change Log Troubleshooting FAQ Dynamic Signatures Bug report template http://frostbug.dk/dynsig_barrows.png?username=All2 points
-
Let's work to make Wilderness bots great again! Example code: import java.util.List; import org.osbot.rs07.api.model.Player; import org.osbot.rs07.script.Script; import org.osbot.rs07.script.ScriptManifest; import com.liverare.api.WildernessAPI; @ScriptManifest(author = "", info = "", logo = "", name = "Test", version = 0) public class Test extends Script { WildernessAPI wilderness; @Override public void onStart() throws InterruptedException { wilderness = new WildernessAPI(); wilderness.exchangeContext(bot); } @Override public int onLoop() throws InterruptedException { Player workerBot = players.closest("W0rk3r B0t 5001"); handleRealThreats(); handlePotentialThreats(); saveWorkerBot(workerBot); return 100; } private void handleRealThreats() { List<Player> realThreats = wilderness.findRealThreats(); if (realThreats != null && !realThreats.isEmpty()) { // oh shit they can attack us // better check what they're wearing and what they're doing } } private void handlePotentialThreats() { List<Player> potentialThreats = wilderness.findPotentialThreats(); if (potentialThreats != null && !potentialThreats.isEmpty()) { // oh dear, we may be in trouble // we'd better not go deeper into the Wilderness, they may be // waiting for us to do exactly that! } } private void saveWorkerBot(Player workerBot) { List<Player> realThreatsToWorkerBot = wilderness.findRealThreats(workerBot); if (realThreatsToWorkerBot != null && !realThreatsToWorkerBot.isEmpty()) { // worker bot may be in trouble // perhaps we should attack baddie? lure them away? etc. } } } Methods: public int getSafeWildernessLevel(Player player) public int getSafeWildernessLevel(Player playerA, Player playerB) public List<Player> findPotentialThreats() public List<Player> findPotentialThreats(Player victim) public List<Player> findRealThreats() public List<Player> findRealThreats(Player victim) public static boolean canPlayerAFighterPlayerB(Player playerA, Player playerB) public static int calculateYCoordinate(Vector3D vector3d, boolean upperBound) public static int calculateYCoordinate(int wildernessLevel, boolean upperBound) public static int calculateWildernessLevel(Vector3D vector3d) public static int calculateWildernessLevel(int yCoordinate) Source:2 points
-
Find people wearing stuff. Note: doesn't work with ammo and rings. Example code: import java.util.List; import org.osbot.rs07.api.def.ItemDefinition; import org.osbot.rs07.api.model.Player; import org.osbot.rs07.script.Script; import org.osbot.rs07.script.ScriptManifest; import com.liverare.api.AppearanceAPI; @ScriptManifest(author = "", info = "", logo = "", name = "Test", version = 0) public class Test extends Script { AppearanceAPI appearance; @Override public void onStart() throws InterruptedException { appearance = new AppearanceAPI(); appearance.exchangeContext(bot); } @Override public int onLoop() throws InterruptedException { pesterRichPeopleForFreeStuff(); return 100; } private void pesterRichPeopleForFreeStuff() { List<Player> richPeople = appearance.findPlayersWielding(Test::isExpensiveItem); if (richPeople != null && !richPeople.isEmpty()) { // rich people spotted! // prepare for pestering // in 3... } } private static boolean isExpensiveItem(ItemDefinition itemDefinition) { String itemName = itemDefinition.getName(); return itemName.equals("Twisted bow") || itemName.equals("3rd age longsword") || itemName.equals("3rd age pickaxe") || itemName.equals("3rd age axe") || itemName.equals("3rd age cloak") || itemName.equals("Elysian spirit shield") || itemName.equals("3rd age bow"); } } Methods: public List<Player> findPlayersWielding(List<Player> players, Predicate<ItemDefinition> itemDefinitionFilter) public List<Player> findPlayersWielding(Predicate<ItemDefinition> itemDefinitionFilter) public Player findPlayerWielding(List<Player> players, Predicate<ItemDefinition> itemDefinitionFilter) public Player findPlayerWielding(Predicate<ItemDefinition> itemDefinitionFilter) public static boolean isDefined(Player player, Predicate<ItemDefinition> itemDefinitionFilter) private static boolean isDefined(int[] appearance, Predicate<ItemDefinition> itemDefinitionFilter) Source:2 points
-
Stealth Quester Can also be purchased with OSRS gold using vouchers from here 70 Quests Supported Alfred Grimhand's Barcrawl Animal Magnetism A Porcine of Interest Big Chompy Bird Hunting Biohazard Black Knights Fortress Client Of Kourend Clock Tower Cook's Assistant Death Plateau Demon Slayer Dorics Quest Dragon Slayer Druidic Ritual Dwarf Cannon Elemental Workshop I Ernest The Chicken Fight Arena Fishing Contest Gertrude's Cat Goblin Diplomacy Hazeel Cult Holy Grail Imp Catcher Jungle Potion Lost City Merlin's Crystal Monkey Madness I Monk's Friend Mountain Daughter Nature Spirit Pirates Treasure Plague City Priest In Peril Prince Ali Rescue Regicide Rfd Cook Subquest Rfd Dwarf Subquest Rfd Evil Dave Subquest Rfd Goblin Subquest Rfd Pirate Subquest Rfd Ogre Subquest Romeo And Juliet Rune Mysteries Sea Slug Shadow Of The Storm Sheep Shearer Tears Of Guthix The Ascent Of Arceuus The Corsair Curse The Depths Of Despair The Dig Site The Feud The Golem The Grand Tree The Knights Sword The Restless Ghost The Tourist Trap Tree Gnome Village Tribal Totem Underground Pass Vampire Slayer Varrock Museum Quiz Waterfall Quest What Lies Below Witch's House Witch's Potion X Marks The Spot Instructions Click on quest names to queue them. Quests are completed in the order they are selected. Quests that are already completed will be skipped. Previously started quests/partially completed are not currently supported! Allow the script to finish the quest from start to finish for best results. In order to use armour/weapons/spells during quests, gear presets have to be created first. Equip the desired gear and set the attack style in game, then press the "Load Worn Equipment" button at the bottom left of the GUI, then give the preset a name. Click on the "Set Gear" button on the right side of a quest to set the gear preset to be used for that quest. If you want to use a combat spell for fights, make sure you are wielding a staff and have set the spell on offensive autocast. Only normal spells are currently supported. Ranged is not fully supported at this moment. Make sure you set the desired attack style in game to avoid gaining wrong XP. After selecting the desired options, either press the "Start" button to begin, or save the current settings by pressing "Save Current Settings" and giving the quest preset a name, and later running it faster by pressing "Run Saved Preset". You can delete gear/quest presets by right clicking them on the selection dialogue Special Mentions The script will stop upon death on all quests, except for Waterfall Quest. It is strongly recommended that you have decent Hitpoints level (20+) before attempting quests that contain boss fights. The script may not be able to continue previously started quests. If you really have to restart the script while it's doing a quest, use debug mode to continue that specific quest. This feature is accessed by pressing the F4 key while the GUI is in the foreground (focused application). The GUI title will change to Stealth Quester (debug mode) while in debug mode, and when started will not go to bank or Grand Exchange so all required items are assumed to be in the inventory. Monkey Madness I has a hard-coded requirement of 43 Prayer and 25 Hitpoints Underground Pass has a hard-coded requirement of 25 Hitpoints, and will use a bow as weapon. By default the script will use willow shortbow & mithril arrows. This can be configured on GUI throgh the "Configure Settings" button on the right side of the quest. Protect from melee will be used during the paladin fight if the account has 43 Prayer. The script will not use any weapon or ammo you set in the gear preset for this specific quest, as they will be replaced with a bow and arrows, and the attack style will be set to rapid. The script can complete this quest with level 1 Agility. The ability for the script to complete the quest will be limited by available food sources if it fails too many obstacles prior to reaching Iban's Lair where unlimited food is provided. Beta Testing Mode Enabled via script GUI using F3 key during startup Make sure the GUI window is focused and press F3 The quests which are currently in beta testing stage will be displayed on the list of available quests Debug Mode Enabled via script GUI using F4 key during startup Make sure the GUI window is focused and press F4 Title will change to Stealth Quester (debug mode) This can be used to resume the script execution after being interrupted. It is not guaranteed to work in all cases, but will work for over 95% of quest stages. You can also use this if you don't want the script to check bank/go to Grand Exchange. This means that you must have all items required by the script (not by quest guides), including the specific teleports it uses. It may work in some cases without teleports, but there is no guarantee. Ironman Mode Enabled via script GUI using F5 key during startup Make sure the GUI window is focused and press F5 Title will change to Stealth Quester (iron man mode) The script features a special ironman mode where it will automatically gather all required items. This mode supports at the present moment the following 9 quests: Cook's Assistant Romeo and Juliet The Restless Ghost Rune Mysteries Ernest the chicken Hazeel Cult Clock Tower The Corsair Curse X Marks the Spot No Food Mode Enabled via script GUI using F6 key during startup Make sure the GUI window is focused and press F6 Title will change to Stealth Quester (no food mode) Can be used for high level accounts when you are 100% sure you won't need food on some quests. There are quests like Underground Pass, Regicide, Monkey Madness, Shadow of the Storm, Holy Grail, Dragon Slayer and possibly others where this will not work. The script will stop when it fails to find food in bank in these cases. CLI Features Script ID is 845. The script supports CLI startup with custom user defined parameters. The parameters in this case are the name of the quest presets created on the GUI (with "Save Current Settings"). eg. -script 845:questpreset Bug Report Template 1. Stealth Injection or Mirror Mode: 2. Logger contents (press "Settings" on top right corner of the client, then "Toggle Logger", copy & paste on pastebin) : 3. Description: Skills required to run all quests: 51 Agility 49 Firemaking 41 Cooking 36 Woodcutting 35 Runecrafting 31 Crafting 30 Ranged 30 Thieving 20 Attack 20 Mining 20 Smithing 18 Slayer 12 Hunter 10 Fletching 10 Fishing The script can obtain a total of 117 QP on member worlds and 41 QP on free to play worlds. Additional Info by @krisped1 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
-
The only Runecrafting bot you will need Purchase this INSANE bot here You can setup a master account (preferably your main account, can be any account) and a worker account (a throwaway bot account, or any account) will trade the master account and go to bank to get more runes etc. The main account (master) does not need to bot, and can be achieved through the normal RS client without a bot client. Supports: Air runes (1) (normal) & (abyss) Mind runes (2) (normal) & (abyss) Water runes (5) (normal) & (abyss) Earth runes (9) (normal) & (abyss) Mud runes (13) (earth altar) Lava runes (23) (fire altar) Fire runes (14) (normal) & (abyss) Body runes (20) (normal) & (abyss) Cosmic runes (27) (normal) & (abyss) Chaos runes (35) (normal) & (abyss) Astral runes (40) (normal) & (abyss) Nature runes (44) (normal) & (abyss) Law runes (54) (normal) & (abyss) Blood runes (abyss) & (zeah) Auto Arceuus Favour Solver Gets 100% arceuus favour for you Auto GE Restocking Sells runes, buys more supplies automatically Auto-equips chosen armour/robes Use Blood Essences Death Handler gets items from Death's office and repeats (Abyss) Glory mode, ferox mode, house spell/tabs Avoids pkers and hops worlds Uses mouse invokes for quicker runecrafting (stealth) Muling (BETA) will give money to your mules every X hours or profit Creates colossal pouch if you have the needle Results and screenshots1 point
-
Want to buy with OSGP? Contact me on Discord! Detailed feature list: - Supports all 3 boats - Attack portals, defend knight mode - Repair mode (No HP exp mode) - Potions support - Sets auto casting spell after dying - Use Special attack weapons - Only attack monsters mode (Good for low cb players) - Uses quick prayer (make sure to setup before starting) - Worldhopper - Points spender - 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 589: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 manager you do not need to specify -script 589): -script 589:TaskList1.4515breaks (With breaks) -script 589:TaskList1.4515breaks.discord1 (With breaks & discord) -script 589:TaskList1..discord1 (NO breaks & discord)1 point
-
CURRENT RECORD: 201 HOURS RUNTIME 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:1 point
-
Before 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 system1 point
-
Bob Ross would be so proud! Example code: import java.awt.Color; import java.awt.Graphics2D; import java.util.List; import org.osbot.rs07.api.map.Area; import org.osbot.rs07.api.model.NPC; import org.osbot.rs07.script.Script; import org.osbot.rs07.script.ScriptManifest; import com.liverare.api.PaintAPI; @ScriptManifest(author = "", info = "", logo = "", name = "Test", version = 0) public class Test extends Script { PaintAPI paint; Area safeSpace; List<NPC> guards; @Override public void onStart() throws InterruptedException { paint = new PaintAPI(); paint.exchangeContext(bot); safeSpace = myPlayer().getArea(5); } @Override public int onLoop() throws InterruptedException { guards = npcs.filter(Test::isGuard); return 100; } private static boolean isGuard(NPC npc) { return npc.getName().equals("Guard"); } @Override public void onPaint(Graphics2D g) { g.setColor(Color.BLACK); g.setBackground(Color.PINK); // dont worry bout checks fam, i do dat paint.drawMinimapArea(g, safeSpace); paint.drawEntities(g, guards, Test::guardToString, true, false, false, false, false, false, true); } private static String guardToString(NPC npc) { return "Health: " + npc.getHealthPercent() + ", xyz: " + npc.getPosition().toString(); } } Functions: public void drawLink(Graphics2D g, Entity entity1, Entity entity2) public void drawMinimapArea(Graphics2D g, org.osbot.rs07.api.map.Area area) public <T extends Position> void drawString(Graphics2D g, Function<T, String> toString, T position) public void drawString(Graphics2D g, String aString, Position position) public void drawString(Graphics2D g, String aString, Entity entity) public void drawEntity(Graphics2D g, Entity entity, String aString, boolean labelTile, boolean click, boolean cube, boolean minimap, boolean tile, boolean box, boolean wireframe) public void drawEntity(Graphics2D g, Entity entity, Function<T, String> getDescription, boolean labelTile, boolean click, boolean cube, boolean minimap, boolean tile, boolean box, boolean wireframe) public <T extends Entity> void drawEntities(Graphics2D g, Collection<T> entities, Function<T, String> getDescription, boolean labelTile, boolean click, boolean cube, boolean minimap, boolean tile, boolean tileCube, boolean wireframe) private void drawBox(Graphics2D g, Entity entity) private void drawBox(Graphics2D g, Position bottomTile, Position topTile) private void drawWireframe(Graphics2D g, Entity entity) private void drawClickBounds(Graphics2D g, Entity entity) private void drawCube(Graphics2D g, Entity entity) public void drawMinimapPoint(Graphics2D g, Vector3D v) public void drawMinimapLink(Graphics2D g, Vector3D a, Vector3D b) public void drawTile(Graphics2D g, Entity entity) public void drawTile(Graphics2D g, Position position) public static void drawPoint(Graphics2D g, Point point, int size) public static void drawPoint(Graphics2D g, int x, int y, int size) public static void drawShape(Graphics2D g, Shape shape) public static void drawString(Graphics2D g, String aString, int x, int y) public static void drawString(Graphics2D g, String aString, Point point) public static void drawString(Graphics2D g, String aString, Rectangle rectangle) Source:1 point
-
1 point
-
1 point
-
1 point
-
Token, awesome job on the script. Best $20 spent for continued support of quests and function.1 point
-
1 point
-
1 point
-
NVM! I found the fix, Thanks to EXPLV for his thread:1 point
-
1 point
-
1 point
-
Have to say brilliant script! I left the bot running or progressive hunter from level 9, woke up the next day and it was 68 hunter with already 1k red chins and the pet!! Love the script and well worth the money! Looking forward to the black chins advanced pker support when it comes out ??1 point
-
1 point
-
Annabelle was pretty good too https://fmovies.is/film/annabelle.or7j/m44l6x1 point
-
hmmmm.. Very tempted to have mine ask "fishing levels?" every few seconds now. If we're going down, might as well go down with a bang.1 point
-
Ive faced a problem with this script where it goes back and forth over and over, makes it look very bot like. It has done this only on hill giants experiments and rock crabs so far. Any fix?1 point
-
1 point
-
1 point
-
1 point
-
1 point
-
Big fan here, posting here because I trust your scripting to not get my accounts banned. Is there any chance you can look into making a script for Lizardman Shaman? The script would alch, use bank, return, and avoid attacks, I don't think there is a safespot anymore. Thanks anyways if it can't be done!1 point
-
I have been using this script every day for hours for about 5 days now. If you are we could we call or something and I can explain in details what problems there are. (I know of many small ones) and some small features to add. Should only take 10-15min of explaining.1 point
-
1 point
-
you should use the good ol' gmail exploit example - ImGay@gmail.com - I.mgay@gmail.com im.gay@gmail.com img.ay@gmail.com If you send an email to any of these emails it will go to the same place.1 point
-
Hey Czar, I've been using the PerfectStronghold inside the PerfectFighter- I was wondering if I could get a small trial for this script to see if it would suit my botfarm setup more (e.g. more rigid/more customizeable) Thanks (:1 point
-
@Czar hi, pretty please can you make it so when youre in AFK mode you can still spec, it would be good for my sgs or is it possible just to support sgs heals in general1 point
-
The bot works fine for me (running it right now). On that topic I think i've found a bug to report. Currently when it's on its last food item and an item drops it wants to pick up it will eat the last food, it appears to detect it's out of food, and starts the banking process without picking up the last item from the floor. This may be a bug or just a random occurrence thought I would point it out though since it should be easy to spot in the code if that's happening. Thanks.1 point
-
Currently only supports the normal spellbook. Examples package org.botre.magic; import org.osbot.rs07.api.ui.MagicSpell; import org.osbot.rs07.api.ui.Skill; import org.osbot.rs07.script.Script; //Script manifest... public class ExampleScript extends Script { private Autocast auto = new Autocast(this); @Override public int onLoop() throws InterruptedException { /* * These are radom non-dependant examples. */ // Autocasts the fireblast spell in non-defensive mode auto.autocast(AutocastSpell.FIRE_BLAST, false); // Autocast the wind bolt spell in defensive mode auto.autocast(AutocastSpell.WIND_BOLT, true); // Stop the script immediately if in defensive mode. if(auto.isDefensiveMode()) { stop(); } // Get the difference between the level required to autocast the... // spell you are autocasting and your static magic level (a bit arbitrary). MagicSpell spell = auto.getAutocastSpell(); if(spell != null) { int difference = Math.abs(spell.getRequiredLevel() - getSkills().getStatic(Skill.MAGIC)); } return 500; } } Autocast package org.botre.magic; import java.awt.Point; import org.botre.tab.TabHotkey; import org.osbot.rs07.api.ui.MagicSpell; import org.osbot.rs07.api.ui.RS2Widget; import org.osbot.rs07.input.mouse.WidgetDestination; import org.osbot.rs07.script.MethodProvider; import org.osbot.rs07.utility.ConditionalLoop; import org.osbot.rs07.utility.ConditionalSleep; public class Autocast { public static final int AUTOCAST_SPELL_CONFIG = 108; public static final int AUTOCAST_MODE_CONFIG = 439; // 0 = regular, 256 = defensive public static final Point DEFENSIVE_AUTOCAST_BUTTON_POSITION = new Point(650, 280); public static final Point REGULAR_AUTOCAST_BUTTON_POSITION = new Point(651, 333); private MethodProvider ctx; public Autocast(MethodProvider ctx) { this.ctx = ctx; } public boolean isAutocasting() { return ctx.getConfigs().get(AUTOCAST_SPELL_CONFIG) != 0; } public boolean isAutocasting(AutocastSpell auto) { return ctx.getConfigs().get(AUTOCAST_SPELL_CONFIG) == auto.getConfigValue(); } public boolean isAutocasting(AutocastSpell auto, boolean defensive) { return ctx.getConfigs().get(AUTOCAST_SPELL_CONFIG) == auto.getConfigValue() && defensive == isDefensiveMode(); } public boolean isRegularMode() { return ctx.getConfigs().get(AUTOCAST_MODE_CONFIG) == 0; } public boolean isDefensiveMode() { return ctx.getConfigs().get(AUTOCAST_MODE_CONFIG) == 256; } public MagicSpell getAutocastSpell() { AutocastSpell auto = AutocastSpell.forConfigValue(ctx.getConfigs().get(AUTOCAST_SPELL_CONFIG)); if(auto == null) return null; return auto.getSpell(); } public boolean isAutocastPanelOpen() { RS2Widget panel = ctx.getWidgets().get(201, 0); return panel != null && panel.isVisible(); } @SuppressWarnings("unchecked") public boolean openAutocastPanel(boolean defensive) { new ConditionalLoop(ctx.getBot(), 10) { @Override public boolean condition() { return !isAutocastPanelOpen(); }; @Override public int loop() { if(TabHotkey.COMBAT.openTab(ctx)) { RS2Widget button = ctx.getWidgets().singleFilter(ctx.getWidgets().getAll(), w -> { return w != null && w.isVisible() && w.getMessage() != null && w.getMessage().equals("Spell") && w.getPosition().equals(defensive ? DEFENSIVE_AUTOCAST_BUTTON_POSITION : REGULAR_AUTOCAST_BUTTON_POSITION); }); if(button != null) { WidgetDestination destination = new WidgetDestination(ctx.getBot(), button); if(ctx.getMouse().click(destination)) { new ConditionalSleep(2400, 200) { @Override public boolean condition() throws InterruptedException { return !button.isVisible(); } }.sleep(); } } } return MethodProvider.random(50, 150); } }.start(); return isAutocastPanelOpen(); } @SuppressWarnings("unchecked") public boolean closeAutocastPanel() { new ConditionalLoop(ctx.getBot(), 10) { @Override public boolean condition() { return isAutocastPanelOpen(); }; @Override public int loop() { RS2Widget cancel = ctx.getWidgets().singleFilter(ctx.getWidgets().getAll(), w -> { return w != null && w.isVisible() && w.getMessage() != null && w.getMessage().equals("Cancel"); }); if(cancel != null) { WidgetDestination destination = new WidgetDestination(ctx.getBot(), cancel); if(ctx.getMouse().click(destination)) { new ConditionalSleep(2400, 200) { @Override public boolean condition() throws InterruptedException { return !cancel.isVisible(); } }.sleep(); } } return MethodProvider.random(50, 150); } }.start(); return !isAutocastPanelOpen(); } public boolean autocast(AutocastSpell spell, boolean defensive) { new ConditionalLoop(ctx.getBot(), 10) { @Override public boolean condition() { return spell != null ? !isAutocasting(spell) : isAutocasting(); }; @SuppressWarnings("unchecked") @Override public int loop() { if(isAutocastPanelOpen()) { if(spell == null) { closeAutocastPanel(); } else { if(defensive != isDefensiveMode()) { closeAutocastPanel(); } else { RS2Widget button = ctx.getWidgets().singleFilter(ctx.getWidgets().getAll(), w -> { if(w != null && w.isVisible() && w.getInteractActions() != null) { String name = spell.getSpell().toString().replace("_", " "); for (String action : w.getInteractActions()) if(action != null && action.equalsIgnoreCase(name)) return true; } return false; }); if(button != null) { WidgetDestination destination = new WidgetDestination(ctx.getBot(), button); if(ctx.getMouse().click(destination)) { new ConditionalSleep(2400, 200) { @Override public boolean condition() throws InterruptedException { return !button.isVisible(); } }.sleep(); } } } } } else { openAutocastPanel(defensive); } return MethodProvider.random(50, 150); } }.start(); return spell != null ? isAutocasting(spell) : !isAutocasting(); } } AutocastSpell This is a MagicSpell wrapper storing the config value for a MagicSpell. package org.botre.magic; import org.osbot.rs07.api.ui.MagicSpell; import org.osbot.rs07.api.ui.Spells.NormalSpells; public enum AutocastSpell { WIND_STRIKE(NormalSpells.WIND_STRIKE, 3), WATER_STRIKE(NormalSpells.WATER_STRIKE, 5), EARTH_STRIKE(NormalSpells.EARTH_STRIKE, 7), FIRE_STRIKE(NormalSpells.FIRE_STRIKE, 9), WIND_BOLT(NormalSpells.WIND_BOLT, 11), WATER_BOLT(NormalSpells.WATER_BOLT, 13), EARTH_BOLT(NormalSpells.EARTH_BOLT, 15), FIRE_BOLT(NormalSpells.FIRE_BOLT, 17), WIND_BLAST(NormalSpells.WIND_BLAST, 19), WATER_BLAST(NormalSpells.WATER_BLAST, 21), EARTH_BLAST(NormalSpells.EARTH_BLAST, 23), FIRE_BLAST(NormalSpells.FIRE_BLAST, 25), WIND_WAVE(NormalSpells.WIND_WAVE, 27), WATER_WAVE(NormalSpells.WATER_WAVE, 29), EARTH_WAVE(NormalSpells.EARTH_WAVE, 31), FIRE_WAVE(NormalSpells.FIRE_WAVE, 33); private MagicSpell spell; private int configValue; private AutocastSpell(MagicSpell spell, int configValue) { this.spell = spell; this.configValue = configValue; } public MagicSpell getSpell() { return spell; } public int getConfigValue() { return configValue; } public static AutocastSpell forSpell(MagicSpell spell) { for (AutocastSpell a : values()) { if(a.spell == spell) return a; } return null; } public static AutocastSpell forConfigValue(int configValue) { for (AutocastSpell a : values()) { if(a.configValue == configValue) return a; } return null; } }1 point
-
Yeah, it may seem that way, but my script fishes everything, everywhere, etc. I was going to list the features but they are in OP.1 point