Adblock breaks this site

.:[~]Official RSBot Scripts+Requests Sticky!{RSBot}[~]:.

Discussion in 'Archives' started by MatthewGor123, Dec 1, 2008.

Thread Status:
Not open for further replies.
  1. kirbymario123

    kirbymario123 Active Member
    Banned

    Joined:
    Feb 8, 2009
    Posts:
    114
    Referrals:
    0
    Sythe Gold:
    0
    .:[~]Official RSBot Scripts+Requests Sticky!{RSBot}[~]:.

    how the hell do you get the scripts from media fire. i put it in my files but i cant do anything with it
     
  2. Homertherat

    Homertherat Member

    Joined:
    Feb 11, 2009
    Posts:
    97
    Referrals:
    0
    Sythe Gold:
    0
    .:[~]Official RSBot Scripts+Requests Sticky!{RSBot}[~]:.

    Is there a freaking flax spinner that works? I found on from the rsbot script database, but it sucks at getting into my bank. It just clicks on "walk here" repeatedly until it closes itself.

    I would appreciate it if somebody would post one, because I can't find one, even after looking on google.
     
  3. wood is good

    wood is good Member

    Joined:
    Jun 21, 2005
    Posts:
    60
    Referrals:
    0
    Sythe Gold:
    0
    .:[~]Official RSBot Scripts+Requests Sticky!{RSBot}[~]:.

    any flax picking scripts out there?
     
  4. andrinity

    andrinity Newcomer

    Joined:
    Jul 30, 2007
    Posts:
    15
    Referrals:
    0
    Sythe Gold:
    0
    .:[~]Official RSBot Scripts+Requests Sticky!{RSBot}[~]:.

    Any scripts that will kill varrock guards and bank for food?
     
  5. Jalal

    Jalal Active Member

    Joined:
    Jul 9, 2007
    Posts:
    139
    Referrals:
    0
    Sythe Gold:
    0
    .:[~]Official RSBot Scripts+Requests Sticky!{RSBot}[~]:.

    Hmm, does anyone have the newer script of Ruski's auto-fighter? V1.5 doesn't work [I got it from this thread] and I think it was because some of the script was censored off as ******* so it doesn't work
     
  6. iDrewsta

    iDrewsta Newcomer

    Joined:
    Feb 17, 2009
    Posts:
    9
    Referrals:
    0
    Sythe Gold:
    0
    .:[~]Official RSBot Scripts+Requests Sticky!{RSBot}[~]:.

    very nice scripts.
     
  7. Pte-Nufc

    Pte-Nufc Newcomer

    Joined:
    Feb 10, 2009
    Posts:
    20
    Referrals:
    0
    Sythe Gold:
    0
    .:[~]Official RSBot Scripts+Requests Sticky!{RSBot}[~]:.

    I need a good Iron-Ore miner that works with Addy and rune pickaxes.... I want it to be a powerminer and it has to be a spot on f2p. does anybody know a good one?

    None of the mining bots work good on this thread, everyone says tenacs miner is good but it allows the axe to break which is no good...
     
  8. King Cheat

    King Cheat Forum Addict

    Joined:
    Apr 30, 2008
    Posts:
    573
    Referrals:
    0
    Sythe Gold:
    0
    .:[~]Official RSBot Scripts+Requests Sticky!{RSBot}[~]:.

    Some of the scripts aren't there.
     
  9. TheDarK

    TheDarK Newcomer

    Joined:
    Feb 17, 2009
    Posts:
    3
    Referrals:
    0
    Sythe Gold:
    0
    .:[~]Official RSBot Scripts+Requests Sticky!{RSBot}[~]:.

    Where the hell is a bowstringer I need one. I've looked all over google and cant seem to find one
     
  10. Castform

    Castform Active Member
    Banned

    Joined:
    Jan 2, 2009
    Posts:
    219
    Referrals:
    0
    Sythe Gold:
    0
    .:[~]Official RSBot Scripts+Requests Sticky!{RSBot}[~]:.

    Does anybody have one for Tenac's Guild Miner
     
  11. Teknik

    Teknik Newcomer

    Joined:
    Feb 4, 2009
    Posts:
    1
    Referrals:
    0
    Sythe Gold:
    0
    .:[~]Official RSBot Scripts+Requests Sticky!{RSBot}[~]:.

    I need a script I can add onto the end of YakAttack that runs from swarms and evil chickens. I'm tired of dying. =|
     
  12. Unknown_Driver_Australia

    Unknown_Driver_Australia Newcomer

    Joined:
    Aug 20, 2008
    Posts:
    21
    Referrals:
    0
    Sythe Gold:
    0
    .:[~]Official RSBot Scripts+Requests Sticky!{RSBot}[~]:.

    Could someone please give the me Willow Dropper script. It cuts Willow trees and drops the logs.

    Also, can you please enter all the code into the forum, not upload the file, because I would prefer that.

    Thanks.

    Can't wait until I get it :nuts:
     
  13. Unknown_Driver_Australia

    Unknown_Driver_Australia Newcomer

    Joined:
    Aug 20, 2008
    Posts:
    21
    Referrals:
    0
    Sythe Gold:
    0
    .:[~]Official RSBot Scripts+Requests Sticky!{RSBot}[~]:.

    Bow string script, np mate.

    To string, put bows in third bank slot, and strings in forth bank slot. Otherwise, put the logs in your THIRD bank slot and have a knife in inventory.

    Save as AzWFletcher.java

    Code:
    import java.awt.*;
    import java.awt.event.*;
    import java.text.*;
    import java.util.*;
    import java.lang.Thread;
    
    import javax.swing.*;
    
    import com.speljohan.rsbot.script.*;
    import com.speljohan.rsbot.script.wrappers.*;
    import com.speljohan.rsbot.event.events.ServerMessageEvent;
    import com.speljohan.rsbot.event.listeners.*;
    import com.speljohan.rsbot.accessors.Player;
    import com.speljohan.rsbot.bot.Bot;
    
    public class AzWFletcher extends Script implements PaintListener, ServerMessageListener {
    
            public int logID = 0;
            public int bowID = 0;
            public int knifeID = 946;
            public int xPos = 0;
            public int yPos = 0;
            public int fletched = 0;
            public int requiredLevel = 0;
            public int numbOfLogs = 0;
            public int numbOfBows = 0;
            public int numbOfStrings = 0;
            public int done = 0; // for animation purposes
            public int currentLevel = skills.getCurrentSkillLevel(9);
            public int currentEXP = skills.getCurrentSkillExp(9);
            public long currentTime = System.currentTimeMillis();
            public String bowName = "";
            public String logName = "";
            public int interfaceID = 304;
            public boolean withdrawing = false;
            public boolean onStart = true;
            public boolean usingPC = false;
            public boolean stringing = false;
    
            public boolean onStart(Map<String, String> args) {
                    Bot.getEventManager().addListener(PaintListener.class, this);
    
                    logName = args.get("log");
                    bowName = args.get("fletch");
                    if (args.get("string") != null) {
                            stringing = true;
                    }
    
                    // i'll just add the stringing and break the loop..
                    // cbb touching the original code
                    if (stringing) {
                            knifeID = 1777; // using that var for strings
                            xPos = 255;
                            yPos = 415;
                            interfaceID = 309;
    
                            if (logName.contains("Normal")) {
                                    if (bowName.contains("Longbow")) {
                                            logID = 48;
                                            requiredLevel = 10;
                                    }
                                    else if (bowName.contains("Shortbow")) {
                                            logID = 50;
                                            requiredLevel = 5;
                                    }
                                    else {
                                            log("The combination you chose does not exist.");
                                            log("You chose: " + logName + " and: " + bowName + ".");
                                            stopAllScripts();
                                    }
                            }
                            else if (logName.contains("Oak")) {
                                    if (bowName.contains("Longbow")) {
                                            logID = 56;
                                            requiredLevel = 25;
                                    }
                                    else if (bowName.contains("Shortbow")) {
                                            logID = 54;
                                            requiredLevel = 20;
                                    }
                                    else {
                                            log("The combination you chose does not exist.");
                                            log("You chose: " + logName + " and: " + bowName + ".");
                                            stopAllScripts();
                                    }
                            }
                            else if (logName.contains("Willow")) {
                                    if (bowName.contains("Longbow")) {
                                            logID = 58;
                                            requiredLevel = 40;
                                    }
                                    else if (bowName.contains("Shortbow")) {
                                            logID = 60;
                                            requiredLevel = 35;
                                    }
                                    else {
                                            log("The combination you chose does not exist.");
                                            log("You chose: " + logName + " and: " + bowName + ".");
                                            stopAllScripts();
                                    }
                            }
                            else if (logName.contains("Maple")) {
                                    if (bowName.contains("Longbow")) {
                                            logID = 62;
                                            requiredLevel = 55;
                                    }
                                    else if (bowName.contains("Shortbow")) {
                                            logID = 64;
                                            requiredLevel = 50;
                                    }
                                    else {
                                            log("The combination you chose does not exist.");
                                            log("You chose: " + logName + " and: " + bowName + ".");
                                            stopAllScripts();
                                    }
                            }
                            else if (logName.contains("Yew")) {
                                    if (bowName.contains("Longbow")) {
                                            logID = 66;
                                            requiredLevel = 70;
                                    }
                                    else if (bowName.contains("Shortbow")) {
                                            logID = 68;
                                            requiredLevel = 65;
                                    }
                                    else {
                                            log("The combination you chose does not exist.");
                                            log("You chose: " + logName + " and: " + bowName + ".");
                                            stopAllScripts();
                                    }
                            }
                            else if (logName.contains("Magic")) {
                                    if (bowName.contains("Longbow")) {
                                            logID = 70;
                                            requiredLevel = 85;
                                    }
                                    else if (bowName.contains("Shortbow")) {
                                            logID = 72;
                                            requiredLevel = 80;
                                    }
                                    else {
                                            log("The combination you chose does not exist.");
                                            log("You chose: " + logName + " and: " + bowName + ".");
                                            stopAllScripts();
                                    }
                            }
                    }
                    else {
    
                            if (logName.contains("Normal")) {
                                    logID = 1511;
                                    interfaceID = 305;
    
                                    if (bowName.contains("Short")) {
                                            bowID = 50;
                                            xPos = 200;
                                            yPos = 390;
                                            requiredLevel = 5;
                                    }
                                    else if (bowName.contains("Long")) {
                                            bowID = 48;
                                            xPos = 320;
                                            yPos = 390;
                                            requiredLevel = 10;
                                    }
                                    else if (bowName.contains("Shaft")) {
                                            bowID = 52;
                                            xPos = 80;
                                            yPos = 390;
                                            requiredLevel = 1;
                                    }
                                    else {
                                            bowID = 1;
                                            xPos = 415;
                                            yPos = 390;
                                            requiredLevel = 9;
                                    }
                            }
                            else {
                                    if (bowName.contains("Short")) {
                                            xPos = 115;
                                            yPos = 390;
                                    }
                                    else if (bowName.contains("Long")) {
                                            xPos = 260;
                                            yPos = 390;
                                    }
                                    else {
                                            log("The combination you chose does not exist.");
                                            log("You chose: " + logName + " and: " + bowName + ".");
                                            stopAllScripts();
                                    }
    
                                    if (logName.contains("Oak")) {
                                            logID = 1521;
    
                                            if (bowName.contains("Short")) {
                                                    bowID = 54;
                                                    requiredLevel = 20;
                                            }
                                            else if (bowName.contains("Long")) {
                                                    bowID = 56;
                                                    requiredLevel = 25;
                                            }
                                    }
                                    else if (logName.contains("Willow")) {
                                            logID = 1519;
    
                                            if (bowName.contains("Short")) {
                                                    bowID = 60;
                                                    requiredLevel = 35;
                                            }
                                            else if (bowName.contains("Long")) {
                                                    bowID = 58;
                                                    requiredLevel = 40;
                                            }
                                    }
                                    else if (logName.contains("Maple")) {
                                            logID = 1517;
    
                                            if (bowName.contains("Short")) {
                                                    bowID = 64;
                                                    requiredLevel = 50;
                                            }
                                            else if (bowName.contains("Long")) {
                                                    bowID = 62;
                                                    requiredLevel = 55;
                                            }
                                    }
                                    else if (logName.contains("Yew")) {
                                            logID = 1515;
    
                                            if (bowName.contains("Short")) {
                                                    bowID = 68;
                                                    requiredLevel = 65;
                                            }
                                            else if (bowName.contains("Long")) {
                                                    bowID = 66;
                                                    requiredLevel = 70;
                                            }
                                    }
                                    else if (logName.contains("Magic")) {
                                            logID = 1513;
    
                                            if (bowName.contains("Short")) {
                                                    bowID = 72;
                                                    requiredLevel = 80;
                                            }
                                            else if (bowName.contains("Long")) {
                                                    bowID = 70;
                                                    requiredLevel = 85;
                                            }
                                    }
                            }
                    }
    
                    log("You chose: " + logName + " and: " + bowName + ".");
                    if (stringing) {
                            log("and we are going to be stringing these.");
                    }
    
                    return true;
            }
    
            public int loop() {
                    if (!isLoggedIn()) {
                            return random(300, 500);
                    }
    
                    if (isLoggedIn() && onStart) {
                            onStart = false;
    
                            while (currentLevel == 0 && currentEXP == 0) {
                                    currentLevel = skills.getCurrentSkillLevel(9);
                                    currentEXP = skills.getCurrentSkillExp(9);
                            }
    
                            openBank(); // now needed to do count
                            wait(500);
                            if (stringing) {
                                    doDepositExcept();
                            }
                            else {
                                    doDepositExcept(knifeID);
                            }
                            countBankStack();
    
                            log("Current level is: " + currentLevel);
                            log("Current EXP is: " + currentEXP);
                            log("Required level: " + requiredLevel);
                    }
    
                    if (isLoggedIn() && currentLevel < requiredLevel && currentLevel != 0 && currentEXP != 0) {
                            log("You do not have the required level to fletch the specified combination.");
                            log("You chose: " + logName + " and: " + bowName + ".");
                            stopAllScripts();
                    }
    
                    if (isLoggedIn() && getCurrentTab() != TAB_INVENTORY) {
                            openTab(TAB_INVENTORY);
                    }
    
                    if (isLoggedIn() && inventoryContains(logID) && inventoryContains(knifeID)) {
                            if (getCurrentTab() != TAB_INVENTORY) {
                                    openTab(TAB_INVENTORY);
                            }
    
                            doInventory(logID, "Use");
                            wait(random(350, 500));
                            doInventory(knifeID, "Use");
                            wait(random(500, 700));
    
                            int fail = 0;
                            while (!interfaceExists(interfaceID)) {
                                    // the dialog on the bottom does not exist
                                    fail++; // better add a failsafe
                                    if (fail >= 10) {
                                            fail = 0;
                                            doInventory(logID, "Use");
                                            wait(random(350, 500));
                                            doInventory(knifeID, "Use");
                                            wait(random(200, 400));
                                    }
                                    else {
                                            wait(random(500, 650));
                                    }
                            }
    
                            clickMouse(xPos + random(-5, 5), yPos + random(-5, 5), false);
                            if (!stringing) {
                                    atMenu("Make X");
                                    wait(random(500, 700));
    
                                    fail = 0;
                                    while (!interfaceExists(752)) {
                                            // the second dialog
                                            fail++;
                                            if (fail >= 10) {
                                                    return random(200, 400); // failed so let's just try again.
                                            }
                                            else {
                                                    wait(random(200, 450));
                                            }
                                    }
                                    wait(random(500, 1000)); // just incase
    
                                    String random = String.valueOf(random(3, 9));
                                    String random2 = String.valueOf(Integer.parseInt(random) + random(-2, 2));
                                    int randInt = Integer.parseInt(random + random2);
    
                                    sendText(String.valueOf(randInt), false);
                                    if (RSInterface.getChildInterface(752, 5).getText().contains(random + random2)) {
                                            sendKey((char) KeyEvent.VK_ENTER);
                                    }
                                    else {
                                            for (int i = 1; i < RSInterface.getChildInterface(752, 5).getText().length() - 1; i++) {
                                                    sendKey((char) KeyEvent.VK_BACK_SPACE);
                                                    wait(50);
                                            }
    
                                            sendText(String.valueOf(randInt), true);
                                    }
                                    wait(random(250, 500));
                                    checkChatBox();
                            }
                            else {
                                    atMenu("Make All");
                                    wait(random(250, 400));
                            }
    
                            wait(random(250, 400));
                            // finally.. now for the animation check
    
                            waitTillAnimationStop();
    
                            if (!stringing && numbOfLogs <= 0) {
                                    log("Completed all logs. Logging out.");
                                    logout();
                                    return -1; // logout and end.
                            }
                            else if (stringing && (numbOfStrings <= 0 || numbOfBows <= 0)) {
                                    log("Completed all bows. Logging out.");
                                    logout();
                                    return -1;
                            }
                    }
                    else if (!inventoryContains(logID) || !inventoryContains(knifeID)) {
                            doBank();
                            return random(750, 1000);
                    }
    
                    return random(500, 1000);
            }
    
            public void waitTillAnimationStop() {
                    int shouldAntiBan = 0;
                    done = 0;
                    while (true) {
                            while (getMyPlayer().getAnimation() != -1) {
                                    wait(random(300, 500));
                                    shouldAntiBan++;
                                    if (shouldAntiBan == random(1, 10)) {
                                            AzWAntiBan();
                                            shouldAntiBan = 0;
                                    }
                                    else if (shouldAntiBan > 10) {
                                            shouldAntiBan = 0;
                                            AzWAntiBan();
                                    }
                            }
    
                            if (getMyPlayer().getAnimation() == -1) {
                                    // stopped, but for how long?
                                    if (done >= 2 && !stringing) {
                                            break;
                                    }
                                    else if (done >= 4 && stringing) {
                                            break;
                                    }
                                    else {
                                            done++;
                                            shouldAntiBan++;
                                            wait(random(300, 500));
                                    }
                            }
                            else {
                                    done = 0; // guess it wasn't for long XD
                            }
                    }
            }
    
            public void checkChatBox() {
                    String whatAmISaying = RSInterface.getChildInterface(137, 51).getText();
                    String noSeriously = whatAmISaying.substring(whatAmISaying.indexOf("f>"), whatAmISaying.indexOf("*"));
                    noSeriously = noSeriously.replaceAll("f>", "");
    
                    if (!noSeriously.equals("")) {
                            log("Chat box: " + noSeriously);
                            log("Backspacing...");
                            for (int i = 0; i < noSeriously.length(); i++) {
                                    sendKey((char) KeyEvent.VK_BACK_SPACE);
                                    wait(50);
                            }
                    }
            }
    
            public void doInventory(int id, String action) {
                    // okay, RSBot really needs an update
                    int[] items = getInventoryArray(); // gets all items
                    ArrayList<Integer> theItems = new ArrayList<Integer>(); // all possible matches
    
                    for (int i = 0; i < items.length; i++) {
                            if (items[i] == id) {
                                    theItems.add(i); // add all possible matches to the arraylist
                            }
                    }
    
                    if (theItems.isEmpty() || theItems == null) {
                            // ..... error LOL
                            stopAllScripts();
                    }
    
                    int randPossible = theItems.get(random(0, theItems.size())); // get a random possible match
                    Point itemPos = getInventoryItemPoint(randPossible); // get the XY of the item
    
                    // now we should interpret the action
                    if (action.equals("Use")) {
                            clickMouse(itemPos, 5, 5, true); // left click with 5 xy tolerance
                    }
                    else {
                            clickMouse(itemPos, 5, 5, false); // right click with 5 xy tolerance
                            atMenu(action); // and then do the action
                    }
            }
    
            public boolean doDepositExcept(int... ids) {
                    // custom deposit except
                    int inventoryCount = getInventoryCount();
                    int[] inventoryArray = getInventoryArray();
    
                    outer:
                         for (int off = 0; off < inventoryArray.length; off++) {
                                 if (inventoryArray[off] == -1) {
                                         continue;
                                 }
                                 for (int item : ids) {
                                         if (inventoryArray[off] == item) {
                                                 continue outer;
                                         }
                                 }
    
                                 for (int tries = 0; tries < 5; tries++) {
                                         atInventoryItem(inventoryArray[off], "Deposit-All");
                                         wait(random(800, 1200));
                                         if (getInventoryCount() < inventoryCount) {
                                                 break;
                                         }
                                 }
                                 if (getInventoryCount() >= inventoryCount) {
                                         // equally, otherwise
                                         // something really weird
                                         // happend :P
                                         return false;
                                 }
                                 inventoryArray = getInventoryArray();
                                 inventoryCount = getInventoryCount();
                         }
                    return true;
            }
    
            public void openBank() {
                    int random = random(1, 10);
    
                    int[] bankObj = null;
                    int[] bankNPC = null;
    
                    while (!interfaceExists(762) && !RSInterface.getInterface(13).isValid() && !RSInterface.getInterface(14).isValid()) {
                            if (random > 5 || usingPC) {
                                    if (distanceTo(new RSTile(3253, 3422)) < 10) {
                                            // Varrock East Bank
                                            bankObj = new int[]{11402};
                                    }
                                    else if (distanceTo(new RSTile(3186, 3438)) < 10) {
                                            // Varrock West Bank
                                            bankObj = new int[]{11402};
                                    }
                                    else if (distanceTo(new RSTile(3013, 3356)) < 10) {
                                            // Falador East Bank
                                            bankObj = new int[]{11758};
                                    }
                                    else if (distanceTo(new RSTile(2945, 3370)) < 10) {
                                            // Falador West Bank
                                            bankObj = new int[]{11758};
                                    }
                                    else if (distanceTo(new RSTile(3209, 3218)) < 10) {
                                            // Lumbridge Bank
                                            bankObj = new int[]{36786};
                                    }
                                    else if (distanceTo(new RSTile(3093, 3243)) < 10) {
                                            // Draynor Bank
                                            bankObj = new int[]{2213};
                                    }
                                    else if (distanceTo(new RSTile(3270, 3167)) < 10) {
                                            // Al Kharid Bank
                                            bankObj = new int[]{35647, 35678};
                                    }
                                    else if (distanceTo(new RSTile(2668, 2653)) < 10) {
                                            // Pest Control Bank
                                            bankObj = new int[]{14367};
                                    }
    
                                    // actually open the bank now
                                    if (bankObj != null) {
                                            if (bankObj.length == 1) {
                                                    RSObject object = findObject(bankObj[0]);
                                                    atObject(object, "Use-quickly");
                                            }
                                            else {
                                                    random = random(0, bankObj.length - 1);
    
                                                    RSObject object = findObject(bankObj[random]);
                                                    atObject(object, "Use-quickly");
                                            }
                                            wait(random(500, 1000));
                                    }
                            }
                            else {
                                    if (distanceTo(new RSTile(3253, 3422)) < 10) {
                                            // Varrock East Bank
                                            bankNPC = new int[]{5912, 5913};
                                    }
                                    else if (distanceTo(new RSTile(3186, 3438)) < 10) {
                                            // Varrock West Bank
                                            bankNPC = new int[]{5912, 5913};
                                    }
                                    else if (distanceTo(new RSTile(3013, 3356)) < 10) {
                                            // Falador East Bank
                                            bankNPC = new int[]{6200};
                                    }
                                    else if (distanceTo(new RSTile(2945, 3370)) < 10) {
                                            // Falador West Bank
                                            bankNPC = new int[]{6200};
                                    }
                                    else if (distanceTo(new RSTile(3209, 3218)) < 10) {
                                            // Lumbridge Bank
                                            bankNPC = new int[]{4907};
                                    }
                                    else if (distanceTo(new RSTile(3093, 3243)) < 10) {
                                            // Draynor Bank
                                            bankNPC = new int[]{495, 494};
                                    }
                                    else if (distanceTo(new RSTile(3270, 3167)) < 10) {
                                            // Al Kharid Bank
                                            bankNPC = new int[]{496, 497};
                                    }
                                    else if (distanceTo(new RSTile(2668, 2653)) < 10) {
                                            // Pest Control Bank
                                            usingPC = true;
                                    }
    
                                    // actually open the bank now
                                    if (bankNPC != null && !usingPC) {
                                            if (bankNPC.length == 1) {
                                                    RSNPC npc = getNearestNPCByID(bankNPC[0]);
                                                    atNPC(npc, "Bank Bank");
                                            }
                                            else {
                                                    random = random(0, bankNPC.length - 1);
    
                                                    RSNPC npc = getNearestNPCByID(bankNPC[random]);
                                                    atNPC(npc, "Bank Bank");
                                            }
                                            wait(random(500, 1000));
                                    }
                            }
                    }
    
                    if (RSInterface.getInterface(13).isValid() || RSInterface.getInterface(14).isValid()) {
                            // doesn't pick up bank pins? --- copy of BankPasswords.java
                            if (RSInterface.getInterface(14).isValid()) {
                                    atInterface(RSInterface.getInterface(14).getChild(1));
                                    wait(random(800, 1500));
                            }
    
                            String pin = getAccountProperty("pin");
    
                            if (pin == null || pin == "") {
                                    log("You must add a new key in account manager called 'PIN' with the value of your PIN.");
                                    log("Could not enter PIN. Stopping script.");
                                    wait(20000);
                                    stopAllScripts();
                            }
                            else {
                                    log("Entering bank PIN.");
                            }
    
                            while (!enterCode(pin)) {
                                    // wait(random(300,1000));
                            }
    
                            // Click to continue
                            if (RSInterface.getInterface(211).isValid()) {
                                    atInterface(RSInterface.getInterface(211).getChild(3));
                                    wait(random(100, 1500));
                            }
                    }
            }
    
            public boolean enterCode(String pass) {
                    if (!RSInterface.getInterface(13).isValid()) {
                            return true;
                    }
                    RSInterface pif = RSInterface.getInterface(13);
                    RSInterfaceChild[] children = pif.getChildren();
                    int state = 0;
                    for (int i = 21; i < 25; i++) {
                            if (children[i].containsText("?")) {
                                    state++;
                            }
                    }
                    state = 4 - state;
    
                    for (int j = 11; j < 21; j++) {
                            if (children[j].containsText(pass.substring(state, state + 1))) {
                                    atInterface(children[j - 10]);
                                    wait(random(1000, 2000));
                                    break;
                            }
                            else {
                                    if (j == 20) {
                                            moveMouse(random(0, 750), random(0, 500));
                                    }
                            }
                    }
    
                    if (state == 3 || !RSInterface.getInterface(13).isValid()) {
                            return true;
                    }
                    return false;
            }
    
            public void doBank() {
                    if (!interfaceExists(762) && !RSInterface.getInterface(13).isValid() && !RSInterface.getInterface(14).isValid()) {
                            openBank();
                            wait(random(400, 600));
                    }
    
                    if (interfaceExists(762) || RSInterface.getInterface(13).isValid() || RSInterface.getInterface(14).isValid()) {
                            doDepositExcept(knifeID, logID);
                            if (!isInventoryFull()) {
                                    if (fletched == 0 && numbOfBows == 0 && numbOfStrings == 0 && numbOfLogs == 0) {
                                            countBankStack();
                                    }
    
                                    if (!inventoryContains(knifeID) && !stringing) {
                                            bank.withdraw(knifeID, 1);
                                    }
                                    if (!isInventoryFull()) {
                                            if (!stringing) {
                                                    int randX = random(130, 150);
                                                    int randY = random(95, 120);
    
                                                    clickMouse(randX, randY, false);
                                                    wait(random(500, 700));
                                                    atMenu("Withdraw-All");
                                            }
                                            else {
                                                    int randBowX = random(130, 150);
                                                    int randBowY = random(95, 120);
    
                                                    int randStringX = random(175, 195);
                                                    int randStringY = random(95, 120);
    
                                                    moveMouse(randBowX, randBowY);
                                                    wait(random(500, 700));
                                                    if (!getMenuItems().contains("Withdraw-14")) {
                                                            clickMouse(false);
                                                            atMenu("Withdraw-X");
                                                            wait(random(800, 1000));
    
                                                            sendText("14", true); // has to be 14
                                                            wait(random(700, 1000));
                                                    }
                                                    else {
                                                            clickMouse(false);
                                                            wait(random(500, 700));
                                                            atMenu("Withdraw-14");
                                                            wait(random(400, 600));
                                                    }
    
                                                    clickMouse(randStringX, randStringY, false);
                                                    wait(random(500, 700));
                                                    atMenu("Withdraw-All");
                                                    wait(random(400, 600));
                                            }
                                    }
                                    checkChatBox();
                            }
                            else {
                                    if (!inventoryContains(knifeID) && !stringing) {
                                            // bank does not work yet.
                                            log("Lost knife. Error.");
                                            stopAllScripts();
                                    /*
                                    openBank();
                                    atInventoryItem(logID, "Deposit-1");
                                    bank.withdraw(knifeID, 1);
                                     */
                                    }
                            }
    
                            bank.close();
                    }
            }
    
            public void countBankStack() {
                    int invCount = getInventoryCount();
                    // bank.setWithdrawModeToNote(); doubt it even works
                    if (getSetting(115) == 0) { // note
                            clickMouse(230, 300, 20, 15, true);
                            wait(200);
                    }
    
    
                    if (!stringing) {
                            int randX = random(130, 150);
                            int randY = random(95, 120);
    
                            clickMouse(randX, randY, false);
                            wait(random(500, 700));
                            atMenu("but one");
                            while (invCount == getInventoryCount()) {
                                    wait(random(200, 400));
                            }
                            numbOfLogs = getInventoryStackArray()[getInventoryCount() - 1] + 1;
                            wait(200);
                            doDepositExcept(knifeID);
                    }
                    else {
                            int randBowX = random(130, 150);
                            int randBowY = random(95, 120);
    
                            int randStringX = random(175, 195);
                            int randStringY = random(95, 120);
    
                            clickMouse(randBowX, randBowY, false);
                            wait(random(500, 700));
                            atMenu("but one");
                            while (invCount == getInventoryCount()) {
                                    wait(random(200, 400));
                            }
                            numbOfBows = getInventoryStackArray()[getInventoryCount() - 1] + 1;
    
                            clickMouse(randStringX, randStringY, false);
                            wait(random(500, 700));
                            atMenu("but one");
                            while (invCount == getInventoryCount()) {
                                    wait(random(200, 400));
                            }
                            wait(random(500, 750));
                            numbOfStrings = getInventoryStackArray()[getInventoryCount() - 1] + 1;
                            doDepositExcept();
                    }
                    wait(200);
    
                    if (getSetting(115) == 1) { // note
                            clickMouse(230, 300, 20, 15, true);
                            wait(200);
                    }
            }
    
            public void AzWAntiBan() {
                    //antiban activated.
                    int antiban = random(1, 40);
                    checkChatBox();
    
                    if (antiban < 5 && antiban > 0) {
                            // player examining
                            RSCharacter nearPlayer = getNearestPlayerByLevel(1, 130);
    
                            if (nearPlayer != null) {
                                    if (nearPlayer.getScreenLocation().x < 10 || nearPlayer.getScreenLocation().y > 500) {
                                            log("AzWAntiBan: Nearby player is too far away.");
                                    }
                                    else {
                                            log("AzWAntiBan: Moving mouse to a nearby player.");
                                            moveMouse(nearPlayer.getScreenLocation().x, nearPlayer.getScreenLocation().y);
                                            int random = random(1, 10);
                                            if (random > 7) {
                                                    log("AzWAntiBan: Right-clicking nearby player.");
                                                    clickMouse(nearPlayer.getScreenLocation().x, nearPlayer.getScreenLocation().y, false);
                                                    random = random(1, 10);
                                                    if (random > 7) {
                                                            log("AzWAntiBan: Pressing cancel.");
                                                            atMenu("Cancel");
                                                    }
                                            }
                                    }
                            }
                    }
    
                    if (antiban < 15 && antiban > 5) {
                            //tabs
                            int[] tabs = new int[]{TAB_ATTACK, TAB_CLAN, TAB_EQUIPMENT, TAB_FRIENDS, TAB_IGNORE, TAB_INVENTORY, TAB_MAGIC, TAB_MUSIC, TAB_OPTIONS, TAB_PRAYER, TAB_QUESTS, TAB_STATS};
                            String[] tabNames = new String[]{"Combat", "Clan", "Equipment", "Friends", "Ignore", "Inventory", "Magic", "Music", "Options", "Prayer", "Quests", "Statistics"};
                            int randTab = random(0, tabs.length - 1);
    
                            // let's think twice before selecting a useless tab
                            int random = random(1, 10);
                            if (random > 5) {
                                    // useless means: attack, clan, ignore, music, quest, options
                                    if (tabNames[randTab].contains("Attack") || tabNames[randTab].contains("Clan") || tabNames[randTab].contains("Ignore") || tabNames[randTab].contains("Music") || tabNames[randTab].contains("Quest") || tabNames[randTab].contains("Options")) {
                                            AzWAntiBan();
                                    }
                            }
    
                            log("AzWAntiBan: Selecting the " + tabNames[randTab] + " tab.");
    
                            if (getCurrentTab() != tabs[randTab]) {
                                    openTab(tabs[randTab]);
                            }
                            else {
                                    AzWAntiBan();
                            }
    
                            if (tabs[randTab] == TAB_STATS) {
                                    log("AzWAntiBan: Checking experience points of random stat.");
                                    int randX = random(555, 710);
                                    int randY = random(230, 445);
    
                                    moveMouse(randX, randY);
                                    wait(random(6000, 8000));
                            }
    
                            if (tabs[randTab] == TAB_OPTIONS) {
                                    if (isRunning()) {
                                            log("AzWAntiBan: Activating run.");
                                            setRun(true);
                                    }
                            }
                    }
    
                    if (antiban < 40 && antiban > 25) {
                            //mouse -- 765, 500
                            int randX = random(0, 765);
                            int randY = random(0, 500);
    
                            String randomXY = String.valueOf(randX) + "," + String.valueOf(randY);
    
                            log("AzWAntiBan: Moving mouse to - " + randomXY);
                            moveMouse(randX, randY, 3, 3);
    
                            int randomExamine = random(1, 10);
                            if (randomExamine > 3) {
                                    wait(500);
                                    if (getMenuItems().contains("Examine")) {
                                            clickMouse(getMouseLocation().x, getMouseLocation().y, false);
                                            wait(500);
                                            if (atMenu("Examine")) {
                                                    log("AzWAntiBan: Successfully examined mouse position!");
                                            }
                                    }
                            }
                    }
    
                    if (antiban < 25 && antiban > 15) {
                            log("AzWAntiBan: Moving the compass / camera.");
    
                            //compass and camera -- thanks to WarXperiment ~ AllAntiBan
                            char[] LR = new char[]{KeyEvent.VK_LEFT, KeyEvent.VK_RIGHT};
                            char[] UD = new char[]{KeyEvent.VK_DOWN, KeyEvent.VK_UP};
                            char[] LRUD = new char[]{KeyEvent.VK_LEFT, KeyEvent.VK_RIGHT,
                                                     KeyEvent.VK_UP, KeyEvent.VK_UP
                            };
                            int random2 = random(0, 2);
                            int random1 = random(0, 2);
                            int random4 = random(0, 4);
    
                            if (random(0, 3) == 0) {
                                    Bot.getInputManager().pressKey(LR[random1]);
                                    try {
                                            Thread.sleep(random(100, 400));
                                    } catch (Exception e) {
                                    }
                                    Bot.getInputManager().pressKey(UD[random2]);
                                    try {
                                            Thread.sleep(random(300, 600));
                                    } catch (Exception e) {
                                    }
                                    Bot.getInputManager().releaseKey(UD[random2]);
                                    try {
                                            Thread.sleep(random(100, 400));
                                    } catch (Exception e) {
                                    }
                                    Bot.getInputManager().releaseKey(LR[random1]);
                            }
                            else {
                                    Bot.getInputManager().pressKey(LRUD[random4]);
                                    if (random4 > 1) {
                                            try {
                                                    Thread.sleep(random(300, 600));
                                            } catch (Exception e) {
                                            }
                                    }
                                    else {
                                            try {
                                                    Thread.sleep(random(500, 900));
                                            } catch (Exception e) {
                                            }
                                    }
                                    Bot.getInputManager().releaseKey(LRUD[random4]);
                            }
                    }
            }
    
            public void serverMessageRecieved(ServerMessageEvent svr) {
                    String msg = svr.getMessage();
    
                    if (msg.contains("carefully cut the")) {
                            fletched++;
                            numbOfLogs--;
                    }
                    if (msg.contains("add a string")) {
                            fletched++;
                            numbOfBows--;
                            numbOfStrings--;
                    }
                    if (msg.contains("run out of")) {
                            done = 10; // automatically breaks waitTillAnimationStop();
                    }
            }
    
            public void onRepaint(Graphics g) {
                    long millis = System.currentTimeMillis() - currentTime;
                    long hours = millis / (1000 * 60 * 60);
                    millis -= hours * 1000 * 60 * 60;
                    long minutes = millis / (1000 * 60);
                    millis -= minutes * 1000 * 60;
                    long seconds = millis / 1000;
    
                    StringBuilder b = new StringBuilder();
                    b.append(hours);
                    b.append(':');
                    if (minutes < 10) {
                            b.append('0');
                    }
                    b.append(minutes);
                    b.append(':');
                    if (seconds < 10) {
                            b.append('0');
                    }
                    b.append(seconds);
    
                    String timeElapsed = b.toString();
    
                    g.setColor(Color.MAGENTA);
    
                    g.drawString("AzWFletcher v" + getVersion(), 25, 235);
                    g.drawString("Gained Levels: " + (skills.getCurrentSkillLevel(9) - currentLevel), 25, 250);
                    g.drawString("Gained EXP: " + (skills.getCurrentSkillExp(9) - currentEXP), 25, 265);
                    g.drawString("EXP till next level: " + skills.getXPToNextLevel(9), 25, 280);
                    g.drawString("Time elapsed: " + timeElapsed, 25, 295);
                    if (!stringing) {
                            g.drawString("Logs left: " + numbOfLogs, 25, 310);
                            g.drawString("Fletched: " + fletched, 25, 325);
                    }
                    else {
                            g.drawString("Strings left: " + numbOfStrings + " || " + "Bows left: " + numbOfBows, 25, 310);
                            g.drawString("Strung: " + fletched, 25, 325);
                    }
            }
    
            public void onFinish() {
                    Bot.getEventManager().removeListener(PaintListener.class, this);
            }
    
            public String getName() {
                    return "AzWFletcher";
            }
    
            public String getAuthor() {
                    return "AzN-WoNd3R5";
            }
    
            public double getVersion() {
                    return 1.30;
            }
    
            public String getScriptCategory() {
                    return "Fletching";
            }
    
            public String getScriptDescription() {
                    String html = "";
                    html += "<html>";
                    html += "<center>";
                    html += "<h2>" + getName() + " v" + getVersion() + " - by AzN-WoNd3R5</h2>";
                    html += "<br />";
                    html += "Start in one of the following banks:<br>";
                    html += "Al Kharid, Draynor, Varrock, Falador, Lumbridge, Pest Control.<br>";
                    html += "<br />";
                    html += "<b>To string, put bows in third bank slot, and strings in forth bank slot.</b><br>";
                    html += "Otherwise, <U>put the logs in your <b>THIRD</b> bank slot and have a knife in inventory.</U>";
                    html += "<br />";
                    html += "<br />";
                    html += "<form>";
                    html += "<b>Log Type: </b>";
                    html += "<select name=\"log\">";
                    html += "<option value=\"Normal\">Normal Logs</option>";
                    html += "<option value=\"Oak\">Oak Logs</option>";
                    html += "<option value=\"Willow\">Willow Logs</option>";
                    html += "<option value=\"Maple\">Maple Logs</option>";
                    html += "<option value=\"Yew\">Yew Logs</option>";
                    html += "<option value=\"Magic\">Magic Logs</option>";
                    html += "</select>";
                    html += "<br>";
                    html += "<br>";
                    html += "<b>Fletch: </b>";
                    html += "<select name=\"fletch\">";
                    html += "<option value=\"Shafts\">15 Arrow Shafts</option>";
                    html += "<option value=\"Shortbow\">Shortbow</option>";
                    html += "<option value=\"Longbow\">Longbow</option>";
                    html += "<option value=\"Stock\">Crossbow Stock</option>";
                    html += "</select>";
                    html += "</form>";
                    html += "<br />";
                    html += "<input type=\"checkbox\" name=\"string\" value=\"no\">String only?<br>";
                    html += "</center>";
                    html += "</html>";
    
                    return html;
            }
    }
     
  14. Unknown_Driver_Australia

    Unknown_Driver_Australia Newcomer

    Joined:
    Aug 20, 2008
    Posts:
    21
    Referrals:
    0
    Sythe Gold:
    0
    .:[~]Official RSBot Scripts+Requests Sticky!{RSBot}[~]:.

    I've also got the new ruski auto-fighter.
    Also the 1.5 Version on this Thread is sooooooooooooo outdated. This script here that I am giving is version 1.9

    Save as RuskisFighter.java

    I don't know why it has all this weird code but it works for me

    Code:
    import com.speljohan.rsbot.accessors.NPC;
    import com.speljohan.rsbot.bot.Bot;
    import com.speljohan.rsbot.event.listeners.PaintListener;
    import com.speljohan.rsbot.plugin.NonPluginClass;
    import com.speljohan.rsbot.script.Calculations;
    import com.speljohan.rsbot.script.Script;
    import com.speljohan.rsbot.script.wrappers.RSInterface;
    import com.speljohan.rsbot.script.wrappers.RSItemTile;
    import com.speljohan.rsbot.script.wrappers.RSNPC;
    import com.speljohan.rsbot.script.wrappers.RSPlayer;
    import com.speljohan.rsbot.script.wrappers.RSTile;
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.Point;
    import java.awt.event.ActionEvent;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.List;
    import java.util.Properties;
    import java.awt.event.ActionListener;
    import java.util.ArrayList;
    import java.util.Map;
    
    public class RuskisFighter extends Script implements ActionListener, PaintListener {
    
        @Override
        public int loop() {
            try {
                if (canContinue()) {
                    clickContinue();
                    return random(570, 1410);
                }
                if(runCheck()) {
                    setRun(true);
                    return random(1410, 1800);
                }
                int action = getAction();
                switch (action) {
                    case ATTACK:
                        RSNPC npc = npcBase.npc;
                        if (clickNPC(npc, "Attack")) {
                            return random(1120, 2310);
                        } else {
                            return random(240, 610);
                        }
                    case WALK:
                        if (tileBase.useHalfTile) {
                            RSTile tile = tileBase.getHalfWayTile().randomizeTile(2, 2);
                            if (distanceTo(tile) <= 10) {
                                if (walkTileMM(tile)) {
                                    tileBase.setUseHalfTile(false);
                                    return random(820, 1410);
                                } else {
                                    return random(140, 510);
                                }
                            } else {
                                RSTile halfWayTile = tileBase.calcHalfWayTile(getLocation(), tile);
                                tileBase.setUseHalfTile(true);
                                tileBase.setHalfWayTile(halfWayTile);
                                return random(150, 410);
                            }
                        } else {
                            RSTile tile = tileBase.tile.randomizeTile(2, 2);
                            if (distanceTo(tile) <= 10) {
                                if (walkTileMM(tile)) {
                                    tileBase.setUseHalfTile(false);
                                    return random(820, 1410);
                                } else {
                                    return random(140, 510);
                                }
                            } else {
                                RSTile halfWayTile = tileBase.calcHalfWayTile(getLocation(), tile);
                                tileBase.setHalfWayTile(halfWayTile);
                                tileBase.setUseHalfTile(true);
                                return random(130, 410);
                            }
                        }                
                    case EAT:
                        if (getInventoryCount(FOODID) > 0) {
                            clickInventoryFood(FOODID);
                            return random(1412, 2413);
                        } else {
                            return random(140, 410);
                        }
                    case PICKUP:
                        RSItemTile itemTile = pickUpItemSet.tile;
                        try {
                            if (pickUpItem(itemTile)) {
                                pickUpFail = 0;
                                return random(710, 2310);
                            } else {
                                pickUpFail++;
                                if (pickUpFail >= random(2, 4)) {
                                    pickUpFail = 0;
                                    int randomNum = random(0, 1);
                                    switch (randomNum) {
                                        case 0:
                                            setCameraRotation(getCameraAngle() + random(35, 150));
                                            return random(320, 710);
                                        case 1:
                                            setCameraRotation(getCameraAngle() - random(35, 150));
                                            return random(320, 1410);
                                    }
                                }
                            }
                        } catch (Exception e) {
                            System.out.print("pick up item error: " + e);
                            return random(120, 541);
                        }
    
                    case WAIT:
                        return random(waitRange.range[0], waitRange.range[1]);
                    case KILLSCRIPT:
                        while (getMyPlayer().isInCombat()) {
                            wait(random(1310, 7244));
                        }
                        stopAllScripts();
                        return -1;
                }
            } catch (Exception e) {
                System.out.print("loop() error: " + e);
            }
            return random(320, 520);
        }
    
        @Override
        public String getAuthor() {
            return "Ruski";
        }
    
        @Override
        public String getName() {
            return "RuskisFighter";
        }
    
        @Override
        public double getVersion() {
            return 1.9;
        }
    
        @Override
        public String getScriptCategory() {
            return "Ruski/Combat";
        }
    
        @Override
        public String getScriptDescription() {
            String html = "<hmtl>";
            html += "<center>";
            html += "<p>All settings can be set on the GUI, select your character and Start!</p>";
            html += "</center>";
            html += "</html>";
            return html;
        }
    
        @Override
        public void onFinish() {
            Bot.getEventManager().removeListener(PaintListener.class, this);
        }
    
        @Override
        public boolean onStart(Map<String, String> args) {
            if (settings.settingsExist(settingsFileName)) {
                showSettingsInterface();
                try {
                    settings.setSettings();
                    npcIDText.setText(settings.intArrayToString(settings.getNPCIDs()));
                    pickUpItemsCheck.setSelected(settings.getPickUpItems());
                    if (settings.getPickUpItems()) {
                        itemIDText.setText(settings.intArrayToString(settings.getItemIDs()));
                        itemNameText.setText(settings.stringArrayToString(settings.getItemNames()));
                    }
                    eatFoodCheck.setSelected(settings.getEatFood());
                    stopScriptWhenNoFoodCheck.setSelected(settings.getStopScriptWhenNoFood());
                    speedSlider.setValue(settings.getSpeed());
                } catch (Exception e) {
                    System.out.print("error getting settings: " + e);
                }
            } else {
                showSettingsInterface();
            }
            while (!START_SCRIPT) {
                wait(10);
            }
    
            log("*******************************************");
            log("Ruskis Fighter V" + getVersion());
            if (settings.getEatFood()) {
                log("Food eating is enabled");
            }
            if (settings.getPickUpItems()) {
                log("Picking up items: " + settings.stringArrayToString(settings.getItemNames()));
            }
            if (settings.getStopScriptWhenNoFood()) {
                log("Stopping script, when run out of food");
            }
            log("*******************************************");
            Bot.getEventManager().addListener(PaintListener.class, this);
            START_SCRIPT = false;
            return true;
        }
    
        private int getAction() {
            if (!isLoggedIn() || !validInventory() || validWelcomeScreen()) {
                return -1;
            }
            if (healthCheck()) {
                if (isLoggedIn() && settings.getStopScriptWhenNoFood() && getInventoryCount(FOODID) == 0 && validInventory()) {
                    log("Run out of food, stopping script!!!");
                    return KILLSCRIPT;
                }
                if (settings.getEatFood() && getInventoryCount(FOODID) > 0) {
                    return EAT;
                }
            }      
    
            RSPlayer thisPlayer = getMyPlayer();
            if (thisPlayer.isMoving()) {
                waitRange.range = new int[]{320, 610};
                return WAIT;
            }
            if (thisPlayer.getInteracting() != null) {
                waitRange.range = new int[]{210, 310};
                return WAIT;
            }
    
            if (settings.getPickUpItems()) {
                RSItemTile itemTile = getNearestGroundItemByID(10, settings.getItemIDs());
                if (itemTile != null && canPickUpItem(itemTile.getItem().getID())) {
                    pickUpItemSet.setItemTile(itemTile);
                    try {
                        Point itemPoint = Calculations.tileToScreen(itemTile);
                        if (pointOnScreen(itemPoint)) {                        
                            pickUpItemSet.setItemTile(itemTile);
                            return PICKUP;
                        } else {
                            turnToTile(itemTile);
                            tileBase.setTile(itemTile);
                            return WALK;
                        }
                    } catch (Exception e) {
                        System.out.print("itemPoint error: " + e);
                    }
    
                }
            }
            RSNPC npc = getNearestNPC(settings.getNPCIDs());
            if (npc != null) {
                npcCheck = false;
                npcBase.setNPC(npc);
                Point npcScreen = npc.getScreenLocation();
                if (!pointOnScreen(npcScreen) || distanceTo(npc.getLocation()) >= 12) {
                    tileBase.setTile(npc.getLocation());
                    return WALK;
                }
                return ATTACK;
            } else {
                if (!npcCheck) {
                    lastNPCCheck = System.currentTimeMillis();
                    npcCheck = true;
                }
                if (npcCheck) {
                    if (System.currentTimeMillis() - lastNPCCheck >= 50000) {
                        log("No npcs around for 50 seconds, killing script");
                        return KILLSCRIPT;
                    }
                }
            }
            return WAIT;
        }
        long healthRandomTime = 0;
        int hpToHealAt = 10;
    
        private boolean healthCheck() {
            try {
                if (System.currentTimeMillis() - healthRandomTime > 120000) {
                    healthRandomTime = System.currentTimeMillis();
                    hpToHealAt = (int) random(skills.getRealSkillLevel(3) / 3, skills.getRealSkillLevel(3) / 1.5);
                }
                return (skills.getCurrentSkillLevel(3) <= hpToHealAt);
            } catch (Exception e) {
                System.out.print("healthCheck() error: " + e);
            }
            return false;
        }
        int runEnergy = random(15, 25);
        
        private boolean runCheck() {
            try {            
                if(getEnergy() >= runEnergy && !isRunning()) {
                    runEnergy = random(15, 50);
                    return true;
                } else {
                    return false;
                }          
            } catch (Exception e) {
                System.out.print("runCheck() error: " + e);
                return false;
            }
        }
    
        public RSNPC getNearestNPC(int... ids) {
            int Dist = 99999;
            RSNPC closest = null;
            int[] validNPCs = Bot.getClient().getNPCIndexArray();
            NPC[] npcs = Bot.getClient().getNPCArray();
    
            for (int element : validNPCs) {
                if (npcs[element] == null) {
                    continue;
                }
                RSNPC Monster = new RSNPC(npcs[element]);
                if (!canReach(Monster.getLocation(), false)) {
                    continue;
                }
                try {
                    for (int id : ids) {
                        if (id != Monster.getID() || Monster.isInCombat()) {
                            continue;
                        }
                        int distance = distanceTo(Monster);
                        if (distance < Dist) {
                            Dist = distance;
                            closest = Monster;
                        }
                    }
                } catch (Exception e) {
                }
            }
            lastNPC = closest;
            return closest;
        }
        RSNPC lastNPC = null;
    
        public RSNPC getNextNearestNPC(int... ids) {
            int Dist = 99999;
            RSNPC closest = null;
            int[] validNPCs = Bot.getClient().getNPCIndexArray();
            NPC[] npcs = Bot.getClient().getNPCArray();
    
            for (int element : validNPCs) {
                if (npcs[element] == null) {
                    continue;
                }
                RSNPC Monster = new RSNPC(npcs[element]);
                if (Monster.equals(lastNPC) || !canReach(Monster.getLocation(), false)) {
                    continue;
                }
                try {
                    for (int id : ids) {
                        if (id != Monster.getID() || Monster.isInCombat()) {
                            continue;
                        }
                        int distance = distanceTo(Monster);
                        if (distance < Dist) {
                            Dist = distance;
                            closest = Monster;
                        }
                    }
                } catch (Exception e) {
                }
            }
            lastNPC = closest;
            return closest;
        }
    
        public boolean pickUpItem(RSItemTile tile) {
            try {
                Point location = Calculations.tileToScreen(tile);
                if (location.x == -1 || location.y == -1) {
                    return false;
                }            
                for (int a = 0; a < 10; a++) {
                    location = Calculations.tileToScreen(tile);
                    moveMouse(location, -15, 15);
                    if (getMenuItems().get(0).contains("Take")) {
                        break;
                    }
                    if (getMouseLocation().equals(location)) {
                        break;
                    }
                }
                String[] itemNames = settings.getItemNames();
                for (int c = 0; c < itemNames.length; c++) {
                    if (getMenuItems().get(0).contains(itemNames[c])) {
                        clickMouse(true);
                        return true;
                    }
                    for (int x = 0; x < getMenuItems().size(); x++) {
                        if (getMenuItems().get(x).contains(itemNames[c])) {
                            if (!atMenu(itemNames[c])) {
                                return false;
                            } else {
                                return true;
                            }
                        }
                    }
                }
                return false;
            } catch (Exception e) {
                System.out.print("pickUpItem(RSTile, RSItem) error: " + e);
                return false;
            }
        }
    
        private boolean validWelcomeScreen() {       
            return RSInterface.getInterface(378).getChild(45).getAbsoluteX() > 20;
        }
        
        private boolean validInventory() {
            return getEquipmentArray().length >= 1;
        }
    
        public RSItemTile getNearestGroundItemByID(int range, int[] ids) {
            int pX = getMyPlayer().getLocation().getX();
            int pY = getMyPlayer().getLocation().getY();
            int minX = pX - range;
            int minY = pY - range;
            int maxX = pX + range;
            int maxY = pY + range;
            int dist = 100;
            RSItemTile nItem = null;
            for (int x = minX; x <= maxX; x++) {
                for (int y = minY; y <= maxY; y++) {
                    if (Calculations.canReach(new RSTile(x, y), false)) {
                        RSItemTile[] items = getGroundItemsAt(x, y);
                        for (RSItemTile item : items) {
                            int iId = item.getItem().getID();
                            for (int id : ids) {
                                if (iId == id) {
                                    if (distanceTo(new RSTile(x, y)) < dist) {
                                        dist = distanceTo(new RSTile(x, y));
                                        nItem = item;
                                    }
                                }
                            }
                        }
                    }
                }
            }
            return nItem;
        }
    
        private boolean clickInventoryFood(int... ids) {
            try {
                if (getCurrentTab() != TAB_INVENTORY && !RSInterface.getInterface(INTERFACE_BANK).isValid() &&
                        !RSInterface.getInterface(INTERFACE_STORE).isValid()) {
                    openTab(TAB_INVENTORY);
                }
                int[] items = getInventoryArray();
                java.util.List<Integer> possible = new ArrayList<Integer>();
                for (int i = 0; i < items.length; i++) {
                    for (int item : ids) {
                        if (items[i] == item) {
                            possible.add(i);
                        }
                    }
                }
                if (possible.size() == 0) {
                    return false;
                }
                int idx = possible.get(random(0, possible.size()));
                Point t = getInventoryItemPoint(idx);
                clickMouse(t, 5, 5, false);
                return atMenu("Eat");
            } catch (Exception e) {
                System.out.print("clickInventoryFood(int...) error: " + e);
                return false;
            }
        }
    
        private boolean canPickUpItem(int itemID) {
            if (getInventoryCount() < 28) {
                return true;
            } else {
                if (getInventoryCount(itemID) > 0 && getInventoryItemByID(itemID).getStackSize() > 1) {
                    return true;
                }
            }
            return false;
        }
    
        private boolean clickNPC(RSNPC npc, String action) {
            if (npc == null) {
                return false;
            }
            RSTile tile = npc.getLocation();
            if (!tile.isValid()) {
                return false;
            }
    
            try {
                Point screenLoc = npc.getScreenLocation();
                if (distanceTo(tile) > 6 || !pointOnScreen(screenLoc)) {
                    turnToTile(tile);
                }
                if (distanceTo(tile) > 20) {
                    walkTileMM(tile);
                    return false;
                }
                for (int i = 0; i < 12; i++) {
                    screenLoc = npc.getScreenLocation();
                    if (!npc.isValid() || !pointOnScreen(screenLoc)) {
                        return false;
                    }
                    moveMouse(screenLoc, -15, 15);
                    if (getMenuItems().get(0).toLowerCase().contains(npc.getName().toLowerCase())) {
                        break;
                    }
                    if (getMouseLocation().equals(screenLoc)) {
                        break;
                    }
                }
                List<String> menuItems = getMenuItems();
                if (menuItems.isEmpty()) {
                    return false;
                }
                for (int a = 0; a < menuItems.size(); a++) {
                    if (menuItems.get(a).toLowerCase().contains(npc.getName().toLowerCase())) {
                        if (menuItems.get(0).toLowerCase().contains(action.toLowerCase())) {
                            clickMouse(true);
                            return true;
                        } else {
                            clickMouse(false);
                            return atMenu(action);
                        }
                    }
                }
            } catch (Exception e) {
                System.out.print("clickNPC(RSNPC, String) error: " + e);
                return false;
            }
            return false;
        }
    
        public void onRepaint(Graphics g) {
            if (isLoggedIn()) {
                if (startTime == 0) {
                    startTime = System.currentTimeMillis();
                }
                ArrayList<String> reportList = new ArrayList<String>();
                reportList.add("RuskisFight V" + getVersion());
                int startAttackExp = experienceHandler.getSkillExp(STAT_ATTACK);
                int startStrengthExp = experienceHandler.getSkillExp(STAT_STRENGTH);
                int startDefenseExp = experienceHandler.getSkillExp(STAT_DEFENSE);
                int startHitpointsExp = experienceHandler.getSkillExp(STAT_HITPOINTS);
                int startRangeExp = experienceHandler.getSkillExp(STAT_RANGE);
                int startMagicExp = experienceHandler.getSkillExp(STAT_MAGIC);
                int currentAttackExp = skills.getCurrentSkillExp(STAT_ATTACK);
                int currentStrengthExp = skills.getCurrentSkillExp(STAT_STRENGTH);
                int currentDefenseExp = skills.getCurrentSkillExp(STAT_DEFENSE);
                int currentHitpointsExp = skills.getCurrentSkillExp(STAT_HITPOINTS);
                int currentRangeExp = skills.getCurrentSkillExp(STAT_RANGE);
                int currentMagicExp = skills.getCurrentSkillExp(STAT_MAGIC);
    
                if (startAttackExp == 0) {
                    experienceHandler.setExperiencePoints(STAT_ATTACK, skills.getCurrentSkillExp(STAT_ATTACK));
                }
                int attackExpChange = currentAttackExp - startAttackExp;
                if (attackExpChange > 0) {
                    reportList.add("Attack Exp: " + attackExpChange);
                }
                if (startStrengthExp == 0) {
                    experienceHandler.setExperiencePoints(STAT_STRENGTH, skills.getCurrentSkillExp(STAT_STRENGTH));
                }
                int strengthExpChange = currentStrengthExp - startStrengthExp;
                if (strengthExpChange > 0) {
                    reportList.add("Strength Exp: " + strengthExpChange);
                }
                if (startDefenseExp == 0) {
                    experienceHandler.setExperiencePoints(STAT_DEFENSE, skills.getCurrentSkillExp(STAT_DEFENSE));
                }
                int defenseExpChange = currentDefenseExp - startDefenseExp;
                if (defenseExpChange > 0) {
                    reportList.add("Defense Exp: " + defenseExpChange);
                }
                if (startHitpointsExp == 0) {
                    experienceHandler.setExperiencePoints(STAT_HITPOINTS, skills.getCurrentSkillExp(STAT_HITPOINTS));
                }
                int hitpointsExpChange = currentHitpointsExp - startHitpointsExp;
                if (hitpointsExpChange > 0) {
                    reportList.add("Hitpoints Exp: " + hitpointsExpChange);
                }
                if (startRangeExp == 0) {
                    experienceHandler.setExperiencePoints(STAT_RANGE, skills.getCurrentSkillExp(STAT_RANGE));
                }
                int rangeExpChange = currentRangeExp - startRangeExp;
                if (rangeExpChange > 0) {
                    reportList.add("Range Exp: " + rangeExpChange);
                }
                if (startMagicExp == 0) {
                    experienceHandler.setExperiencePoints(STAT_MAGIC, skills.getCurrentSkillExp(STAT_MAGIC));
                }
                int magicExpChange = currentMagicExp - startMagicExp;
                if (magicExpChange > 0) {
                    reportList.add("Magic Exp: " + magicExpChange);
                }           
    
                long millis = System.currentTimeMillis() - startTime;
                long hours = millis / (1000 * 60 * 60);
                millis -= hours * 1000 * 60 * 60;
                long minutes = millis / (1000 * 60);
                millis -= minutes * 1000 * 60;
                long seconds = millis / 1000;
                reportList.add("Runtime: " + hours + ":" + minutes + ":" + seconds);
    
                Point str = new Point(350, 25);
                g.setColor(new Color(60, 155, 200, 50));
                g.fill3DRect(340, 10, 165, reportList.size() * 20 + 6, true);
                g.setColor(new Color(60, 155, 200, 50));
                g.fill3DRect(341, 11, 163, reportList.size() * 20 + 4, true);
                g.setColor(Color.WHITE);
                for (int a = 0; a < reportList.size(); a++) {
                    g.drawString(reportList.get(a), str.x, str.y);
                    str = new Point(str.x, str.y + 20);
                }
            }
        }
        private final int ATTACK = 0;
        private final int WALK = 1;
        private final int EAT = 2;
        private final int PICKUP = 3;
        private final int WAIT = 4;
        private final int WALK2 = 5;
        private final int KILLSCRIPT = 999;
        private long startTime = 0;
        private RSTile lastPlayerPosition = new RSTile(0, 0);
        private int standingCount = 0;
        private int pickUpFail = 0;
        private boolean npcCheck = false;
        private long lastNPCCheck = 0;
        private NPCBase npcBase = new NPCBase();
        private TileBase tileBase = new TileBase();
        private PickUpItemSet pickUpItemSet = new PickUpItemSet();
        private Settings settings = new Settings();
        private ExperienceHandler experienceHandler = new ExperienceHandler();
        private WaitRange waitRange = new WaitRange(new int[]{500, 1000});
        private FailSafe failSafe = new FailSafe();
        private final String settingsFileName = "RuskisFighterSettings.ini";
        private int[] FOODID = {
            1895, 1893, 1891, 4293, 2142, 291, 2140, 3228, 9980, 7223,
            6297, 6293, 6295, 6299, 7521, 9988, 7228, 2878, 7568, 2343,
            1861, 13433, 315, 325, 319, 3144, 347, 355, 333, 339,
            351, 329, 3381, 361, 10136, 5003, 379, 365, 373,
            7946, 385, 397, 391, 3369, 3371, 3373, 2309, 2325, 2333,
            2327, 2331, 2323, 2335, 7178, 7180, 7188, 7190, 7198, 7200,
            7208, 7210, 7218, 7220, 2003, 2011, 2289, 2291, 2293, 2295,
            2297, 2299, 2301, 2303, 1891, 1893, 1895, 1897, 1899, 1901,
            7072, 7062, 7078, 7064, 7084, 7082, 7066, 7068, 1942, 6701,
            6703, 7054, 6705, 7056, 7060, 2130, 1985, 1993, 1989, 1978,
            5763, 5765, 1913, 5747, 1905, 5739, 1909, 5743, 1907, 1911,
            5745, 2955, 5749, 5751, 5753, 5755, 5757, 5759, 5761, 2084,
            2034, 2048, 2036, 2217, 2213, 2205, 2209, 2054, 2040, 2080,
            2277, 2225, 2255, 2221, 2253, 2219, 2281, 2227, 2223, 2191,
            2233, 2092, 2032, 2074, 2030, 2281, 2235, 2064, 2028, 2187,
            2185, 2229, 6883
        };
    
        //GUI    
        private void showSettingsInterface() {
    
            mainFrame = new javax.swing.JFrame("Ruskis Fighter V" + getVersion());
            jPanel1 = new javax.swing.JPanel();
            jLabel1 = new javax.swing.JLabel();
            jPanel2 = new javax.swing.JPanel();
            jLabel2 = new javax.swing.JLabel();
            npcIDText = new javax.swing.JTextField();
            jLabel3 = new javax.swing.JLabel();
            jPanel3 = new javax.swing.JPanel();
            jLabel4 = new javax.swing.JLabel();
            itemIDText = new javax.swing.JTextField();
            jLabel5 = new javax.swing.JLabel();
            pickUpItemsCheck = new javax.swing.JCheckBox();
            jLabel7 = new javax.swing.JLabel();
            itemNameText = new javax.swing.JTextField();
            jLabel8 = new javax.swing.JLabel();
            jPanel4 = new javax.swing.JPanel();
            jLabel6 = new javax.swing.JLabel();
            eatFoodCheck = new javax.swing.JCheckBox();
            stopScriptWhenNoFoodCheck = new javax.swing.JCheckBox();
            startButton = new javax.swing.JButton();
            saveSettingsCheck = new javax.swing.JCheckBox();
            jPanel5 = new javax.swing.JPanel();
            jLabel9 = new javax.swing.JLabel();
            speedSlider = new javax.swing.JSlider();
            jLabel10 = new javax.swing.JLabel();
            jLabel11 = new javax.swing.JLabel();
    
            mainFrame.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
            mainFrame.setAlwaysOnTop(true);
            mainFrame.setResizable(false);
    
            jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Welcome", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
                    javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 1, 11))); // NOI18N
    
            jLabel1.setText("<html>Fill out the below form to start auto fighting. " +
                    "You can also click on \"Save Settings\" to save the form input for future use.</html>");
    
            javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
            jPanel1.setLayout(jPanel1Layout);
            jPanel1Layout.setHorizontalGroup(
                    jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).
                    addGroup(jPanel1Layout.createSequentialGroup().addContainerGap().
                    addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 331, Short.MAX_VALUE).addContainerGap()));
            jPanel1Layout.setVerticalGroup(
                    jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).
                    addGroup(jPanel1Layout.createSequentialGroup().addComponent(jLabel1).
                    addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
    
            jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "NPCs", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
                    javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 1, 11))); // NOI18N
    
            jLabel2.setText("NPC IDs:");
    
            jLabel3.setFont(new java.awt.Font("Tahoma", 2, 11));
            jLabel3.setText("(separate npc ids with a comma, e.g: 123, 423, 23)");
    
            javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
            jPanel2.setLayout(jPanel2Layout);
            jPanel2Layout.setHorizontalGroup(
                    jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).
                    addGroup(jPanel2Layout.createSequentialGroup().addContainerGap().addComponent(jLabel2).
                    addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED).
                    addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jLabel3).
                    addComponent(npcIDText, javax.swing.GroupLayout.DEFAULT_SIZE, 278, Short.MAX_VALUE)).addContainerGap()));
            jPanel2Layout.setVerticalGroup(
                    jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).
                    addGroup(jPanel2Layout.createSequentialGroup().
                    addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).
                    addComponent(jLabel2).addComponent(npcIDText, javax.swing.GroupLayout.PREFERRED_SIZE,
                    javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)).
                    addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(jLabel3).
                    addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
    
            jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Item pickup", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
                    javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 1, 11))); // NOI18N
    
            jLabel4.setText("Item IDs:");
    
            jLabel5.setFont(new java.awt.Font("Tahoma", 2, 11));
            jLabel5.setText("(separate item ids with a comma, e.g: 123, 423, 23)");
    
            pickUpItemsCheck.setText("Pick up items?");
    
            jLabel7.setText("Item Names:");
    
            jLabel8.setFont(new java.awt.Font("Tahoma", 2, 11));
            jLabel8.setText("(separate item names with a comma, e.g: coins, arrow)");
    
            javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
            jPanel3.setLayout(jPanel3Layout);
            jPanel3Layout.setHorizontalGroup(
                    jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).
                    addGroup(jPanel3Layout.createSequentialGroup().addContainerGap().
                    addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).
                    addGroup(jPanel3Layout.createSequentialGroup().addComponent(jLabel4).addGap(18, 18, 18).
                    addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).
                    addComponent(itemIDText, javax.swing.GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE).
                    addComponent(jLabel5, javax.swing.GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE).
                    addComponent(pickUpItemsCheck).addComponent(jLabel8).
                    addComponent(itemNameText, javax.swing.GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE))).
                    addComponent(jLabel7)).addContainerGap()));
            jPanel3Layout.setVerticalGroup(
                    jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).
                    addGroup(jPanel3Layout.createSequentialGroup().addComponent(pickUpItemsCheck).addGap(10, 10, 10).
                    addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).
                    addComponent(jLabel4).addComponent(itemIDText, javax.swing.GroupLayout.PREFERRED_SIZE,
                    javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)).
                    addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(jLabel5).
                    addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED).
                    addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).
                    addComponent(jLabel7).addComponent(itemNameText, javax.swing.GroupLayout.PREFERRED_SIZE,
                    javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)).
                    addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE,
                    Short.MAX_VALUE).addComponent(jLabel8).addContainerGap()));
    
            jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Eating/Food", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
                    javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 1, 11))); // NOI18N
    
            jLabel6.setFont(new java.awt.Font("Tahoma", 2, 11)); // NOI18N
    
            jLabel6.setText("<html>(food is automatically found in inventory)</html>");
    
            eatFoodCheck.setText("Eat food?");
    
            stopScriptWhenNoFoodCheck.setText("Stop script when no food?");
    
            javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
            jPanel4.setLayout(jPanel4Layout);
            jPanel4Layout.setHorizontalGroup(
                    jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).
                    addGroup(jPanel4Layout.createSequentialGroup().addContainerGap().
                    addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).
                    addGroup(jPanel4Layout.createSequentialGroup().addComponent(eatFoodCheck).addGap(18, 18, 18).
                    addComponent(stopScriptWhenNoFoodCheck)).addComponent(jLabel6,
                    javax.swing.GroupLayout.PREFERRED_SIZE, 313, javax.swing.GroupLayout.PREFERRED_SIZE)).
                    addContainerGap(28, Short.MAX_VALUE)));
            jPanel4Layout.setVerticalGroup(
                    jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).
                    addGroup(jPanel4Layout.createSequentialGroup().
                    addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).
                    addComponent(eatFoodCheck).addComponent(stopScriptWhenNoFoodCheck)).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).
                    addComponent(jLabel6).addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
    
            startButton.setText("START SCRIPT!");
            startButton.addActionListener(this);
            saveSettingsCheck.setText("Save Settings?");
    
            jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Speed", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
                    javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 1, 11))); // NOI18N
    
            jLabel9.setText("<html>Have a try at adjusting to different speeds of the script, " +
                    "different<br> training locations could benefit different speeds, so it's up to you.</html> ");
    
            speedSlider.setMajorTickSpacing(25);
            speedSlider.setPaintTicks(true);
            speedSlider.setSnapToTicks(true);
    
            jLabel10.setText("Min");
    
            jLabel11.setText("Max");
    
            javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);
            jPanel5.setLayout(jPanel5Layout);
            jPanel5Layout.setHorizontalGroup(
                    jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(jPanel5Layout.createSequentialGroup().
                    addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).
                    addGroup(jPanel5Layout.createSequentialGroup().addContainerGap().addComponent(jLabel9)).
                    addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel5Layout.createSequentialGroup().
                    addContainerGap().addComponent(jLabel10).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED).
                    addComponent(speedSlider, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).
                    addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(jLabel11).
                    addGap(27, 27, 27))).addContainerGap(25, Short.MAX_VALUE)));
            jPanel5Layout.setVerticalGroup(
                    jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).
                    addGroup(jPanel5Layout.createSequentialGroup().addComponent(jLabel9).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED).
                    addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).
                    addComponent(speedSlider, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).
                    addComponent(jLabel10).addComponent(jLabel11)).addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
    
            javax.swing.GroupLayout layout = new javax.swing.GroupLayout(mainFrame.getContentPane());
            mainFrame.getContentPane().setLayout(layout);
            layout.setHorizontalGroup(
                    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).
                    addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).
                    addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).
                    addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).
                    addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).
                    addComponent(jPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).
                    addGroup(layout.createSequentialGroup().addGap(130, 130, 130).addComponent(saveSettingsCheck).addContainerGap(136, Short.MAX_VALUE)).
                    addGroup(layout.createSequentialGroup().addContainerGap().addComponent(startButton,
                    javax.swing.GroupLayout.DEFAULT_SIZE, 343, Short.MAX_VALUE).addContainerGap()));
            layout.setVerticalGroup(
                    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).
                    addGroup(layout.createSequentialGroup().addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,
                    javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).
                    addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE,
                    javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).
                    addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(jPanel3,
                    javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).
                    addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE,
                    javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).
                    addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE,
                    javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).
                    addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED).addComponent(saveSettingsCheck).
                    addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED).addComponent(startButton).addContainerGap(27, Short.MAX_VALUE)));
    
            mainFrame.pack();
            mainFrame.setVisible(true);
        }
    
        public void actionPerformed(ActionEvent action) {
            Object event = action.getSource();
            if (event.equals(startButton)) {
                settings.setNPCIDs(settings.extractIntegers(npcIDText.getText()));
                settings.setEatFood(eatFoodCheck.isSelected());
                settings.setStopScriptWhenNoFood(stopScriptWhenNoFoodCheck.isSelected());
                settings.setPickUpItems(pickUpItemsCheck.isSelected());
                if (settings.getPickUpItems()) {
                    settings.setItemIDs(settings.extractIntegers(itemIDText.getText()));
                    settings.setItemNames(settings.extractStrings(itemNameText.getText()));
                }
                settings.setSpeed(speedSlider.getValue());
                if (saveSettingsCheck.isSelected()) {
                    try {
                        settings.saveSettings(settings.getSettingsArray(), settingsFileName);
                        log("Successfully saved settings at RuskisFighterSettings.ini");
                    } catch (Exception e) {
                        System.out.print("saving settings error: " + e);
                    }
                }
                mainFrame.setVisible(false);
                mainFrame.dispose();
                START_SCRIPT = true;
            }
        }
        private boolean START_SCRIPT = false;
        private javax.swing.JCheckBox eatFoodCheck;
        private javax.swing.JTextField itemIDText;
        private javax.swing.JTextField itemNameText;
        private javax.swing.JLabel jLabel1;
        private javax.swing.JLabel jLabel10;
        private javax.swing.JLabel jLabel11;
        private javax.swing.JLabel jLabel2;
        private javax.swing.JLabel jLabel3;
        private javax.swing.JLabel jLabel4;
        private javax.swing.JLabel jLabel5;
        private javax.swing.JLabel jLabel6;
        private javax.swing.JLabel jLabel7;
        private javax.swing.JLabel jLabel8;
        private javax.swing.JLabel jLabel9;
        private javax.swing.JPanel jPanel1;
        private javax.swing.JPanel jPanel2;
        private javax.swing.JPanel jPanel3;
        private javax.swing.JPanel jPanel4;
        private javax.swing.JPanel jPanel5;
        private javax.swing.JTextField npcIDText;
        private javax.swing.JCheckBox pickUpItemsCheck;
        private javax.swing.JCheckBox saveSettingsCheck;
        private javax.swing.JSlider speedSlider;
        private javax.swing.JButton startButton;
        private javax.swing.JCheckBox stopScriptWhenNoFoodCheck;
        private javax.swing.JFrame mainFrame;
    }
    
    class WaitRange implements NonPluginClass {
    
        int[] range = new int[2];
    
        public WaitRange(int[] range) {
            this.range[0] = range[0];
            this.range[1] = range[1];
        }
    }
    
    class NPCBase implements NonPluginClass {
    
        RSNPC npc;
    
        public NPCBase() {
        }
    
        public void setNPC(RSNPC npc) {
            this.npc = npc;
        }
    }
    
    class TileBase implements NonPluginClass {
    
        RSTile tile;
        RSTile halfWayTile;
        boolean useHalfTile = false;
    
        public TileBase() {
        }
    
        public void setUseHalfTile(boolean a) {
            this.useHalfTile = a;
        }
    
        public void setTile(RSTile tile) {
            this.tile = tile;
        }
    
        public RSTile calcHalfWayTile(RSTile location, RSTile tile) {
            return new RSTile((tile.getX() + location.getX()) / 2, (tile.getY() + location.getY()) / 2);
        }
    
        public void setHalfWayTile(RSTile tile) {
            this.halfWayTile = tile;
        }
    
        public RSTile getHalfWayTile() {
            return this.halfWayTile;
        }
    }
    
    class PickUpItemSet implements NonPluginClass {
    
        RSItemTile tile;
    
        public PickUpItemSet() {
        }
    
        public void setItemTile(RSItemTile tile) {
            this.tile = tile;
        }
    }
    
    class ExperienceHandler implements NonPluginClass {
    
        int[][] skillExp = new int[24][1];
    
        public ExperienceHandler() {
        }
    
        public void setExperiencePoints(int skill, int exp) {
            this.skillExp[skill][0] = exp;
        }
    
        public int getSkillExp(int skill) {
            return this.skillExp[skill][0];
        }
    }
    
    class FailSafe implements NonPluginClass {
    
        long time = 0;
        boolean check = false;
    
        public FailSafe() {
        }
    
        public void setTime(long time) {
            this.time = time;
        }
    
        public void setCheck(boolean a) {
            this.check = a;
        }
    
        public long getTime() {
            return this.time;
        }
    
        public boolean getCheck() {
            return this.check;
        }
    }
    
    class Settings implements NonPluginClass {
    
        protected int[] npcIDs = new int[50];
        protected int[] itemIDs = new int[50];
        protected String[] itemNames = new String[50];
        protected boolean pickUpItems = false;
        protected boolean stopScriptWhenNoFood = false;
        protected boolean eatFood = false;
        protected int speed = 0;
    
        public Settings() {
        }
    
        public void setNPCIDs(int[] ids) {
            this.npcIDs = ids;
        }
    
        public void setItemIDs(int[] ids) {
            this.itemIDs = ids;
        }
    
        public void setItemNames(String[] names) {
            this.itemNames = names;
        }
    
        public void setPickUpItems(boolean a) {
            this.pickUpItems = a;
        }
    
        public void setStopScriptWhenNoFood(boolean a) {
            this.stopScriptWhenNoFood = a;
        }
    
        public void setEatFood(boolean a) {
            this.eatFood = a;
        }
    
        public void setSpeed(int speed) {
            this.speed = speed;
        }
    
        public int[] getNPCIDs() {
            return this.npcIDs;
        }
    
        public int[] getItemIDs() {
            return this.itemIDs;
        }
    
        public String[] getItemNames() {
            return this.itemNames;
        }
    
        public boolean getPickUpItems() {
            return this.pickUpItems;
        }
    
        public boolean getStopScriptWhenNoFood() {
            return this.stopScriptWhenNoFood;
        }
    
        public boolean getEatFood() {
            return this.eatFood;
        }
    
        public int getSpeed() {
            return this.speed;
        }
    
        public int[] extractIntegers(String text) {
            int[] ints = null;
            try {
                text = text.replaceAll(" ", "");
                String[] strInts = text.split(",");
                ints = new int[strInts.length];
                for (int a = 0; a < strInts.length; a++) {
                    ints[a] = Integer.parseInt(strInts[a]);
                }
            } catch (Exception e) {
                System.out.print("extractIntegers(String) error: " + e);
            }
            return ints;
        }
    
        public String[] extractStrings(String text) {
            return text.split(",");
        }
    
        public boolean extractBoolean(String text) {
            return (text.equals("true"));
        }
    
        public String booleanToString(boolean a) {
            if (a) {
                return "true";
            } else {
                return "false";
            }
        }
    
        public void setSettings() {
            try {
                String filename = "RuskisFighterSettings.ini";
                this.npcIDs = extractIntegers(getSetting("NPCIDS", filename));
                this.eatFood = extractBoolean(getSetting("EATFOOD", filename));
                this.pickUpItems = extractBoolean(getSetting("PICKUPITEMS", filename));
                this.stopScriptWhenNoFood = extractBoolean(getSetting("STOPSCRIPTWHENNOFOOD", filename));
                this.speed = Integer.parseInt(getSetting("SPEED", filename));
                if (this.pickUpItems) {
                    this.itemIDs = extractIntegers(getSetting("ITEMIDS", filename));
                    this.itemNames = extractStrings(getSetting("ITEMNAMES", filename));
                }
            } catch (Exception e) {
                System.out.print("setSettings error: " + e);
            }
        }
    
        public String getSetting(String settingName, String filename) {
            try {
                Properties p = new Properties();
                p.load(new FileInputStream(filename));
                return p.getProperty(settingName);
            } catch (IOException ioe) {
                System.out.print("loadSettings(String) error: " + ioe);
                return null;
            }
        }
    
        public String intArrayToString(int[] array) {
            String intArray = "";
            for (int a = 0; a < array.length; a++) {
                if (array[a] != 0) {
                    intArray += array[a];
                    if (a != array.length - 1) {
                        intArray += ",";
                    }
                }
            }
            return intArray;
        }
    
        public String stringArrayToString(String[] array) {
            String strArray = "";
            if (array.length <= 0) {
                return "";
            }
            for (int a = 0; a < array.length; a++) {
                if (!array[a].equals(null) && !array[a].equals("")) {
                    strArray += array[a];
                    if (a != array.length - 1) {
                        strArray += ",";
                    }
                }
            }
            return strArray;
        }
    
        public String[][] getSettingsArray() {
            String[][] settingsArray;
            if (getPickUpItems()) {
                settingsArray = new String[7][2];
            } else {
                settingsArray = new String[5][2];
            }
            settingsArray[0][0] = "NPCIDS";
            settingsArray[0][1] = intArrayToString(getNPCIDs());
            settingsArray[1][0] = "PICKUPITEMS";
            settingsArray[1][1] = booleanToString(getPickUpItems());
            if (getPickUpItems()) {
                settingsArray[2][0] = "ITEMIDS";
                settingsArray[2][1] = intArrayToString(getItemIDs());
                settingsArray[3][0] = "ITEMNAMES";
                settingsArray[3][1] = stringArrayToString(getItemNames());
                settingsArray[4][0] = "STOPSCRIPTWHENNOFOOD";
                settingsArray[4][1] = booleanToString(getStopScriptWhenNoFood());
                settingsArray[5][0] = "EATFOOD";
                settingsArray[5][1] = booleanToString(getEatFood());
                settingsArray[6][0] = "SPEED";
                settingsArray[6][1] = "" + getSpeed();
            } else {
                settingsArray[2][0] = "STOPSCRIPTWHENNOFOOD";
                settingsArray[2][1] = booleanToString(getStopScriptWhenNoFood());
                settingsArray[3][0] = "EATFOOD";
                settingsArray[3][1] = booleanToString(getEatFood());
                settingsArray[4][0] = "SPEED";
                settingsArray[4][1] = "" + getSpeed();
            }
    
            return settingsArray;
        }
    
        public void saveSettings(String[][] settings, String filename) {
            try {
                Properties p = new Properties();
                File file = new File(filename);
                file.createNewFile();
                p.load(new FileInputStream(filename));
                for (int a = 0; a < settings.length; a++) {
                    p.setProperty(settings[a][0], settings[a][1]);
                }
                FileOutputStream out = new FileOutputStream(filename);
                p.store(out, "");
            } catch (IOException ioe) {
                System.out.print("saveSettings(String[][]) error: " + ioe);
            }
        }
    
        public boolean settingsExist(String filename) {
            File settingsFile = new File(filename);
            return settingsFile.exists();
        }
    }
     
  15. relentless

    relentless Active Member
    Banned

    Joined:
    Feb 16, 2009
    Posts:
    196
    Referrals:
    0
    Sythe Gold:
    0
    .:[~]Official RSBot Scripts+Requests Sticky!{RSBot}[~]:.

    can someone edit the auto alcher so it presses f7 every 15-20 mins, this way when it misses an alch it wont stop forever, making it easier to use over night and at school
     
  16. Bartgielen

    Bartgielen Newcomer

    Joined:
    Mar 21, 2007
    Posts:
    24
    Referrals:
    0
    Sythe Gold:
    0
    .:[~]Official RSBot Scripts+Requests Sticky!{RSBot}[~]:.

    ~~ NESTFINDER RANDOM BY ME ~~
    Save as NestFinder.java in the Randoms folder. Don't forget to compile!:laugh:

    Code:
    import java.awt.*;
    import java.util.Map;
    
    import com.speljohan.rsbot.bot.Bot;
    import com.speljohan.rsbot.script.*;
    import com.speljohan.rsbot.script.wrappers.*;
    
    public class NestFinder extends Random {
    
    	private final int[] NEST_IDS = { 5075, 5074, 5073, 5072, 5071, 5070, 7413 };
    
    
    	public double getVersion() {
    		return 1.0;
    	}
    
    	public String getAuthor() {
    		return "Bart";
    	}
    
    	public String getName() {
    		return "NestFinder";
    	}
    
    	public boolean activateCondition() {
    		// Are we logged in?
    		if (!isLoggedIn()) {
    			return false;
    		}
    
    		RSTile nest = getGroundItemByID(NEST_IDS);
    
    		// Was a nest found?
    		if(nest != null && distanceTo(nest) <= 6) {
    			return true;
    		}
    		return false;
    	}
    
    	public int loop() {
    		RSTile nest = getGroundItemByID(NEST_IDS);
    		if(distanceTo(nest) <= 6 && getMyPlayer().getAnimation() == -1 && 				!getMyPlayer().isMoving()) {
    			atTile(nest, "Take");
    			wait(random(700, 700));
    			while(getMyPlayer().isMoving()) {
    				wait(random(1000, 1000));
    			}
    			return -1;
    		}
    	return -1;
    	}
    }
     
< Scammed by Thugs | cyber cry scammed me me 36 d stones >
Thread Status:
Not open for further replies.


 
 
Adblock breaks this site