sunken Posted January 19, 2023 Share Posted January 19, 2023 I made simple script for making rings in Edgevile. import com.epicbot.api.shared.APIContext; import com.epicbot.api.shared.GameType; import com.epicbot.api.shared.entity.LocatableEntity; import com.epicbot.api.shared.entity.SceneObject; import com.epicbot.api.shared.entity.WidgetChild; import com.epicbot.api.shared.script.LoopScript; import com.epicbot.api.shared.script.ScriptManifest; import com.epicbot.api.shared.util.paint.frame.PaintFrame; import com.epicbot.api.shared.util.time.SleepTimer; import com.epicbot.api.shared.util.time.Time; import javax.swing.*; import java.awt.*; import java.util.ArrayList; import java.util.Arrays; @ScriptManifest(name = "Gold coocker", gameType = GameType.OS) public class GoldCoocker extends LoopScript { int furnaceId = 16469; int bankBoothId = 10355; int goldBarId = 2357; int goldRingId = 1635; private int stallCount; private long startTime; private Jewellery selectedItem; @Override protected int loop() { APIContext ctx = getAPIContext(); if (!ctx.client().isLoggedIn()) { return 600; } if (selectedItem == null) { return 600; } if (!ctx.widgets().get(149, 0).isVisible()) { ctx.widgets().get(164, 54).click(); return 200; } if (ctx.walking().getRunEnergy() > 40 && !ctx.walking().isRunEnabled()) { ctx.walking().setRun(true); return 200; } if (selectedItem.inventoryFull(ctx)) { SceneObject furnace = ctx.objects().query().id(furnaceId).results().nearest(); if (ctx.calculations().distanceBetween(furnace, ctx.localPlayer().getLocation()) > 1) { if (!ctx.localPlayer().isMoving()) { ctx.walking().walkTo(furnace); } return 650; } if (ctx.localPlayer().getAnimation() == 899) { stallCount = 0; return 1000; } else { stallCount += 1; } if (stallCount > 5) { stallCount = 0; WidgetChild wgt = ctx.widgets().get(446, selectedItem.smeltId); if (!wgt.isVisible()) { furnace.interact("Smelt"); return 200 + Time.getHumanReaction(); } wgt.click(); } return 200; } else { LocatableEntity bank = ctx.objects().query().id(bankBoothId).results().nearest(); if (ctx.calculations().distanceBetween(bank, ctx.localPlayer().getLocation()) > 1) { if (!ctx.localPlayer().isMoving()) { ctx.walking().walkTo(bank); } return 650; } else { if (!ctx.bank().isOpen()) { ctx.bank().open(); return Time.getHumanReaction() + 200; } this.selectedItem.depositItems(ctx); this.selectedItem.withdrawItems(ctx); if (ctx.bank().isOpen()) { ctx.bank().close(); return Time.getHumanReaction() + 200; } } } return 0; } @Override protected void onPaint(Graphics2D g, APIContext ctx) { PaintFrame frame = new PaintFrame(getManifest().name()); frame.addLine("Runtime", Time.getFormattedRuntime(startTime)); frame.draw(g, 0, 170, ctx); } @Override public boolean onStart(String... strings) { stallCount = 0; startTime = Time.getRuntime(0); settingsView(); return true; } public void settingsView() { JFrame frame = new JFrame(); JComboBox<Jewellery> box = new JComboBox<>(new Jewellery[]{ new Jewellery("Gold ring", 1635, 8, new Item[]{new Item(2357, 27)}), new Jewellery("Sapphire ring", 1637, 9, new Item[]{new Item(2357, 13), new Item(1607, 13)}), new Jewellery("Emerald ring", 1639, 10, new Item[]{new Item(2357, 13), new Item(1605, 13)}), new Jewellery("Ruby ring", 1641, 11, new Item[]{new Item(2357, 13), new Item(1603, 13)}), new Jewellery("Diamond ring", 1643, 12, new Item[]{new Item(2357, 13), new Item(1601, 13)}), new Jewellery("Dragonstone ring", 1645, 13, new Item[]{new Item(2357, 13), new Item(1615, 13)}), }); JButton btn = new JButton("Start"); btn.addActionListener(actionEvent -> { selectedItem = (Jewellery) box.getSelectedItem(); frame.dispose(); startTime = Time.getRuntime(0); }); box.setBounds(100, 50, 160, 40); btn.setBounds(130, 100, 100, 40); frame.add(box); frame.add(btn); frame.setSize(200, 270); frame.setLayout(null); frame.setVisible(true); } private class Jewellery { int id, smeltId; String name; ArrayList<Item> combination; public Jewellery(String name, int id, int smeltId, Item[] com) { this.name = name; this.id = id; this.smeltId = smeltId; this.combination = new ArrayList<>(Arrays.asList(com)); } public void depositItems(APIContext ctx) { if (ctx.inventory().getCount(id) > 0) { ctx.bank().depositAll(id); Time.sleep(new SleepTimer(100, 2000) { @Override public boolean isDone() { return ctx.inventory().getCount(id) == 0; } }); } } public void withdrawItems(APIContext ctx) { for (Item i : combination) { if (i.amount == ctx.inventory().getCount(i.id)) { continue; } int amountLeft = ctx.bank().getCount(i.id); if (i.amount >= 27) { ctx.bank().withdrawAll(i.id); } else { ctx.bank().withdraw(i.amount, i.id); } Time.sleep(new SleepTimer(100, 2000) { @Override public boolean isDone() { return ctx.inventory().getCount(i.id) == i.amount || ctx.inventory().getCount(i.id) == amountLeft; } }); } } @Override public String toString() { return name; } public boolean inventoryFull(APIContext ctx) { for (Item i : combination) { if (ctx.inventory().getCount(i.id) <= 0) { return false; } } return true; } } private class Item { int id, amount; public Item(int id, int amount) { this.id = id; this.amount = amount; } } } Any feedback are welcome :) Quote Link to comment Share on other sites More sharing options...
Josue7326473 Posted January 29, 2023 Share Posted January 29, 2023 https://t.me/pump_upp - best crypto pumps on telegram Make 1000% and more within 1 day, join channel @pump_upp ! Quote Link to comment Share on other sites More sharing options...
GillyIV Posted February 13, 2023 Share Posted February 13, 2023 https://datebest.net - visit website and win smartphone! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.