Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import org.osbot.rs07.api.filter.Filter;
- import org.osbot.rs07.api.map.Area;
- import org.osbot.rs07.api.map.Position;
- import org.osbot.rs07.api.model.NPC;
- import org.osbot.rs07.api.model.RS2Object;
- import org.osbot.rs07.api.ui.RS2Widget;
- import org.osbot.rs07.api.ui.Skill;
- import org.osbot.rs07.script.Script;
- import org.osbot.rs07.script.ScriptManifest;
- import org.osbot.rs07.utility.ConditionalSleep;
- import java.awt.*;
- import java.util.concurrent.TimeUnit;
- @ScriptManifest(author = "Slakan", name = "LumbyFisher", info = "Will fish as stated.", version = 1.00, logo = "")
- public final class LumbyFisher extends Script {
- // PAINT VARIABLE DECLARATIONS
- private long timeBegan;
- private int FishbeginningLevel;
- private int CookbeginningLevel;
- // ONSTART() METHOD
- public final void onStart() {
- timeBegan = System.currentTimeMillis();
- FishbeginningLevel = skills.getStatic(Skill.FISHING);
- CookbeginningLevel = skills.getStatic(Skill.COOKING);
- }
- private RS2Widget getMyWidget() {
- //Replace ids with your ids
- RS2Widget storedWidget = getWidgets().get(270, 14);
- return storedWidget;
- }
- private RS2Object range() {
- RS2Object range = getObjects().closest("Range");
- return range;
- }
- @Override
- public final int onLoop() throws InterruptedException {
- Area fishingArea = new Area(3250, 3143, 3239, 3157);
- Area rangeArea = new Area(3233, 3195, 3230, 3198);
- Area outsideBuilding = new Area(3237, 3202, 3233, 3199);
- Position doorPosition = new Position(3235, 3198, 0);
- NPC fishingSpot = getNpcs().closest("Fishing spot");
- if (dialogues.isPendingContinuation()) {
- dialogues.clickContinue();
- } else {
- if (!inventory.isFull()) {
- // inventory is not full
- log("Inventory not full");
- if (fishingArea.contains(myPlayer().getPosition())) {
- // We are at fishing area
- log("We are at fishing area!");
- if (myPlayer().isAnimating()) {
- log("We are animating for fishing!!");
- new ConditionalSleep(5000) {
- @Override
- public boolean condition() {
- return inventory.isFull();
- }
- }.sleep();
- } else {
- if (fishingSpot.interact("Net")) {
- mouse.moveOutsideScreen();
- log("Interact with spot!");
- new ConditionalSleep(1000) {
- @Override
- public boolean condition() {
- return myPlayer().isAnimating() || dialogues.clickContinue();
- }
- }.sleep();
- }
- }
- } else {
- // We arent at fishing area
- log("We aint at fishing area!");
- // can we see the fishing spot? - We should click it, then we are in area.
- walking.webWalk(fishingArea);
- }
- } else {
- //inventory full
- if (inventory.contains("Raw anchovies", "Raw shrimps")) {
- if (rangeArea.contains(myPlayer())) {
- log("We are in range area");
- // We are at range area!
- if (myPlayer().isAnimating()) {
- log("We are animating cooking!");
- new ConditionalSleep(1000) {
- @Override
- public boolean condition() {
- return !myPlayer().isAnimating() || !inventory.contains("Raw anchovies", "Raw shrimps");
- }
- }.sleep();
- } else {
- log("We are in range area, not animating and ready to cook!");
- // We are inside the range area, we are not animating! We should click range and start cook!
- if (getMyWidget() == null) {
- // We see menu
- log("We can't see menu!");
- if (range().isVisible() && range() != null) {
- if (range().interact()) {
- sleep(random(2000, 3000));
- log("We can click range!");
- new ConditionalSleep(5000) {
- @Override
- public boolean condition() {
- return getMyWidget().isVisible();
- }
- }.sleep();
- }
- }
- } else {
- log("menu open!");
- if (getMyWidget().interact("Cook")) {
- sleep(random(500, 1000));
- new ConditionalSleep(5000) {
- @Override
- public boolean condition() {
- return !myPlayer().isAnimating();
- }
- }.sleep();
- }
- }
- }
- } else {
- // We aint at range area!
- log("We are not in range area!");
- if (inventory.isFull() && inventory.contains("Raw shrimps", "Raw anchovies")) {
- // We are not outside building & We can walk.
- log("inventory is full and its either shrimps, anchovies or both.");
- if (!outsideBuilding.contains(myPlayer()) && walking.walk(outsideBuilding)) {
- log("Walking to outside area!");
- new ConditionalSleep(5000) {
- @Override
- public boolean condition() {
- return outsideBuilding.contains(myPlayer());
- }
- }.sleep();
- } else {
- RS2Object isDoorOpen1 = getObjects().closest(new Filter<RS2Object>() {
- @Override
- public boolean match(RS2Object o) {
- if (o != null && o.hasAction("Open") && o.getPosition().equals(doorPosition))
- return true;
- return false;
- }
- });
- if (isDoorOpen1 == null) {
- log("Door open!");
- if (!rangeArea.contains(myPlayer())) {
- walking.walk(rangeArea);
- }
- }
- log("We are outside. Now how about the door?");
- if (getDoorHandler().canReachOrOpen(doorPosition)) {
- // We can handle door!
- log("We can handle the door??");
- // Get the door in position
- RS2Object doorAtPosition = getObjects().closest(new Filter<RS2Object>() {
- @Override
- public boolean match(RS2Object o) {
- if (o != null && o.getName().equals("Door") && o.getPosition().equals(doorPosition))
- return true;
- return false;
- }
- });
- if (doorAtPosition != null && doorAtPosition.isVisible()) {
- RS2Object isDoorOpen = getObjects().closest(new Filter<RS2Object>() {
- @Override
- public boolean match(RS2Object o) {
- if (o != null && o.hasAction("Open") && o.getPosition().equals(doorPosition))
- return true;
- return false;
- }
- });
- if (isDoorOpen != null && outsideBuilding.contains(myPlayer())) {
- log("We need to open door");
- // This really needs to be checked again, works for now..
- isDoorOpen.interact("Open");
- } else {
- log("Door is opened!");
- }
- } else {
- log("Door is most probably opened. Need failsafes!");
- }
- } else {
- // Cant handle door.
- }
- }
- } else {
- // We have full inv, but nothing in there is fishes.
- }
- }
- } else {
- inventory.dropAllExcept("Small fishing net");
- }
- }
- }
- return 300;
- }
- // ONPAINT() METHOD
- public void onPaint(Graphics2D g) {
- //Levels
- int FishcurrentLevel = skills.getStatic(Skill.FISHING);
- int CookcurrentLevel = skills.getStatic(Skill.COOKING);
- int FishlevelsGained = FishcurrentLevel - FishbeginningLevel;
- int CooklevelsGained = CookcurrentLevel - CookbeginningLevel;
- long timeRan = System.currentTimeMillis() - this.timeBegan;
- g.drawString("Version: 1.00", 6, 185);
- g.drawString("Runtime: " + ft(timeRan), 6, 200);
- g.drawString("Fishing start lvl: " + FishbeginningLevel + " + " + FishlevelsGained, 6, 215);
- g.drawString("Cooking start lvl: " + CookbeginningLevel + " + " + CooklevelsGained, 6, 230);
- //Color rscolor = new Color(200, 180, 150);
- //g.setColor(rscolor);
- //g.fillRect(6,344, 506, 130);
- }
- // FORMAT TIME METHOD
- private String ft(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: " + hours + " Minutes: " + minutes + " Seconds: " + seconds);
- } else {
- res = ("Days: " + days + "Hours: " + hours + "Minutes: " + minutes + "Seconds: " + seconds);
- }
- return res;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement