Jump to content

Ardy Knights [Basic Thieving Script]


Recommended Posts

Posted (edited)

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

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