Jump to content
Frequently Asked Questions
  • Are you not able to open the client? Try following our getting started guide
  • Still not working? Try downloading and running JarFix
  • Help! My bot doesn't do anything! Enable fresh start in client settings and restart the client
  • How to purchase with PayPal/OSRS/Crypto gold? You can purchase vouchers from other users
  • Scripting behavior tree


    Hosfad

    Recommended Posts

    Scripting behavior tree
     

    Hello guys i have decided to open source my Behavior tree :)

    I have included a full example over at https://github.com/Hosfad/Scripting-Behaviour-Tree , but i will include a brief example here too : 

    This is a Behaviour , This is where youre gonna write youre code for interacting with the game

    public class InteractWithBank extends RSBehavior {
        public InteractWithBank(String name) {
            super(name);
        }
    
        @Override
        public void go(Object agent, Macro parent) {
        if (Bank.isOpen()){
            Bank.withdrawAll("Coins");
            MethodProvider.sleep(600);
            Bank.close();
        }else {
            Bank.open();
        }
    
        }
    }
    

    This is a Macro , This is what controls your different behaviours 
    NOTE : Macros can be nested , meaning a macro can also be a behaviour inside another macro 
     

    public class Banking extends RSMacro {
        Area closestBank = org.dreambot.api.methods.container.impl.bank.Bank.getClosestBankLocation().getArea(8);
    
        public Banking(String name) {
            super(name);
            // These are the current behaviors in our Banking Macro
            this.behaviors = new Behavior[]{
                    new WalkToArea("walkToBank" ,closestBank),
                    new InteractWithBank("withdrawCoins")
            };
        }
        @Override
        public String getTransition(Object agent, Macro parent) {
            // You call the different behaviours in the macro by returning their super String
            // eg: to call the InteractWithBank behaviour return "withdrawCoins";
            if (closestBank.contains(Players.localPlayer())){
                return "withdrawCoins";
            }else {
                return "walkToBank";
            }
    
        }
    }

    To run your Macro :

    RSMacro macro = new MainBranch("super name");
    @Override
    public int onLoop() {
        // The arguments are null because this behaviour has no parent
        macro.behaviourGo(null,null);
        return 100;
    }
    

     

    Source :  https://github.com/Hosfad/Scripting-Behaviour-Tree

    Edited by Hosfad
    Link to comment
    Share on other sites

    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
    ×
    ×
    • Create New...

    Important Information

    We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.