Jump to content

Ardy Knights [Basic Thieving Script]


Imthabawse

Recommended Posts

Made a simple Pickpocket script for Ardy Knights. I made this script based around Knight being trapped in Ardy southern bank so must run it there to work efficiently (Hop around populated worlds till you find one). Posting code below so you can make this script you're own or run it as is :). Currently script has gotten me from 55-57 thieving so it gets the job done. I highly recommend taking breaks quite frequently with scripts like this to avoid bans (No-one sits there and clicks knights for hours..) * @LeBron proved me wrong haha.. still take breaks..

Added Features

* Added better eating method

* Added basic timeran and exp gained paint

* More to be added as I'm actively using this for gains right now and script practice

* Equips Dodgy necklace's if you have them in the inventory

* 55-61 Achieved :D Updated 4/23/19

Features

- Human like spam click "Pickpocket" 

- Opens coin pouches

- Banks for food (Sharks at the moment you can change yourself)

- Eats food when below certain health %

- Climbs down ladder if miss-clicked

- Equips Dodgy necklace's! (Must have in your inventory already for now)

 

To run efficiently

- Turn camera zoom settings all the way left

Turn NPC attack options to "Hidden"

- Make sure "Fixed mode" is selected 

- Enter you're PIN prior to running script so you can bank for food

 

Code

Spoiler

import org.osbot.rs07.api.model.Entity;
        import org.osbot.rs07.api.model.NPC;
        import org.osbot.rs07.api.ui.EquipmentSlot;
        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 = "Imthabawse", info = "Pickpockets Ardy Knights", logo = "", name = "ArdyKnights", version = 1)

public class ArdyKnights extends Script {

    private long timeBegan;
    private long timeRan;

    private int beginningXp;
    private int currentXp;
    private int xpGained;

    private void pickPocket() throws InterruptedException {
        NPC ardyKnight = getNpcs().closest("Knight of Ardougne");

        if(!myPlayer().isHitBarVisible() && myPlayer().getHealthPercent() >=50 && ardyKnight != null && getInventory().contains("Shark") && getInventory().getAmount("Coin pouch") < 28) {
            sleep(random(200,400));
            log("Pickpocketing Knight..");
            ardyKnight.interact("Pickpocket");
            new ConditionalSleep(5500) {
                @Override
                public boolean condition() {
                    return myPlayer().isAnimating();
                }
            }.sleep();
        }
    }



    private void eat() throws InterruptedException {
        if(myPlayer().getHealthPercent() < 50 && getInventory().contains("Shark")) {
            sleep(random(500,750));
            log("Eating food..");
            getInventory().interact("Eat","Shark");
            new ConditionalSleep(3500) {
                @Override
                public boolean condition() {
                    return myPlayer().getHealthPercent() >= 50;
                }
            }.sleep();
        }
    }


    private void bank() throws InterruptedException {
        if(!getInventory().contains("Shark") && !getInventory().isFull()) {
            log("Banking..");
            getBank().open();
            sleep(random(300,600));
            getBank().withdraw("Shark",5);
            sleep(random(400,700));
            getBank().close();
        }
    }

    private void openPouch() throws InterruptedException {
        if(getInventory().getAmount("Coin pouch") > 27) {
            sleep(random(850,1000));
            log("Opening coin pouches..");
            getInventory().interact("Open-all","Coin pouch");
            new ConditionalSleep(5000) {
                @Override
                public boolean condition() {
                    return !getInventory().contains("Coin pouch");
                }
            }.sleep();
        }
    }

    private void missClicked() throws InterruptedException {
        Entity ladder = getObjects().closestThatContains("Climb-down","Ladder");

        if(myPlayer().getZ() == 1 && ladder != null) {
            sleep(random(750,1000));
            log("Oops.. miss-clicked.. Climbing down.");
            ladder.interact("Climb-down");
        }
    }

    private void equipDodgy() throws InterruptedException {
        if(!getEquipment().isWearingItem(EquipmentSlot.AMULET,"Dodgy necklace") && getInventory().contains("Dodgy necklace")) {
            sleep(random(1250,2500));
            log("Putting on another Dodgy ;)");
            getInventory().interact("Wear","Dodgy necklace");
        }
    }

    private void antiBan() throws InterruptedException {
        if(myPlayer().isHitBarVisible()) {
            log("Anti-Ban..? ");
            sleep(random(545,855));
            getMouse().moveOutsideScreen();
            new ConditionalSleep(5500) {
                @Override
                public boolean condition() {
                    return !myPlayer().isHitBarVisible();
                }
            }.sleep();
        }
    }




    @Override
    public void onStart() {
        getCamera().toTop();
        log("Welcome to Ardy Knights.. let's get some gains!");
        timeBegan = System.currentTimeMillis();

        beginningXp = skills.getExperience(Skill.THIEVING);
    }

    @Override
    public void onExit() {
        log("Thanks for using Ardy Knights!");
    }

    @Override
    public void onPaint(Graphics2D g) {
        g.setColor(Color.green);
        timeRan = System.currentTimeMillis() - this.timeBegan;
        g.drawString(ft(timeRan), 16, 59);

        currentXp = skills.getExperience(Skill.THIEVING);
        xpGained = currentXp - beginningXp;
        g.drawString("Exp: " + xpGained, 16, 79);
    }

    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 + ":" + minutes + ":" + seconds);
        } else {
            res = (days + ":" + hours + ":" + minutes + ":" + seconds);
        }
        return res;
    }


    @Override
    public int onLoop() throws InterruptedException {
        pickPocket();
        openPouch();
        eat();
        bank();
        missClicked();
        equipDodgy();
        antiBan();
        return random(500,1000);
    }
}

 

Download:

ArdyKnights.jar

If anyone uses this please comment below proggies/comments you have about script. Thank you :)

Edited by Imthabawse
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...