-
Posts
339 -
Joined
-
Last visited
-
Feedback
100%
About Jueix
Profile Information
-
Gender
Male
Contact Methods
-
Skype
Nathan_Jueix
Recent Profile Visitors
The recent visitors block is disabled and is not being shown to other users.
Jueix's Achievements
Black Poster (5/10)
26
Reputation
-
It depends really, sometimes I get further on mirrormode sometimes I get further on stealth. Never understood botting lol.
-
I did try web walking in the stronghold but it doesn't seem to work for me and I don't know why.
-
Botting is just trial and error, Some times you can get banned on a fresh account botting the same thing you are doing on an other account in a couple of minutes, Some times the accounts can go for hours. It's actually funny a few weeks ago, I was botting the same thing on multiple accounts and kept getting banned with 1 hour of botting 25 minute breaks (running 12 hours aday) then I changed it up to 2 hours of botting with 7 minute breaks (24/7) and the accounts are still going strong, So I don't understand it myself at times.
-
So I'm randomly coding scripts that I feel like I may need for my bot farm and I hate dealing with widgets / interfaces due to my bots spamming the item a few times before realising the interface is actually up. Here's the code I have for the last room in stronghold of security for floor 1. (Made a bot that does stronghold yes I am a noob and to lazy to manually do it). [code] if(WarEnd.contains(myPlayer())) { log("We are in the end room now"); RS2Widget widget1 = getWidgets().get(579, 17); if (dialogues.isPendingContinuation() && WarEnd.contains(myPlayer())) { log("JSS Floor 1: Interacting with chest dialogs"); dialogues.clickContinue(); } Item coins = getInventory().getItem("Coins"); if(coins.getAmount() >= 2000) { log("Detected coins in inventory going to floor 2"); RS2Object ladder = getObjects().closest(o -> o != null && o.getName().equals("Ladder") && o.getPosition().equals(new Position(1902, 5222, 0))); if (ladder != null && !myPlayer().isAnimating() && !myPlayer().isMoving() && !dialogues.isPendingContinuation()) { ladder.interact("Climb-down"); Timing.waitCondition( () -> getWidgets().get(579, 17).isVisible(), 30000); } if(widget1 != null) { if (widget1.isVisible()) { ScriptStatus = "Should be heading to floor 2."; if (widget1.interact()) { Floor = "Catacomb of Famine"; ScriptStatus = "Interacting with gate 1"; Timing.waitCondition( () -> !WarEnd.contains(myPlayer()), 10000); } } } } if(coins.getAmount() < 2000) { RS2Object giftofpeace = getObjects().closest(o -> o != null && o.getName().equals("Gift of Peace") && o.getPosition().equals(new Position(1907, 5222, 0))); if (giftofpeace != null && !myPlayer().isAnimating() && !myPlayer().isMoving() && !inventory.contains("Coins") && !dialogues.isPendingContinuation()) { giftofpeace.interact("Open"); ScriptStatus = "Interacting with gift of peace"; log("JSS Floor 1: Attempting Interaction with gift of peace"); /*try { discordMessage("redacted", "Floor 1 has now been completed, See that wasn't hard to code was it. Now code floor 2 lazy ass noob!", "Jueixs Stronghold of Security"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }*/ Timing.waitCondition(() -> dialogues.isPendingContinuation(), 10000); } } [/code] So Basically it will click the ladder 3 - 5 times (the interface will open and it will close the interface by clicking the ladder again and after a while it will realise the interface is finally open and go down. I've also placed the code for the ladder at the top of the script and it will still do it.
-
If anyone is having the same thing here's an updated script that works with my newest script that doesn't use the JSON libary. private static final String USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36"; /*send discord messages */ public static void discordMessage(String url, String content, String username) throws IOException { URL webhookUrl = new URL(url); HttpURLConnection con = (HttpURLConnection)webhookUrl.openConnection(); //Set the request headers. con.setDoOutput(true); con.setRequestMethod("POST"); con.addRequestProperty("Content-Type", "application/json"); con.addRequestProperty("User-Agent", USER_AGENT); //Create the JSON string to send in the request body. String json = "{ \"content\": \"" + content + "\", \"username\": \"" + username + "\" }"; //Add to the body of the request (The content needed gets added to the request) BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(con.getOutputStream())); writer.write(json); writer.close(); //Create a new StringBuilder to store the request response (Not needed if you don't check if the request was successful StringBuilder sb = new StringBuilder(); //Actually send the request to the discord webhook Scanner scanner = new Scanner(con.getInputStream()); while(scanner.hasNextLine()) { sb.append(scanner.nextLine()); } scanner.close(); }
-
Close them down and then try to re-start it won't let you :).
-
Yea you can do that too. You can also ask it to convert the script to work with other clients as well (not advertising them). I asked it to write me a green dragon killing bot and it actually works okay. public class GreenDragonKiller extends MethodProvider { private static final int LOGOUT_THRESHOLD = 10; // The distance at which the bot will log out or teleport private static final int VARROCK_TELEPORT_ID = 8007; // The ID of the Varrock teleport item private static final int[] FOOD_IDS = { 379, 385, 7946 }; // The IDs of the food items to use @Override public int onLoop() throws InterruptedException { // Check for nearby players if (getPlayers().all().stream().anyMatch(p -> p.distance(myPlayer()) < LOGOUT_THRESHOLD)) { // If a player is detected, log out or teleport to Varrock if (getTabs().isOpen(Tab.LOGOUT)) { getTabs().logout(); } else { // Use the Varrock teleport if available, or log out if not if (getInventory().contains(VARROCK_TELEPORT_ID)) { getInventory().interact(VARROCK_TELEPORT_ID, "Break"); sleepUntil(() -> getTabs().isOpen(Tab.LOGOUT), random(5000, 10000)); } else { getTabs().logout(); } } return random(500, 1000); } // Check the player's health if (myPlayer().getHealthPercent() < 50) { // If the player's health is low, try to eat food from the inventory for (int foodId : FOOD_IDS) { if (getInventory().contains(foodId)) { getInventory().interact(foodId, "Eat"); sleep(random(500, 1000)); break; } } // If no food is available, run to the bank if (myPlayer().getHealthPercent() < 50 && !getInventory().contains(FOOD_IDS)) { getWalking().webWalk(new Area(3092, 3491, 3097, 3488)); sleepUntil(() -> getBank().isOpen(), random(5000, 10000)); getBank().depositAllExcept(FOOD_IDS); getBank().withdrawAll(FOOD_IDS); getBank().close(); } } // Locate the nearest Green Dragon NPC dragon = getNpcs().closest("Green Dragon"); // Attack the dragon if it is in range if (dragon != null && dragon.isVisible() && !myPlayer().isAnimating()) { if (getCombat().getFightMode() != Combat.FightMode.RANGED) { getCombat().setFightMode(Combat.FightMode.RANGED); } if (getCombat().isSpecialActivated()) { getCombat().toggleSpecialAttack(); } if (getCombat().attack(dragon)) { sleepUntil(() -> myPlayer().isAnimating(), random(2000, 3000)); } } return random(500, 1000); } } I then asked it to convert the above code into an other API and it done the same. (But sadly it crashed before it could finish). Sure, here's a modified version of the script that uses the "Removed name" API instead of the OSBot API: import net."removed in case of advertising".api.*; import net."removed in case of advertising".api.coords.WorldPoint; import net."removed in case of advertising".api.events.GameTick; import net."removed in case of advertising".client.callback.ClientThread; import javax.inject.Inject; public class GreenDragonKiller implements Runnable { private static final int LOGOUT_THRESHOLD = 10; // The distance at which the bot will log out or teleport private static final int VARROCK_TELEPORT_ID = 8007; // The ID of the Varrock teleport item private static final int[] FOOD_IDS = { 379, 385, 7946 }; // The IDs of the food items to use @Inject private Client client; @Inject private ClientThread clientThread; @Override public void run() { while (true) { try { Thread.sleep(600); } catch (InterruptedException e) { e.printStackTrace(); } clientThread.invoke(this::onGameTick); } } private void onGameTick() { Player localPlayer = client.getLocalPlayer(); // Check for nearby players if (client.getPlayers().stream().anyMatch(p -> p.getLocalLocation().distanceTo(localPlayer.getLocalLocation()) < LOGOUT_THRESHOLD)) { // If a player is detected, log out or teleport to Varrock if (client.getVar(Varbits.LOGOUT_OPEN) == 1) { client.invokeMenuAction("Logout", "", 0, 0, MenuAction.WIDGET_TYPE_1.getId(), 0); } else { // Use the Varrock teleport if available, or log out if not if (client.getItemContainer(InventoryID.INVENTORY).contains(VARROCK_TELEPORT_ID)) { client.invokeMenuAction("Break", "", client.getItemContainer(InventoryID.INVENTORY).getId(VARROCK_TELEPORT_ID), 0, MenuAction.ITEM_SECOND_OPTION.getId(), 0); clientThread.invokeLater(() -> client.getWidget(182, 12).getChild(1).interact("Continue")); } else { client.invokeMenuAction("Logout", "", 0, 0, MenuAction.WIDGET_TYPE_1.getId(), 0); } } return; } // Check the player's health if (localPlayer.getHealthRatio() < 0.5) { // If the player's health is low, try to eat food from the inventory for (int foodId : FOOD_IDS) { if (client.getItemContainer(InventoryID.INVENTORY).contains(foodId)) { ItemContainer inventory = client.getItemContainer(InventoryID.INVENTORY); Item item = inventory.getItem(inventory.getId(foodId)); if (item != null) { client.invokeMenuAction("Eat", "<col=ffff00>" + item.getName() + "<col=ffffff>", item.getId(), 0, MenuAction.ITEM_FIRST_OPTION.getId(), 0); try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } break; } } } // If no food is available, run to the bank if (localPlayer.getHealthRatio() < 0.5 && !client.getItemContainer(InventoryID.INVENTORY).containsAny(FOOD_IDS)) { clientThread.invokeLater(() -> { client.executeCommand("bank"); clientThread.invokeLater(() -> { Bank bank = client.getBank(); if (bank != null) { bank.depositAllExcept(FOOD_IDS); for (int foodId : That's where it got to before it crashed on converting the code. I literally asked it to get familiar with banks in runescape, the food ID's mostly used and how green dragons work and it wrote me that code and it actually works *Had to do a little tweak*. The next step in OSBOTing? Making AI write you the bots?
-
So everyone is hearing in the news lately about chat gbt and how it can write essays and do alot of things for you and to my surprise it can actually write you osbot scripts. You will need java knowledge in order to get the script fully working this is just an outline to get a basic script skeleton with whT you want done. Step 1: Make an account on chatGBT and ask it to write you a script, my script will be to cut oak logs. Then go to the bank. Add in that it needs to familiarise it self with the osbot API. It will say that but don't worry the script will come. It will look like that at first but it will give you example code. As you will see it will require you to fill out the coordinates and bank stuff. step 2: lets make it do something a little harder write us a script that will walk us around gnome agility course. Ask the ai to familiarise its self with a part of the game you would like to bot. Once it's done ask it to write you a script on that part of the game (may need to make a few tweaks yourself or describe better exactly what you want it to do). as you can see the code will appear but it will be using sleep(random) we want it to convert to conditional sleeps. step 3: getting it to fix the sleep(random) just as it to convert / change it into conditonal sleeps. You can also get it to fix other problems by asking it the same. You will need to make tweaks supplying coordinates and other things this just helps to give you a fast script to play with which you will need to edit a little to get working correctly. Note: this can also be done for the runelite API to make runelite plugins and for other clients ( this is not here to advertise them clients remove this if not allowed. ) Edit made it make me a basic green dragon killer. Here's how. I will leave it to you guys to figure out how to make it eat on low hp, and pick up the dragon bones and green d hide and run back to bank.
-
My maths teacher lied to me, He says half of 99 is 49.5 but us runescape players know its actually 92.
-
Started a new bot script and tried implementing this again ( tried to even re-write my firemaker script by copying project files and re-writing the code apart from the discord part ) if I use normal firemaker jar i didnt edit it sends the messages but if I don't and create a new project it gives me this error Error in bot executor or from Error class (and not Exception)! java.lang.NoClassDefFoundError: org/json/JSONObject at core.Main.discordMessage(Main.java:30) at core.Main.onLoop(Main.java:58) at org.osbot.rs07.event.ScriptExecutor$InternalExecutor.run(jf:86) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.ClassNotFoundException: org.json.JSONObject at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 4 more You use to have a gif that would show you how to fix this error but it doesn't work for me anymore. Sorry for posting on such a old thread but wanted to implement it back into some of my scripts again.
-
There was a decent Wilderness agility script two years ago when I looked for one for dead man mode, It was in the unofficial section and would automatically log you out if someone that could attack you appeared on minimap. Tried to look for it as I seen this and am unable to find it now. So I would agree with a wilderness agility.
-
So I was re-developing my potato script so it's better and removed something in it and now the make potato part is playing up and when he first uses the potato on the butter then the wait part happens it just keeps trying to use the potato on the butter. Can't be fucked figuring out what I removed by mistake but before I done some updates it worked fine ( Think I made some of the sleep(Randoms) to actual conditional. (Few left in though). [code] private void MakeItems() throws InterruptedException { /* This part of the script makes the baked potato's into Buttered baked potato's. */ log("Attempting to make the items"); if(inventory.contains("Baked potato") && inventory.contains("Pat of butter")) { randomclicks = random(1,5); log("Random clicks = " + randomclicks); if(randomclicks < 3) { ScriptStatus = "Using butter on potato."; log("uses butter before the baked."); getInventory().interact("Use", "Pat of butter"); sleep(random(100, 1500)); getInventory().interact("Use", "Baked Potato"); sleep(random(100,1200)); log("Dialog after it's shown"); sleep(random(100,1700)); getKeyboard().typeKey((char)32); log("Dialog after space"); new ConditionalSleep(20000) { @Override public boolean condition() { return !inventory.contains("Baked Potato") || !inventory.contains("Pat of butter") || !getDialogues().isPendingContinuation(); } }.sleep(); if(!inventory.contains("Pat of butter") || !inventory.contains("Baked Potato")) { Stage = 3; } } else if(randomclicks >= 3) { ScriptStatus = "Using potato on butter."; log("Uses baked before the butter."); getInventory().interact("Use", "Baked Potato"); sleep(random(100, 1000)); getInventory().interact("Use", "Pat of butter"); sleep(random(100,2000)); log("Dialog after it's shown"); sleep(random(500,1500)); getKeyboard().typeKey((char)32); log("Dialog after space"); new ConditionalSleep(20000) { @Override public boolean condition() { return !inventory.contains("Baked Potato") || !inventory.contains("Pat of butter") || !getDialogues().isPendingContinuation(); } }.sleep(); if(!inventory.contains("Pat of butter") || !inventory.contains("Baked Potato")) { Stage = 3; } } } } [/code]
-
I'm interested.
-
Looking to start a fresh HCIM group where we only bot, anyone interested?