Jump to content
Frequently Asked Questions
  • Are you not able to open the client? Try following our getting started guide
  • Still not working? Try downloading and running JarFix
  • Help! My bot doesn't do anything! Enable fresh start in client settings and restart the client
  • How to purchase with PayPal/OSRS/Crypto gold? You can purchase vouchers from other users
  • Try asking for help in the chatbox
  • LordJashin32

    Lifetime Sponsor
    • Posts

      180
    • Joined

    • Last visited

    2 Followers

    About LordJashin32

    Scripter
    Contributor

    Recent Profile Visitors

    573 profile views

    LordJashin32's Achievements

    1. Seems ScriptManager was internally changed. Sorry if anyone used this earlier today. Now fixed and confirmed working with latest update. Cheers.
    2. retiring this thread in favor of the new one: Cheers.
    3. Script Scheduler (v1.0) Quickstart: java -Xmx"256M" -jar -Xbootclasspath/p:"/Users/yourusername/DreamBot/BotData/client.jar" "/Users/yourusername/DreamBot/BotData/client.jar" -script "Script Scheduler" -world "437" -username "forum username" -password "forum pass" -account "account nickname" -params "New Account4^Adv. Macro Creator^300^Arg1;Arg2;Arg3" "New Account5^Script Scheduler^300^Arg1;Arg2;Arg3" Confirmed working with: RQuester Possible additions: Randomize runtime? Known problems: Can't pause / stop effectively Doesn't work with every script out there Still need to handle script GUI's Releasing this on the SDN. This will always be Open Source. Decompile JAR to get source. ScriptScheduler.jar
    4. TLDR; Run stuff in new threads in order to accomplish this. So in order to do this we need forms, threads, socket connection, etc. The only problem I had with this was the child thread can't really call and get "old script". But I'm sure there is way around that. This will show how you get from Point A (NOTHING) -> Forms with message system that sends message to other script that is "slave". I based all this on @Hashtag's muling script btw if u wanna know inspiration. The .JAR included at the bottom is totally UNFILTERED. This was my attempt at a wildy killing muling script for F2P. I will note here it doesn't fully work. But u can still see what i was trying to accomplish. I will admit this code is pretty crazy stupid but i just screw around anyway to try to get what i wanted for fun. But most of the script does work. private void button5ActionPerformed(ActionEvent e) { // Slave start this.setVisible(false); SwingUtilities.invokeLater(() -> { ctx.gui3 = new SlaveWindow(ctx); ctx.gui3.setBackground(Color.BLACK); ctx.gui3.setResizable(false); ctx.gui3.setVisible(true); }); int port = Integer.parseInt(spinner1.getValue().toString()); Thread t = new Thread() { public void run() { Script ctx1 = null; ctx1 = ctx; Socket clientSocket1 = null; PrintWriter out1 = null; BufferedReader in1 = null; String resp1 = null; try { clientSocket1 = new Socket(textField1.getText(), port); out1 = new PrintWriter(clientSocket1.getOutputStream(), true); in1 = new BufferedReader(new InputStreamReader(clientSocket1.getInputStream())); out1.println("stay alive"); } catch (Exception ex2) { ctx1.log(ex2.toString()); } while (!ctx1.gui.hooray) { try { Thread.sleep(9000); if (((int) ctx1.timeRan.elapsed()) > 50000) { out1.println("stay alive"); ctx1.timeRan = new Timer(); } if (in1.ready()) resp1 = in1.readLine(); if (resp1 != null) { ctx1.log(resp1); if (resp1.contains("collect")) { out1.println("received" + "|" + Instance.getInstance().getScriptManager().getCurrentScript().getLocalPlayer().getName() + "|" + Instance.getInstance().getScriptManager().getCurrentScript().getLocalPlayer().getLevel()); Instance.getInstance().getScriptManager().getCurrentScript().getRandomManager().enableSolver("Login Handler"); ctx1.sleepUntil(() -> Client.getGameState().equals(GameState.LOGGED_IN), 20000); out1.println("received" + "|" + Instance.getInstance().getScriptManager().getCurrentScript().getLocalPlayer().getName() + "|" + Instance.getInstance().getScriptManager().getCurrentScript().getLocalPlayer().getLevel()); /* if (Client.getGameState().equals(GameState.LOGGED_IN)) { Instance.getInstance().getScriptManager().getCurrentScript().setState(ScriptManager$State.PAUSED); ctx1.currTile = Instance.getInstance().getScriptManager().getCurrentScript().getLocalPlayer().getTile(); while (!Bank.isOpen()) { Bank.openClosest(); out1.println("received" + "|" + Instance.getInstance().getScriptManager().getCurrentScript().getLocalPlayer().getName() + "|" + Instance.getInstance().getScriptManager().getCurrentScript().getLocalPlayer().getLevel()); ctx1.sleepUntil(() -> Instance.getInstance().getScriptManager().getCurrentScript().getLocalPlayer().isMoving(), 2000); ctx1.sleepUntil(() -> !Instance.getInstance().getScriptManager().getCurrentScript().getLocalPlayer().isMoving(), 60000); } if (!Bank.isOpen()) break; ctx1.sleep(1000); Bank.depositAllItems(); ctx1.sleep(1500); Bank.depositAllEquipment(); ctx1.sleep(1500); Bank.withdrawAll("Coins"); ctx1.sleep(1500); Bank.close(); String[] slaveInfo = resp1.split("\\|"); int wildyLvl = Math.max(Instance.getInstance().getScriptManager().getCurrentScript().getLocalPlayer().getLevel(), Integer.parseInt(slaveInfo[2])) - Math.min(Instance.getInstance().getScriptManager().getCurrentScript().getLocalPlayer().getLevel(), Integer.parseInt(slaveInfo[2])); String slaveName = slaveInfo[1]; if (wildyLvl <= 1) ctx1.wildyTile = ctx1.level1Tile; else if (wildyLvl <= 5) ctx1.wildyTile = ctx1.level5Tile; else if (wildyLvl <= 10) ctx1.wildyTile = ctx1.level10Tile; else if (wildyLvl <= 15) ctx1.wildyTile = ctx1.level15Tile; else if (wildyLvl <= 20) ctx1.wildyTile = ctx1.level20Tile; else if (wildyLvl <= 25) ctx1.wildyTile = ctx1.level25Tile; else if (wildyLvl <= 30) ctx1.wildyTile = ctx1.level30Tile; else if (wildyLvl <= 35) ctx1.wildyTile = ctx1.level35Tile; while (Instance.getInstance().getScriptManager().getCurrentScript().getLocalPlayer().getTile().distance(ctx1.beforeTile) < 1) { Walking.walkExact(ctx1.beforeTile); ctx1.sleepUntil(() -> Instance.getInstance().getScriptManager().getCurrentScript().getLocalPlayer().isMoving(), 2000); ctx1.sleepUntil(() -> !Instance.getInstance().getScriptManager().getCurrentScript().getLocalPlayer().isMoving(), 60000); } GameObject gobj = GameObjects.closest(go -> go.getName().toLowerCase().contains("ditch")); if (gobj != null) gobj.interact("Cross"); if (!WorldHopper.isWorldHopperOpen()) { WorldHopper.openWorldHopper(); ctx1.sleepUntil(() -> WorldHopper.isWorldHopperOpen(), Calculations.random(500, 3000)); } ctx1.sleep(2500); Instance.getInstance().getScriptManager().getCurrentScript().getRandomManager().disableSolver("Login Handler"); if (ctx1.overDitch.contains(Instance.getInstance().getScriptManager().getCurrentScript().getLocalPlayer().getTile())) { while (Instance.getInstance().getScriptManager().getCurrentScript().getLocalPlayer().getTile().distance(ctx1.wildyTile) < 1) { Walking.walkExact(ctx1.wildyTile); ctx1.sleepUntil(() -> Instance.getInstance().getScriptManager().getCurrentScript().getLocalPlayer().isMoving(), 2000); if ((Players.closest(p -> p != null && !p.equals(Instance.getInstance().getScriptManager().getCurrentScript().getLocalPlayer()) && p.distance() < 15 && p.getName() != slaveName) != null)) { Tabs.logout(); WorldHopper.hopWorld(Worlds.getRandomWorld(w -> w != null && !w.isPVP() && !w.isLastManStanding() && !w.isHighRisk() && !w.isDeadmanMode() && !w.isMembers() && !w.isTournamentWorld() && !w.isTwistedLeague() && (!(w.getMinimumLevel() > 100)))); ctx1.sleepUntil(() -> (!Client.getGameState().equals(GameState.HOPPING)), Calculations.random(4000, 8000)); Instance.getInstance().getScriptManager().getCurrentScript().getRandomManager().enableSolver("Login Handler"); } } } if (Instance.getInstance().getScriptManager().getCurrentScript().getLocalPlayer().getTile().distance(ctx1.wildyTile) < 1) { while (true) { if (in1.ready()) if (in1.readLine().contains("World")) { resp1 = in1.readLine(); out1.println("worrec"); if (!WorldHopper.isWorldHopperOpen()); { WorldHopper.openWorldHopper(); ctx1.sleepUntil(()->WorldHopper.isWorldHopperOpen(),5000); } WorldHopper.hopWorld(Integer.parseInt(resp1.substring(resp1.indexOf("d") + 1))); ctx1.sleepUntil(() -> (!Client.getGameState().equals(GameState.HOPPING)), Calculations.random(4000, 8000)); break; } if ((Players.closest(p -> p != null && !p.equals(Instance.getInstance().getScriptManager().getCurrentScript().getLocalPlayer()) && p.distance() < 15 && p.getName() != slaveName) != null)) { Tabs.logout(); WorldHopper.hopWorld(Worlds.getRandomWorld(w -> w != null && !w.isPVP() && !w.isLastManStanding() && !w.isHighRisk() && !w.isDeadmanMode() && !w.isMembers() && !w.isTournamentWorld() && !w.isTwistedLeague() && (!(w.getMinimumLevel() > 100)))); ctx1.sleepUntil(() -> (!Client.getGameState().equals(GameState.HOPPING)), Calculations.random(4000, 8000)); Instance.getInstance().getScriptManager().getCurrentScript().getRandomManager().enableSolver("Login Handler"); } } } while (true) { if (Players.closest(p -> p.getName().equals(slaveName)) != null) { if (Combat.isAutoRetaliateOn()) { Tabs.open(Tab.COMBAT); Thread.sleep(2000); Combat.toggleAutoRetaliate(true); Thread.sleep(2000); Players.closest(p -> p.getName().equals(slaveName)).interact("Attack"); } if (Instance.getInstance().getScriptManager().getCurrentScript().getLocalPlayer().isInCombat()) { Walking.walkExact(ctx1.wildyTile.translate(2, 2)); } if (Instance.getInstance().getScriptManager().getCurrentScript().getLocalPlayer().distance(ctx1.wildyTile) > 30) break; } } Tabs.open(Tab.INVENTORY); while (Instance.getInstance().getScriptManager().getCurrentScript().getLocalPlayer().getTile().distance(ctx1.currTile) < 1) { Walking.walkExact(ctx1.currTile); ctx1.sleepUntil(() -> Instance.getInstance().getScriptManager().getCurrentScript().getLocalPlayer().isMoving(), 2000); ctx1.sleepUntil(() -> !Instance.getInstance().getScriptManager().getCurrentScript().getLocalPlayer().isMoving(), 120000); } Instance.getInstance().getScriptManager().getCurrentScript().setState(ScriptManager$State.RUNNING); } */ } } } catch (Exception ex) { ctx1.log(ex.toString()); } if (ctx.gui.hooray) { try { out1.println("."); } catch (Exception ex3) { ctx.log(ex3.toString()); } } } try { clientSocket1.close(); in1.close(); out1.close(); } catch (Exception ex6) { ctx.log(ex6.toString()); } } }; t.start(); //ctx.setState(ScriptManager$State.STOP); } So this opens when we launch a slave. I commented out the parts that probably don't concern us at all. And might need changing. So what happens here? We launch a new Thread. Which allows us then to STOP the script. So the script is no longer running. But the thread is still running because of the while loop that checks for this magical "hooray" variable to be true. Hooray doesn't get set to true until this: this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ ctx.gui.hooray = true; } }); So until the SLAVE window is closed. Our slave will continue to listen for socket messages. And will send a "Keep alive" every so often to keep the connection from closing. This IS THE MOST IMPORTANT PART of the socket: if (in1.ready()) resp1 = in1.readLine(); ReadLine is NOT SAFE. If you try to access it when nothing is there. U WILL CRASH and burn. Hence we have to check for ready(). So with this we can get responses and check them. And with out.println. We can SEND back to the mule messages. In this instance i decided to send the players level, name, and etc back to the mule in order for the mule to calculate how far in the wilderness he needs to go. a "." tells the socket to close up shop. For the Mule script we also run it in a new thread for Every Accepted socket connection and we Increment the number of slaves connected on the Mule window. I'll leave it to you guys to figure it out if u want to use it. Its .JAR here so u can run it and see how it works. Good for scripters who don't necessarily wanna dive at this without some pre code to see and figure out how to do it. Cheers For Full Source. Just decompile the .JAR below. TradeRestrictMule.jar
    5. I'm on Mac High Sierra with no problems.
    6. yeah no idae what could be causing your problem here. Have u tried any other games besides osrs? is there a possible gpu issue? Just trying to help. If you can. Get VIP and run the client from console and give us that output as well. Cheers. Hope it figures out.
    7. Do you have antivirus or firewall? run java -version in console and show us the exact version here in chat e.g. for me my mac: java version "1.8.0_251" Java(TM) SE Runtime Environment (build 1.8.0_251-b08) Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)
    8. Okay this seems to be working with RQuester . When i manually type it in as the script name. So it seems to work with paid scripts as well. Now we just need a list of script names to input. Also need a way to handle gui's. But if the script has quickstart. should be no problem. Cheers.
    9. Well it took me a week because I was stuck as to what was wrong with it. Putting some of the key code in OnStart was the problem for me. I refactored everything into OnLoop. I added account loading option, script name loading option. (We still need a way to get script names but for another time). Added a double click option for rows in the list. Going to update the main post in 2 seconds.
    10. Walking.walk(fireMakingArea.getRandomTile()); sleepUntil(() -> getLocalPlayer().isMoving(), randomNum(1000, 1500)); sleepUntil(() -> !getLocalPlayer().isMoving(), randomNum(5000,7000)); For this code. This code is basically an accident waiting to happen. If lag somehow occurs or etc. I would use maybe 5 retries in a loop with walking to a tile and tile checking. Also if u wanna fully walk to a target that involves multiple clicks. u need to call Walking.walk multiple times. Its not a blocking function. int i = 0; while(!getLocalPlayer().getTile().equals(tileIwantToWalkto)) { Walking.walk // sleep // etc i++; if (i > 4) break; } The above code could be made even better probably.
    11. Java and all the null checks drives me crazy. And optionals would just drive me more crazy. I think maybe I'll just wrap the classes with some null handlers and throw them in a dark corner of my project source window. Then have the log hiccup if there actually is a null. which i don't plan for to be lol. Just a tip for you. WATCH out for OnStart. I did something in there. and found out all my problems were solved by moving the code to the OnLoop. Took me 3-4 days to figure out why my onLoop was firing only some of the time.
    12. No. The thing it needs the most is the ability to add multiple scripts without the dang thing scrolling to the top and refreshing and reloading and just being a total pain for new users to try out multiple things cuz it takes like 30 refreshes and types and scrollings to go click add on every script u want. Its like some sort of phone dopamine addiction. Which is fine but man its so 2013.
    13. the walking always has to be looped. You can't just call Walking.walk once and expect it to get there. This is to allow u ur own loop implementation (think wildy walking). You might be able to turn lots of these into lambdas. Should have a sleep between bank deposit and close i think. Also u want to walk to the bank if it doesn't contain the player. Right now u are walking if it does.
    14. Don't run it as admin. Download the latest JAR from here and copy and paste it over the one ur opening. For a complete reinstall delete /username/Dreambot and /username/DBFolderCache folders. Then download the jar and run it again. If you want to be totally paranoid. Get java 8 se version and try it with that. Make sure the properties for the JAR file aren't "blocked" at the bottom.
    ×
    ×
    • Create New...

    Important Information

    We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.