Jump to content
View in the app

A better way to browse. Learn more.

OSBot :: 2007 OSRS Botting

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Ardy Knights [Basic Thieving Script]

Featured Replies

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

Recently Browsing 0

  • No registered users viewing this page.

Account

Navigation

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.