Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.Graphics2D;
- import java.util.concurrent.TimeUnit;
- import org.osbot.rs07.api.map.Area;
- import org.osbot.rs07.api.map.Position;
- import org.osbot.rs07.api.model.GroundItem;
- import org.osbot.rs07.api.model.NPC;
- import org.osbot.rs07.script.Script;
- import org.osbot.rs07.script.ScriptManifest;
- import org.osbot.rs07.utility.ConditionalSleep;
- @ScriptManifest(author = "Annointed/PuppyLover101", info = "Kills cows & loots cowhide", name = "LumbridgeCowKiller", version = 1.0, logo = "")
- public class LumbridgeCowKiller extends Script {
- Area bankPosition = new Area(new Position(3205, 3225, 2), new Position(3211, 3207, 2));
- Area cowArea = new Area(
- new int[][]{
- {3241, 3298},
- {3265, 3298},
- {3265, 3255},
- {3253, 3255},
- {3254, 3271},
- {3248, 3278},
- {3241, 3284}
- }
- );
- private long timeBegan;
- private long timeRan;
- private enum State {
- BANK_INVENTORY, KILL, WAIT
- };
- private State getState() {
- if(inventory.isFull()) {
- return State.BANK_INVENTORY;
- }
- if (myPlayer().getInteracting() != null) {
- return State.WAIT;
- }
- return State.KILL;
- }
- @Override
- public int onLoop() throws InterruptedException {
- State state = getState();
- log(state);
- switch (state) {
- case BANK_INVENTORY:
- if(bankPosition.contains(myPlayer())) {
- if(!getBank().isOpen()) {
- getBank().open();
- new ConditionalSleep(10000) {
- @Override
- public boolean condition() throws InterruptedException {
- return bank.isOpen();
- }
- }.sleep();
- }
- if (bank.isOpen()) {
- bank.depositAll();
- }
- }
- else {
- getWalking().webWalk(bankPosition);
- }
- break;
- case KILL:
- if(cowArea.contains(myPlayer())) {
- GroundItem cowhide = groundItems.closest("Cowhide");
- if (cowhide != null) {
- if (cowhide.interact("Take")) {
- new ConditionalSleep(5000) {
- @Override
- public boolean condition() throws InterruptedException {
- return !cowhide.exists();
- }
- }.sleep();
- }
- }
- else {
- @SuppressWarnings("unchecked")
- NPC cow = getNpcs().closest(
- npc -> (npc.getName().equals("Cow") || npc.getName().equals(
- "Cow calf"))
- && npc.isAttackable()
- && map.canReach(npc)
- && npc.getHealthPercent() > 0
- && cowArea.contains(npc));
- if (cow != null) {
- if (cow.interact("Attack")){
- new ConditionalSleep(5000) {
- @Override
- public boolean condition() throws InterruptedException {
- return myPlayer().getInteracting() != null;
- }
- }.sleep();
- }
- }
- }
- }
- else {
- getWalking().webWalk(cowArea);
- }
- break;
- case WAIT:
- break;
- }
- return random(600, 800); //The amount of time in milliseconds before the loop is called again
- }
- @Override
- public void onStart() {
- timeBegan = System.currentTimeMillis();
- }
- @Override
- public void onExit() {
- }
- @Override
- public void onPaint(Graphics2D g) {
- timeRan = System.currentTimeMillis() - timeBegan;
- g.drawString(formatTime(timeRan), 295, 349);
- }
- private String formatTime(long duration) {
- String res = "";
- long days = TimeUnit.MILLISECONDS.toDays(duration);
- long hours = TimeUnit.MILLISECONDS.toHours(duration)
- - TimeUnit.DAYS.toHours(TimeUnit.MILLISECONDS.toDays(duration));
- long minutes = TimeUnit.MILLISECONDS.toMinutes(duration)
- - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS
- .toHours(duration));
- long seconds = TimeUnit.MILLISECONDS.toSeconds(duration)
- - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS
- .toMinutes(duration));
- if (days == 0) {
- res = (hours + ":" + minutes + ":" + seconds);
- } else {
- res = (days + ":" + hours + ":" + minutes + ":" + seconds);
- }
- return res;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment