Jump to content

flip242

Members
  • Posts

    2
  • Joined

  • Last visited

flip242's Achievements

Bronze Member

Bronze Member (1/10)

  1. Here is the code if you want to craft silver bars into tiaras import com.epicbot.api.shared.APIContext; import com.epicbot.api.shared.GameType; import com.epicbot.api.shared.entity.SceneObject; import com.epicbot.api.shared.entity.WidgetChild; import com.epicbot.api.shared.model.Tile; import com.epicbot.api.shared.script.LoopScript; import com.epicbot.api.shared.script.ScriptManifest; import com.epicbot.api.shared.util.Random; import com.epicbot.api.shared.util.time.Time; @ScriptManifest(name = "JewelleryCrafter", gameType = GameType.OS) public class EdgeJewelleryCrafter extends LoopScript { private long anim; private int runE = Random.nextInt(50, 80); private static final int FURNACE_GROUP = 446; private static final int SILVER_FURNACE_GROUP = 6; private static final Tile FURNACE_ROOM = new Tile(3108, 3499, 0); private static final Tile EDGE_BANK = new Tile(3096, 3496, 0); /* Settings */ private static final String JEWELLERY_NAME = "Tiara"; private static final String MOULD = "Tiara mould"; private static final String BAR = "Silver bar"; @Override protected int loop() { APIContext ctx = getAPIContext(); int hr = Time.getHumanReaction(); if (ctx.walking().getRunEnergy() > runE && !ctx.walking().isRunEnabled() && !localAnimating(ctx) && !ctx.bank().isOpen()) { ctx.walking().setRun(true); runE = Random.nextInt(30, 80); return hr; } if (ctx.inventory().containsAll(BAR, MOULD) && !localAnimating(ctx)) { if (isOpen(ctx) && initiate(ctx, JEWELLERY_NAME)) { Time.sleep(5000, () -> localAnimating(ctx)); return hr; } SceneObject furnace = ctx.objects().query().named("Furnace").results().first(); if (furnace != null) { if (furnace.isVisible() && furnace.interact("Smelt")) { Time.sleep(10000, () -> isOpen(ctx)); return hr; } else if (!furnace.isVisible()) { ctx.walking().walkTo(FURNACE_ROOM); Time.sleep(10000, () -> furnace.isVisible() || furnace.distanceTo(ctx) <= 2); } } } else if (!ctx.inventory().containsAll(BAR)) { if (openBankOnScreen(ctx)) { ctx.bank().depositAllExcept(BAR); depositTiaraMould(ctx); banking(ctx, MOULD, BAR); } else { ctx.walking().walkTo(EDGE_BANK.randomize(2, 0)); Time.sleep(15000, () -> openBankOnScreen(ctx)); } } return hr; } private static boolean getItem(String name, APIContext ctx) { if (ctx.bank().contains(name)) { ctx.bank().withdrawAll(name); Time.sleep(4000, () -> ctx.inventory().contains(name)); return true; } else { ctx.script().stop("No " + name + " in bank, stopping."); } return false; } public static boolean banking(APIContext ctx, String... item) { if (!ctx.inventory().contains(item[0]) && getItem(item[0], ctx)) { if (item.length == 2) { if (!ctx.inventory().contains(item[1]) && getItem(item[1], ctx)) { return ctx.inventory().containsAll(item[0], item[1]); } } return false; } else if (item.length == 1) { return ctx.inventory().contains(item[0]); } return false; } public static boolean openBankOnScreen(APIContext ctx) { if (ctx.bank().isOpen()) { return true; } SceneObject bank = ctx.objects().query().actions("Bank").visible().results().nearest(); if (bank != null && bank.interact("Bank")) { Time.sleep(10000, () -> ctx.bank().isOpen()); } return ctx.bank().isOpen(); } private static void depositTiaraMould(APIContext ctx) { if (ctx.bank().isOpen()) { ctx.bank().depositAllExcept(BAR); Time.sleep(3000, () -> ctx.inventory().isEmpty()); } } @Override public boolean onStart(String... strings) { return true; } private boolean localAnimating(APIContext ctx) { if (ctx.localPlayer().isAnimating()) { anim = System.currentTimeMillis(); return true; } return System.currentTimeMillis() <= (anim + Random.nextInt(2600, 3600)); } public static boolean isOpen(APIContext ctx) { return ctx.widgets().query().group(FURNACE_GROUP,SILVER_FURNACE_GROUP).visible().results().first() != null; } public static boolean initiate(APIContext ctx, String name) { WidgetChild named = ctx.widgets().query().visible().group(FURNACE_GROUP,SILVER_FURNACE_GROUP).filter(w -> w.getActions().size() != 0).itemName(name).results().first(); if (named != null) { return named.interact(); } WidgetChild actionable = ctx.widgets().query().visible().group(FURNACE_GROUP,SILVER_FURNACE_GROUP).filter(w -> w.hasActionMatch("Make " + name)).results().first(); if (actionable != null) { return actionable.interact(); } return false; } } EdgeJewelleryCrafter.class
  2. When will Epicbot support new update of RS?
×
×
  • Create New...