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
  • Search the Community

    Showing results for tags 'code review'.

    • Search By Tags

      Type tags separated by commas.
    • Search By Author

    Content Type


    Forums

    • Requests
    • DreamBot
      • Announcements
      • Client Support
      • Site Support
    • Community
      • General Discussion
      • Runescape
      • Spam
      • Applications
    • Scripts
      • SDN Scripts
      • Local Scripts
      • Private Scripting Shops
      • Script Requests
      • Script Management
    • Development
      • Scripting
      • Programming
    • Market
      • Vouchers / Store Credit
      • Middleman Services
      • Gold Exchange
      • Membership Sales
      • Account Sales
      • Item Exchange
      • Services
      • Graphics
      • Other
    • Management
      • Disputes
      • Appeals
      • Archive

    Product Groups

    • Donator
    • VIP
    • Sponsor
    • Scripts
      • Agility
      • Combat
      • Construction
      • Cooking
      • Crafting
      • Fletching
      • Firemaking
      • Fishing
      • Herblore
      • Hunter
      • Magic
      • Mining
      • Farming
      • Prayer
      • Ranged
      • Runecrafting
      • Slayer
      • Smithing
      • Thieving
      • Woodcutting
      • Money Making
      • Mini-Games
      • Quests
      • Other

    Find results in...

    Find results that contain...


    Date Created

    • Start

      End


    Last Updated

    • Start

      End


    Filter by number of...

    Joined

    • Start

      End


    Group


    Website URL


    Discord


    Skype


    Location


    Interests

    Found 2 results

    1. Hello, Thanks for checking out my post. here is my second script which is a moded version of my first, both of which relied on Pandemics example miner and chatgpt. Seems to be running fine but one thing that is bugging me is it stays on the bank longer than Id like, ex it withdraws gold bars and seems to sleep for a second longer then it should but im still not certain what code is producing this. It is a simple gold bar crafter making whatever mould is in your inventory in edge. Not really any antiban so if any one has some to share id appreciate it as well. It is a node task script as Pandemic showed in his miner example. Im open to all critique. It is seperated into 3 files, the main script being CashCrafter and the two nodes being BankTask & SmeltTask. Here is CashCrafter. import org.dreambot.api.methods.skills.Skill; import org.dreambot.api.methods.skills.SkillTracker; import org.dreambot.api.script.Category; import org.dreambot.api.script.ScriptManifest; import org.dreambot.api.script.impl.TaskScript; import org.dreambot.api.utilities.Logger; import tasks.BankTask; import tasks.SmeltingTask; import java.awt.*; @ScriptManifest(category = Category.CRAFTING, name = "CashCrafter", description = "Crafts Cash.", author = "BTK", version = 0.2) public class CashCrafter extends TaskScript { private long startTime; private SmeltingTask smeltingTask; private BankTask bankTask; @Override public void onStart() { Logger.log("Starting cash miner......"); SkillTracker.start(Skill.CRAFTING); startTime = System.currentTimeMillis(); smeltingTask = new SmeltingTask(); bankTask = new BankTask(); addNodes(smeltingTask, bankTask); } @Override public void onPaint(Graphics2D g) { g.setFont(new Font("Arial", Font.BOLD, 12)); Color bronze = new Color(205, 127, 50); g.setColor(bronze); String experienceGainedText = String.format( "Crafting Experience: %d (%d per hour)", SkillTracker.getGainedExperience(Skill.CRAFTING), SkillTracker.getGainedExperiencePerHour(Skill.CRAFTING) ); g.drawString(experienceGainedText, 5, 35); long elapsedTime = System.currentTimeMillis() - startTime; String timeRunningText = "Time Running: " + formatTimeElapsed(elapsedTime); g.drawString(timeRunningText, 5, 65); // Adjust y-coordinate as String smeltingStatus = "Smelting: " + smeltingTask.getStatus(); g.drawString(smeltingStatus, 5, 95); String bankStatus = "Banking: " + bankTask.getStatus(); g.drawString(bankStatus, 5, 115); } private String formatTimeElapsed(long millis) { long seconds = millis / 1000; long minutes = seconds / 60; seconds %= 60; long hours = minutes / 60; minutes %= 60; return String.format("%02d:%02d:%02d", hours, minutes, seconds); } } SmeltingTask package tasks; import org.dreambot.api.methods.Calculations; import org.dreambot.api.methods.container.impl.Inventory; import org.dreambot.api.methods.input.Camera; import org.dreambot.api.methods.interactive.GameObjects; import org.dreambot.api.methods.interactive.Players; import org.dreambot.api.methods.map.Area; import org.dreambot.api.methods.map.Tile; import org.dreambot.api.methods.skills.Skill; import org.dreambot.api.methods.skills.Skills; import org.dreambot.api.methods.tabs.Tab; import org.dreambot.api.methods.tabs.Tabs; import org.dreambot.api.methods.walking.impl.Walking; import org.dreambot.api.methods.widget.Widgets; import org.dreambot.api.script.TaskNode; import org.dreambot.api.utilities.Logger; import org.dreambot.api.utilities.Sleep; import org.dreambot.api.wrappers.interactive.GameObject; import org.dreambot.api.wrappers.widgets.WidgetChild; import java.util.Random; public class SmeltingTask extends TaskNode { Area smeltArea = new Area(3108, 3500, 3109, 3498); Tile smeltTile = new Tile(3109, 3499); private String status = "Inactive"; // ... your existing node logic ... public String getStatus() { return status; } @Override public boolean accept() { boolean hasBars = Inventory.contains(item -> item.getName().toLowerCase().contains("bar")); if (isSmelting() && !hasBars) status = "Inactive"; return !isSmelting() && hasBars; } @Override public int execute() { status = "Executing smelting."; if (!smeltArea.contains(Players.getLocal().getTile())) { Random random = new Random(); status = "Walking to smelting"; if (random.nextInt(10) == 0) { Logger.log("Walk to smelt area"); Walking.walk(smeltArea.getRandomTile()); } else { Logger.log("Walk to smelt tile"); Walking.walk(smeltTile); } Sleep.sleepUntil(Walking::shouldWalk, () -> Players.getLocal().isMoving(), 1000, 100); return 100; } GameObject furnace = getClosestFurnace(); if (furnace == null) { Logger.log("No furace...something gone wrong!"); return Calculations.random(500, 1000); } Sleep.sleep(Calculations.random(100, 500)); status = "Interacting to smelt."; if (furnace.interact("Smelt")) { status = "Cashin in."; Sleep.sleep(Calculations.random(1500, 2500)); WidgetChild bronzeBarWidget = getWidgetBasedOnMould(); if (bronzeBarWidget != null && bronzeBarWidget.interact()) { antiBan(); Sleep.sleepUntil(this::isSmelting, 3000); } } return Calculations.random(500, 1000); } private WidgetChild getWidgetBasedOnMould() { if (Inventory.contains("Necklace mould")) { return Widgets.get(446, 23); } else if (Inventory.contains("Amulet mould")) { return Widgets.get(446, 37); } else if (Inventory.contains("Bracelet mould")){ return Widgets.get(446, 50); } else if (Inventory.contains("Ring mould")) { return Widgets.get(); } else { throw new RuntimeException("No mould in inventory!"); } } private void antiBan() { int choice = Calculations.random(0, 99); // Generates a random number between 0 and 99 inclusive status = "Cashin in, antiban random: " + choice; switch (choice) { case 0: // 1% chance Skills.hoverSkill(Skill.CRAFTING); Sleep.sleep(Calculations.random(2000, 5000)); break; case 1: // 1% chance // Camera. Sleep.sleep(Calculations.random(2000, 5000)); break; case 2: // 1% chance Sleep.sleep(Calculations.random(20000, 50000)); break; case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10: if (Tabs.getOpen() != Tab.INVENTORY) { Tabs.open(Tab.INVENTORY); Sleep.sleep(Calculations.random(500, 1000)); } break; default: // 90% chance // Do nothing break; } } private boolean isSmelting() { for (int i = 0; i < 9; i++) { if (Players.getLocal().isAnimating()) { return true; } int sleepTime = Calculations.random(100, 500); Sleep.sleep(sleepTime); } return false; } private GameObject getClosestFurnace() { return GameObjects.closest(object -> object.getName().equalsIgnoreCase("Furnace") && object.hasAction("Smelt") && object.distance() < 10); } } And BankTask package tasks; import org.dreambot.api.methods.Calculations; import org.dreambot.api.methods.container.impl.Inventory; import org.dreambot.api.methods.container.impl.bank.Bank; import org.dreambot.api.methods.interactive.Players; import org.dreambot.api.methods.walking.impl.Walking; import org.dreambot.api.script.TaskNode; import org.dreambot.api.utilities.Logger; import org.dreambot.api.utilities.Sleep; public class BankTask extends TaskNode { private String status = "Inactive"; public String getStatus() { return status; } @Override public boolean accept() { boolean hasBars = Inventory.contains(item -> item.getName().toLowerCase().contains("bar")); if (hasBars) status = "Inactive"; return !hasBars; } @Override public int execute() { status = "Banking"; if (Bank.open()) { status = "Banking; open."; Bank.depositAllExcept(item -> item.getName().contains("mould")); Bank.withdraw("Gold bar", 27); } else { status = "Banking; walking."; Sleep.sleepUntil(Walking::shouldWalk, () -> Players.getLocal().isMoving(), 1000, 100); return 100; } return Calculations.random(300, 600); } }
    ×
    ×
    • 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.