Jump to content

first script help.


moops22

Recommended Posts

I recently started botting a few days ago and wanted to get into coding scripts. my plan for this one is to wind strike to level 11 confuse to level 33 then alc. everything works except the last part where I walk to the demon on top of the wizards tower and I'm not sure why, I have been trying to fix it for about an hour but I cant find anything wrong with it. sorry for sloppy code this is my first time using java

 

package core;
import org.osbot.rs07.api.Magic;
import org.osbot.rs07.api.Skills;
import java.util.LinkedHashMap;
import java.awt.Graphics2D;
import java.awt.event.KeyEvent;
import java.util.HashMap;
import org.osbot.rs07.api.map.Area;
import org.osbot.rs07.api.map.Position;
import org.osbot.rs07.api.model.Entity;
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 org.osbot.rs07.api.model.NPC;
import org.osbot.rs07.api.model.InteractableObject;
import java.util.stream.Stream;
import java.util.Map;
import org.osbot.rs07.script.MethodProvider;

@ScriptManifest(author = "jason", info = "Casts magic on the demon", name = "Demon_splasher", version = 0, logo = "")
public class demon_splash extends Script { private static final String DEMON_NAME = "Lesser demon";
    Position pos = new Position(3110,3161,2);
    Position runeshoppos = new Position(3252,3401,0);
    Position bankpos = new Position(3253,3420,0);

    @Override
    public void onStart() {
        log("Script started");
    }


    private void attackdemon() throws InterruptedException {

    }



    private void withdrawgold() throws InterruptedException {
        NPC banker = getNpcs().closest("banker");
        if (banker != null && banker.interact("bank")) {
            sleep(random(2000, 4000));
            if(getBank().isOpen()) {
                getBank().withdraw("coins", 20000);
            }
            getKeyboard().pressKey(KeyEvent.VK_ESCAPE);
            sleep(random(2000, 4000));
        }
    }

    private void interactWithShopkeeperAndBuymindRunes() throws InterruptedException {
        // Interact with the shopkeeper (replace "Aubury" with the actual NPC name)
        NPC aubury = getNpcs().closest("Aubury");
        if (aubury != null && aubury.interact("Trade")) {
            sleep(random(2000, 4000));
            if(getStore().isOpen()) {
                getStore().buy("mind rune", 1000);
            }
            getKeyboard().pressKey(KeyEvent.VK_ESCAPE);
            sleep(random(2000, 4000));
        }
    }

    private void interactWithShopkeeperAndBuyairRunes() throws InterruptedException {
        // Interact with the shopkeeper (replace "Aubury" with the actual NPC name)
        NPC aubury = getNpcs().closest("Aubury");
        if (aubury != null && aubury.interact("Trade")) {
            sleep(random(2000, 4000));
            if(getStore().isOpen()) {
                getStore().buy("air rune", 1000);
            }
            getKeyboard().pressKey(KeyEvent.VK_ESCAPE);
            sleep(random(2000, 4000));
        }
    }


    ///////////////////////WALK_TO_VARROCK_MAGIC_SHOP///////////
    private boolean should_Walk_To_magic_shop() {
        Position currentPlayerTile = myPosition();
        return !pos.equals(currentPlayerTile);
    }
    private void walk_To_magicshop(Position runeshoppos) throws InterruptedException {
        if (getWalking().webWalk(runeshoppos)) {
            new ConditionalSleep(2000, 5000) {
                @Override
                public boolean condition() throws InterruptedException {
                    return !runeshoppos.equals(myPosition());
                }
            }.sleep();
        }
    }
    ///////////////////////WALK_TO_VARROCK_MAGIC_SHOP//////////////////////^^^

    ////////////////////////WALK TO DEMON////////////////////////////
    private boolean shouldWalkToPos() {
        Position currentPlayerTile = myPosition();
        return !pos.equals(currentPlayerTile);
    }
    private void walkToPos(Position pos) throws InterruptedException {
        if (getWalking().webWalk(pos)) {
            new ConditionalSleep(2000, 5000) {
                @Override
                public boolean condition() throws InterruptedException {
                    return !pos.equals(myPosition());
                }
            }.sleep();
        }
    }
////////////////////////////WALK TO DEMON///////////////////////////^^^

    ////////////////////////WALK TO BANK////////////////////////////
    private boolean shouldwalkbank() {
        Position currentPlayerTile = myPosition();
        return !pos.equals(currentPlayerTile);
    }
    private void walkTobankPos(Position bankpos) throws InterruptedException {
        if (getWalking().webWalk(bankpos)) {
            new ConditionalSleep(2000, 5000) {
                @Override
                public boolean condition() throws InterruptedException {
                    return !bankpos.equals(myPosition());
                }
            }.sleep();
        }
    }
    ////////////////////////////WALK TO BANK///////////////////////////^^^
    @Override
    public int onLoop() throws InterruptedException {
            int Magic_Level = getSkills().getDynamic(Skill.MAGIC);
            switch (Magic_Level) {
                case 1:
                case 2:
                case 3:
                case 4:
                case 5:
                case 6:
                case 7:
                case 8:
                case 9:
                case 10:
                        if (getInventory().getAmount("airrune")>=1000 && getInventory().getAmount("mindrune")>=1000){
                            if (shouldWalkToPos()) {
                                walkToPos(pos);

                            }
                   }else {
                            if (getInventory().getAmount("airrune") == 0){
                                if (getInventory().getAmount("coins")<20000){
                                    if (shouldwalkbank()) {
                                        walkTobankPos(bankpos);
                                        withdrawgold();
                                    }
                                }
                                    if (should_Walk_To_magic_shop()) {
                                        walk_To_magicshop(runeshoppos);
                                    }
                                    interactWithShopkeeperAndBuyairRunes();

                            } else if (getInventory().getAmount("mindrune")==0) {
                                if (getInventory().getAmount("coins")<20000){
                                    if (shouldwalkbank()) {
                                        walkTobankPos(bankpos);
                                        withdrawgold();
                                    }
                                }
                                if (should_Walk_To_magic_shop()) {
                                    walk_To_magicshop(runeshoppos);
                                }
                                interactWithShopkeeperAndBuymindRunes();
                            }
                        }
                    break;
            }
        return 300;
    }




    @Override
    public void onExit() {
        log("Thanks using demon_splasher!");
    }

    @Override
    public void onPaint(Graphics2D g) {

    }

}

 

Link to comment
Share on other sites

9 hours ago, moops22 said:
if (getInventory().getAmount("airrune")>=1000 && getInventory().getAmount("mindrune")>=1000){

 

9 hours ago, moops22 said:
if (getInventory().getAmount("airrune") == 0){

 

9 hours ago, moops22 said:
} else if (getInventory().getAmount("mindrune")==0) {


I guess the names of the items are wrong and should include a space

Hope this fixes it and it was the only issue

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