Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.fisher;
- import java.awt.Color;
- import java.awt.Font;
- import java.awt.Graphics2D;
- import java.awt.Point;
- import org.osbot.rs07.api.map.Area;
- import org.osbot.rs07.api.model.NPC;
- import org.osbot.rs07.api.model.RS2Object;
- import org.osbot.rs07.api.ui.Skill;
- import org.osbot.rs07.api.ui.Tab;
- import org.osbot.rs07.script.Script;
- import org.osbot.rs07.script.ScriptManifest;
- @ScriptManifest(author = "PocketPokie", info = "Start with more than 60 coins in inventory and a lobster pot.", logo = "", name = "Pokie's Lobster Fisher 1.0", version = 0.1)
- public class Fisher extends Script {
- //Areas
- public Area BOAT_KARAMJA = new Area(2955,3141,2957,3144).setPlane(1); //MAKE BIGGER THAN BOAT
- public Area DOCK_KARAMJA = new Area(2945,3146,2960,3147);
- public Area DOCK_SARIM = new Area(3022,3214,3029,3223);
- public Area BOAT_SARIM = new Area(3038,3210,3031,3223).setPlane(1);
- public Area FISHING_AREA = new Area(2919, 3173,2928,3181);
- public Area DEPOSIT_BOX = new Area(3041,3234,3047,3237);
- public Area DOCK_CUSTOMS = new Area(2953,3146,2955,3147);
- //everything Walking
- //tIME
- private long startTime;
- int animFishing =619;
- int fishCaught;
- //inAreaCheck
- int spotId = 1522;
- String netName = "Lobster pot";
- String coins = "Coins";
- String seamanName = "Seaman";
- String officerName = "Customs officer";
- String[] seamanActions = new String[10];
- String yes = "Yes please.";
- //karamjacustomsofficerstrings
- String yesJourney = "Can I journey on this ship?";
- String yesSearch = "Search away, I have nothing to hide.";
- String ok = "Ok.";
- //
- String plankName = "Gangplank";
- String crossPlank = "Cross";
- String payFare = "Pay-Fare";
- @Override
- public int onLoop() throws InterruptedException {
- //TIME STUFF
- final long runTime = System.currentTimeMillis() - startTime;
- //END TIME STUFF
- if(inventory.getAmount("Coins") <=60){ //cheap coin check logout, fix in next version
- logoutTab.logOut();
- stop();
- }
- switch(getState()){
- case WALK_PLANK:
- log("Walking plank...");
- clickPlank();
- sl(); //randomize final tile
- break;
- case WALK_TO_FISH:
- log("attempting to walk to fishing area...");
- this.walking.webWalk(FISHING_AREA);
- sl();
- break;
- case FISH:
- log("Starting to fish...");
- Fish();
- sl();
- break;
- case WALK_TO_KARAMJA_DOCK:
- log("Walking to Karamja Dock...");
- // this.walking.webWalk(DOCK_KARAMJA);
- this.walking.webWalk(DOCK_CUSTOMS); //gets closer to customs officer
- break;
- case TALK_TO_CUSTOMS_OFFICER:
- findCustomsKaramja(); //selects the pay-fare option
- sl();
- payForBoatKaramja();
- sl();
- break;
- case TALK_TO_SEAMAN:
- log("Finding and talking to seaman on Port Sarim Dock...");
- findSeamanPort();
- sl();
- payForBoatPort();
- break;
- case WALK_TO_DEPOSIT:
- log("Walking to deposit box...");
- this.walking.webWalk(DEPOSIT_BOX);
- break;
- case FISHING_ANTIBAN:
- antiban();
- break;
- case MAKE_DEPOSIT:
- log("Depositing fish...");
- depositFish();
- break;
- case WALK_TO_SARIM_DOCK:
- log("Walking to Sarim Dock...");
- this.walking.webWalk(DOCK_SARIM);
- break;
- case LOST: //this means that you are not in any defined area. // thus we will use webWalk to get back to an area.
- log("Player is lost, making back to area that is known...");
- lostPlayer();
- sl();
- break;
- case IDLE:
- log("currently idle");
- break;
- }
- return random(200,600);
- }
- @Override
- public void onStart(){
- log("The script is starting");
- startTime = System.currentTimeMillis();
- this.getExperienceTracker().start(Skill.FISHING);
- fishCaught = 0;
- }
- @Override
- public void onExit(){
- log("Thank you for running PokieFisher.");
- }
- private void antiban() throws InterruptedException{
- if(random(0,1000)==1){
- switch(random(0,1)){
- case 0:
- this.mouse.move(random(123,345), random(241,405));
- break;
- case 1:
- this.tabs.open(Tab.SKILLS);
- sleep(random(50,100));
- this.mouse.move(random(681,725), random(273,285));
- sleep(random(1000,4000));
- this.tabs.open(Tab.INVENTORY);
- break;
- }
- }
- }
- private NPC getFishSpot(int spotId){
- NPC fishSpot = this.npcs.closest(spotId);
- return fishSpot;
- }
- private void Fish() throws InterruptedException{
- NPC fishSpot = getFishSpot(spotId);
- if(!this.myPlayer().isAnimating()){
- int x = random(0,1);
- log("x = "+ x);
- switch(x){
- case 0:
- this.mouse.move(random(100,500),random(100,500));
- fishSpot.interact("Cage");
- break;
- case 1:
- fishSpot.hover();
- this.mouse.click(true);
- fishSpot.interact("Cage");
- break;
- default:
- fishSpot.interact("Cage");
- }
- }
- }
- public void findSeamanPort() throws InterruptedException{
- log("Finding seaman...");
- while(this.chatbox.isVisible()){
- NPC seaman = this.npcs.closestThatContains(seamanName);
- if(!seaman.isVisible()){
- this.camera.toEntity(seaman);
- } else {
- seamanActions = seaman.getActions();
- seaman.interact(seamanActions[2]);
- }
- sleep(random(1000,2000));
- }
- }
- public void findCustomsKaramja() throws InterruptedException{
- log("Finding seaman...");
- while(this.chatbox.isVisible()){
- NPC customsOfficer = this.npcs.closestThatContains(officerName);
- if(!customsOfficer.isVisible()){
- this.camera.toEntity(customsOfficer);
- sl();
- } else {
- customsOfficer.interact(payFare);
- sl();
- }
- }
- }
- public void payForBoatPort() throws InterruptedException{
- while(this.dialogues.inDialogue()){
- if(!this.dialogues.isPendingContinuation() && !this.dialogues.completeDialogue(yes)){
- this.dialogues.clickContinue();
- sleep(random(200,800));
- } else if(this.dialogues.completeDialogue(yes)) {
- this.dialogues.selectOption(1);
- sleep(random(200,800));
- }
- }
- }
- public void payForBoatKaramja() throws InterruptedException{
- while(this.dialogues.inDialogue()){
- if(!this.dialogues.isPendingContinuation() && !this.dialogues.completeDialogue(yesJourney, yesSearch, ok)){
- this.dialogues.clickContinue();
- sl();
- } else if(this.dialogues.completeDialogue(yesJourney)){
- this.dialogues.selectOption(yesJourney);
- sl();
- } else if(this.dialogues.completeDialogue(yesSearch)) {
- this.dialogues.selectOption(yesSearch);
- sl();
- } else {
- this.dialogues.selectOption(ok);
- sl();
- }
- }
- }
- public enum State{
- WALK_PLANK, WALK_TO_FISH, WALK_TO_KARAMJA_DOCK, WALK_TO_SARIM_DOCK,
- WALK_TO_DEPOSIT, LOST, FISH, TALK_TO_CUSTOMS_OFFICER, TALK_TO_SEAMAN,
- FISHING_ANTIBAN, MAKE_DEPOSIT,IDLE
- };
- public State getState(){
- log("getState() being called");
- if(BOAT_KARAMJA.contains(this.myPlayer()) || BOAT_SARIM.contains(this.myPlayer())){ //add sarim boat
- log("Position confirmed: On boat.");
- return State.WALK_PLANK;
- } else if (DOCK_KARAMJA.contains(this.myPlayer()) && !this.inventory.isFull()){ //if at karamja&fullinvy; go to fish){
- log("You are on the karamja dock with a nonfullinvy");
- return State.WALK_TO_FISH;
- } else if(FISHING_AREA.contains(this.myPlayer()) && this.myPlayer().getAnimation()==-1
- && !this.inventory.isFull() && !myPlayer().isMoving()) {
- log("We are doing nothing. Time to fish");
- return State.FISH;
- } else if(this.inventory.isFull() && FISHING_AREA.contains(this.myPlayer())){ //if fulloffish in fish area
- return State.WALK_TO_KARAMJA_DOCK;
- } else if (DOCK_KARAMJA.contains(this.myPlayer()) && this.inventory.isFull()){
- return State.TALK_TO_CUSTOMS_OFFICER; //also pays
- } else if (DOCK_SARIM.contains(this.myPlayer()) && !this.inventory.isFull() ){
- return State.TALK_TO_SEAMAN;//also pays
- } else if(DOCK_SARIM.contains(this.myPlayer()) && this.inventory.isFull()){
- return State.WALK_TO_DEPOSIT;
- } else if(DEPOSIT_BOX.contains(this.myPlayer()) && this.inventory.isFull()){
- return State.MAKE_DEPOSIT;
- }else if (DEPOSIT_BOX.contains(this.myPlayer()) && !this.inventory.isFull()){
- return State.WALK_TO_SARIM_DOCK;
- } else if(!DOCK_KARAMJA.contains(this.myPlayer())
- && !DOCK_SARIM.contains(this.myPlayer())
- && !BOAT_KARAMJA.contains(this.myPlayer())
- && !FISHING_AREA.contains(this.myPlayer())
- && !DEPOSIT_BOX.contains(this.myPlayer())
- && !BOAT_SARIM.contains(this.myPlayer())){
- return State.LOST;
- } else if (animFishing == this.myPlayer().getAnimation()){
- return State.FISHING_ANTIBAN;
- } else {
- return State.IDLE;
- }
- }
- private void depositFish() throws InterruptedException{
- while(!this.myPlayer().isMoving() && this.inventory.isFull()&& !this.depositBox.isOpen()){
- log("Finding deposit box...");
- RS2Object db = this.objects.closest("Bank deposit box");
- db.interact("Deposit");
- sl();
- }
- if(this.depositBox.isOpen() && inventory.contains("Raw lobster")){
- this.depositBox.depositAllExcept(netName, coins);
- }
- }
- private void clickPlank(){
- log("We are on the boat. Finding plank...");
- this.objects.closest(plankName).interact(crossPlank);
- }
- private void sl() throws InterruptedException{
- sleep(random(500,1300));
- }
- private void lostPlayer() throws InterruptedException{
- this.walking.webWalk(DOCK_KARAMJA, DOCK_SARIM, DEPOSIT_BOX, FISHING_AREA );
- log("We are lost. Making way to known area.");
- }
- //EVERYTHING PAINT UNDER HERE
- public final String formatTime(final long ms){
- long s = ms / 1000, m = s / 60, h = m / 60;
- s %= 60; m %= 60; h %= 24;
- return String.format("%02d:%02d:%02d", h, m, s);
- }
- @Override
- public void onPaint(Graphics2D g) {
- Font font = new Font("Comic Sans", Font.BOLD, 14);
- Point mP = getMouse().getPosition();
- g.setColor(Color.WHITE);
- g.drawLine(mP.x - 3, mP.y - 3, mP.x - 3, mP.y + 3);
- g.drawLine(mP.x - 3, mP.y - 3, mP.x + 3, mP.y - 3);
- g.drawLine(mP.x - 3, mP.y + 3, mP.x + 3, mP.y + 3);
- g.drawLine(mP.x + 3, mP.y + 3, mP.x + 3, mP.y - 3);
- g.setColor(Color.CYAN);
- g.drawString("Current Level: "+ getSkills().getStatic(Skill.FISHING), 10, 210);
- fishCaught = getExperienceTracker().getGainedXP(Skill.FISHING)/90;
- g.drawString("Fish caught: "+ fishCaught, 10, 230);
- g.drawString("XP Gained: "+ getExperienceTracker().getGainedXP(Skill.FISHING), 10, 250);
- g.drawString("XP / HR: "+ getExperienceTracker().getGainedXPPerHour(Skill.FISHING), 10, 270);
- g.drawString("Time to LVL: "+ formatTime(getExperienceTracker().getTimeToLevel(Skill.FISHING)), 10, 290);
- final long runTime = System.currentTimeMillis() - startTime;
- g.drawString("Time Ran: "+ formatTime(runTime), 10, 310);
- g.setColor(Color.WHITE);
- g.drawString("Pokie Fisher V1.0",10,330);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement