Skip 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.

Sleep

Featured Replies

So basically I have recently started to write scripts (yesterday).

I have implemented the Node system and I wonder how I can 

sleep

while something is finished.

Let's say that I am chopping down a tree, how can I stop it from clicking while I am chopping?

 

Here is a preview of my code:

 

@ScriptManifest(author = "Ruzi", info = "WoodCutting", name = "WoodCutting", version = 1, logo = "")
public class Main extends Script {

    private final int DELAY = 100;
    private List<Node> nodes = new ArrayList<>();

    @Override
    public void onStart() {
        Area treeArea = new Area(3086, 3275, 3074, 3263);
     
        WalkToTreeArea walkToTreeArea = new WalkToTreeArea(this, treeArea);
        nodes.add(walkToTreeArea);
     
        ChopDown chopDown = new ChopDown(this, treeArea);
        nodes.add(chopDown);
    }

    @Override
    public int onLoop() throws InterruptedException {
        nodes.forEach(node -> {
            if(node.validate())
                node.execute();
        });
        return DELAY;
    }

    @Override
    public void onExit() {

    }
}
public class ChopDown implements Node {

    private final int TREE_ID = 1276;
    private Script script;
    private Area treeArea;
    private Player player;
    private RS2Object tree;

    public ChopDown(Script script, Area treeArea) {
        this.script = script;
        this.treeArea = treeArea;
        this.player = script.myPlayer();
    }

    @Override
        public void execute() {
        chopDown();
    }

    private void chopDown() {
        tree = script.getObjects().closest(TREE_ID);


        if(tree != null){
            tree.interact("Chop down");
        }  
    }


    @Override
    public boolean validate() {
        return !inventoryIsFull() && isAtTreeArea(); 
    }


    private boolean inventoryIsFull() {
        return script.getInventory().isFull();
    }


    private boolean isAtTreeArea() {
        return treeArea.contains(player);
    }
}
Thanks!

Check if the player is animating or not

if(!script.myPlayer().isAnimating()){
   //chop
}

Edited by Vilius

  • Author

add !myplayer.isAnimating to your validate condition

 

 

 

Check if the player is animating or not

if(!script.myPlayer().isAnimating()){
   //chop
}

 

Does this work for banking too?

Thanks guys!

Edited by Ruzi

Does this work for banking too?

Thanks guys!

I suppose it does, but I have no idea why would you want to check that, just do:

if(!script.getBank().isOpen()){
    //if closed open bank
    script.getBank().open();
}else{
    //if open do banking, take stuff, deposit stuff.
    script.getBank().depositAll("Logs");
}
  • Author

 

I suppose it does, but I have no idea why would you want to check that, just do:

if(!script.getBank().isOpen()){
    //if closed open bank
    script.getBank().open();
}else{
    //if open do banking, take stuff, deposit stuff.
    script.getBank().depositAll("Logs");
}

 

It seems that I have to catch the exception:

 

   try {
       script.getBank().open();
   } catch (InterruptedException e) {
       e.printStackTrace();
   }


script.sleep(x);

script.sleep(script.random(x,x));

MethodProvider.sleep(x);

MethodProvider.sleep(MethodProvider.random(x,x));

 

It seems that I have to catch the exception:

 

   try {
       script.getBank().open();
   } catch (InterruptedException e) {
       e.printStackTrace();
   }

 

Yep, you do need to do that, or just create your own interaction.

Create an account or sign in to comment

Recently Browsing 0

  • No registered users viewing this page.

Account

Navigation

Search

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.