Jump to content


  • Posts

  • Joined

  • Last visited

Recent Profile Visitors

151 profile views

lol_marcus's Achievements

Bronze Member

Bronze Member (1/10)

  1. I can't find anything on the API to simplify NPC dialogue continuation. Here's a snippet, which flags an error on the last line. selectOption doesn't allow for multiple entries, I guess? private void buy() { if (!BEER_AREA.contains(getAPIContext().localPlayer().getLocation())) { getAPIContext().webWalking().walkTo(BEER_AREA.getCentralTile()); } else if (!isActioning()) { final NPC camarst = getAPIContext().npcs().query().nameContains("Camarst").results().nearest(); if (camarst != null) { camarst.interact("Talk-to"); Time.sleep(5_000, () -> getAPIContext().dialogues().isDialogueOpen()); String[] options = new String[]{"Click here to continue", "Got anything strong to drink?"}; getAPIContext().dialogues().selectOption(options); } } }
  2. Made a script that collects grain @ GE, takes it to the cooking guild and turns it into Pot of Flours (to try and make more profit). Still barely doing 20k gp p/h. Not worthwhile at all.
  3. The lambda expression would solve the lag example. That`s why I have it wait 5 seconds. If the condition doesn't happen after 5 seconds, it should loop again, no? Anyway, it's just something quick that I wrote up for the guy who asked for the specific script. Ran it for about an hour and it was fine. 😛 It wouldn't be something I would submit to the script repository.
  4. Enjoy. import com.epicbot.api.shared.APIContext; import com.epicbot.api.shared.GameType; 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.Time; import java.awt.*; @ScriptManifest(name = "Pie Sheller", gameType = GameType.OS) public class PieSheller extends LoopScript { private long startTime; @Override public boolean onStart(String... strings) { startTime = System.currentTimeMillis(); return true; } @Override protected int loop() { if (!getAPIContext().inventory().contains("Pastry dough", "Pie dish")) { bank(); } else { combine(); } return 700; } private void bank() { if (!getAPIContext().bank().isOpen()) { getAPIContext().bank().open(); Time.sleep(5_000, () -> getAPIContext().bank().isOpen()); } else if (getAPIContext().bank().isOpen()) { getAPIContext().bank().depositInventory(); Time.sleep(5_000, () -> getAPIContext().bank().isOpen()); getAPIContext().bank().withdraw(14, "Pastry dough"); Time.sleep(5_000, () -> getAPIContext().inventory().contains("Pastry dough")); getAPIContext().bank().withdraw(14, "Pie dish"); Time.sleep(5_000, () -> getAPIContext().inventory().contains("Pie dish")); getAPIContext().bank().close(); } } private void combine() { if (getAPIContext().inventory().contains("Pastry dough", "Pie dish")) { getAPIContext().inventory().selectItem("Pastry dough", "Use"); Time.sleep(5_000, () -> getAPIContext().inventory().isItemSelected()); getAPIContext().inventory().selectItem("Pie dish"); Time.sleep(5_000, () -> !getAPIContext().dialogues().isChatOpen()); getAPIContext().keyboard().sendText(" ", true); Time.sleep(30_000, () -> getAPIContext().localPlayer().isAnimating() || !getAPIContext().inventory().contains("Pastry dough", "Pie dish")); } } @Override protected void onPaint(Graphics2D g, APIContext ctx) { PaintFrame pf = new PaintFrame(); pf.setTitle("Pie Sheller Script by Marcus"); pf.addLine("Runtime: ", Time.getFormattedRuntime(startTime)); pf.draw(g, 0, 90, ctx); } }
  • Create New...