private void noteHerbs() { if (inventory.containsOneOf(grimyID)) { status = "Noting herbs"; RSNPC leprechaun = npcs.getNearest(leprechaunID); if (!leprechaun.isOnScreen() || calc.distanceTo(leprechaun) > 4) { walking.walkTileMM(leprechaun.getLocation(), 1, 1); sleep(random(3000, 4000)); } int tmp = inventory.getCount(grimyID); for (int i = 0; i < 5; i++) { if (tmp == inventory.getCount(grimyID)) { inventory.getItem(grimyID).doAction("Use"); sleep(200, 300); if (inventory.isItemSelected()) { leprechaun.doAction("Use"); sleep(3000, 4000); } } else break; } RSObject plot = objects.getNearest(herbPlot); if (plot != null) { if (!plot.isOnScreen()) { walking.walkTileMM(plot.getLocation(), 1, 1); sleep(random(3000, 4000)); } } } }
private void checkCrops() { status = "Checking crops"; RSObject plot = objects.getNearest(herbPlot); if (plot != null) { if (!plot.isOnScreen() || calc.distanceTo(plot) > 3) { walking.walkTileMM(plot.getLocation(), 1, 1); sleep(random(3000, 4000)); } plot.doAction(inspect); } }
private void compostPatch() { status = "Adding supercompost"; RSObject plot = objects.getNearest(herbPlot); if (plot != null) { if (!inventory.contains(compostID)) { RSNPC leprechaun = npcs.getNearest(leprechaunID); if (!leprechaun.isOnScreen() || calc.distanceTo(leprechaun) > 4) { walking.walkTileMM(leprechaun.getLocation(), 1, 1); sleep(random(3000, 4000)); } leprechaun.doAction("Exchange"); sleep(random(1500, 2000)); mouse.click(359, 265, 10, 10, true); sleep(random(300, 900)); interfaces.getComponent(leprechaunInterface, closeInterface).doClick(); sleep(random(200, 300)); if (!plot.isOnScreen() || calc.distanceTo(plot) > 4) { walking.walkTileMM(plot.getLocation(), 1, 1); sleep(random(3000, 4000)); } } if (inventory.contains(compostID)) { int tmp = inventory.getCount(compostID); for (int i = 0; i < 5; i++) { if (tmp == inventory.getCount(compostID) && currentState == State.COMPOST) { if (i > 0) camera.setAngle(random(0, 360)); if (inventory.contains(compostID)) { inventory.getItem(compostID).doClick(true); plot.doClick(); } sleep(random(4000, 5000)); } else break; } } } currentState = State.CHECK_CROPS; }
@Override public int loop() { if (!activateCondition() && readyToLeave) { readyToLeave = false; failCount = 0; return -1; } if (getMyPlayer().getAnimation() != -1 || getMyPlayer().isMoving()) { return random(500, 1000); } if (interfaces.getComponent(241, 4).containsText("Ahem, ")) { readyToLeave = false; } if (interfaces.getComponent(241, 4).containsText("Correct.") || interfaces.getComponent(241, 4).containsText("You can go now.")) { readyToLeave = true; } if (readyToLeave) { int PORTAL_ID = 11368; final RSObject portal = objects.getNearest(PORTAL_ID); if (portal != null) { final RSTile portalLocation = portal.getLocation(); if (portal.isOnScreen()) { portal.doAction("Enter"); return random(3000, 4000); } else { walking.walkTileMM( new RSTile(portalLocation.getX() - 1, portalLocation.getY()).randomize(1, 1)); return random(1500, 2000); } } } if (interfaces.getComponent(184, 0).isValid()) { final int modelID = interfaces.getComponent(184, 8).getComponents()[3].getModelID(); String itemName = null; for (int i = 0; i < MODEL_IDS.length; i++) { if (MODEL_IDS[i] == modelID) { itemName = ITEM_NAMES[i]; } } if (itemName == null) { log("The object couldn't be identified! ID: " + modelID); failCount++; if (failCount > 10) { stopScript(false); return -1; } return random(1000, 2000); } for (int j = 0; j < 3; j++) { final RSComponent iface = interfaces.getComponent(184, 8).getComponents()[j]; if (iface.containsText(itemName)) { iface.doClick(); return random(1000, 1200); } } } if (interfaces.canContinue()) { interfaces.clickContinue(); return random(1000, 1200); } final RSNPC certer = npcs.getNearest("Niles", "Miles", "Giles"); if (certer != null) { if (calc.distanceTo(certer) < 4) { certer.doAction("Talk-to"); return random(2500, 3000); } else { final RSTile certerLocation = certer.getLocation(); walking.walkTileMM( new RSTile(certerLocation.getX() + 2, certerLocation.getY()).randomize(1, 1)); return random(3000, 3500); } } failCount++; if (failCount > 10) { stopScript(false); return -1; } return random(400, 600); }
@Override public int loop() { if (bank.isDepositOpen() || bank.isOpen()) { bank.close(); } if (!activateCondition()) { return -1; } if (getMyPlayer().isMoving()) { return random(1000, 2000); } switch (getState()) { case EXIT: RSObject portal = objects.getNearest(EXIT_PORTAL); if (portal != null) { if (!portal.isOnScreen()) { camera.turnTo(portal); } if (portal.doAction("Enter")) { return random(1000, 1300); } } break; case OPEN_CHEST: RSObject chest = objects.getNearest(ARNAV_CHEST); if (chest != null) { if (chest.doClick()) { return random(1000, 1300); } } break; case TALK: if (interfaces.canContinue()) { interfaces.clickContinue(); return random(1500, 2000); } RSComponent okay = interfaces.getComponent(TALK_INTERFACE, 3); if (okay != null && okay.isValid()) { okay.doClick(); } return random(1500, 2000); case SOLVE: RSInterface solver = interfaces.get(CHEST_INTERFACE_PARENT); if (solver != null && solver.isValid()) { String s = solver.getComponent(32).getText(); if (s.contains("Bowl")) { index = 0; } else if (s.contains("Ring")) { index = 1; } else if (s.contains("Coin")) { index = 2; } else if (s.contains("Bar")) { index = 3; } if (solved()) { solver.getComponent(CHEST_INTERFACE_UNLOCK).doClick(); return random(600, 900); } RSComponent container = solver.getComponent(CHEST_INTERFACE_CENTER); for (int i = 0; i < 3; i++) { int rand = random(0, 100); if (rand < 50) { rand = 0; } else if (rand >= 50) { rand = 1; } RSComponent target = solver.getComponent(INTERFACE_SOLVE_IDS[index][i]); RSComponent arrow = solver.getComponent(ARROWS[i][rand]); while (container.isValid() && target.isValid() && !container .getArea() .contains(new Point(target.getCenter().x + 15, target.getCenter().y)) && arrow.isValid() && new Timer(10000).isRunning()) { arrow.doClick(); sleep(random(1000, 1200)); } } } } return random(500, 800); }