[~]-The ULTIMATE RSBot Script Collection-[~]

Discussion in 'Archives' started by MatthewGor123, Nov 30, 2008.

Thread Status:
Not open for further replies.
[~]-The ULTIMATE RSBot Script Collection-[~]
  1. Unread #1 - Nov 30, 2008 at 11:47 AM
  2. MatthewGor123
    Joined:
    Dec 17, 2005
    Posts:
    1,213
    Referrals:
    0
    Sythe Gold:
    0

    MatthewGor123 Guru
    Do Not Trade

    [~]-The ULTIMATE RSBot Script Collection-[~]

    I felt like this is worth a share, the RSBot forums being kinda messed up ATM and all. The difference between this and all the other "Ultimate Script Packs" is that this pack gives you INDIVIDUAL scripts, one by one, rather than a huge compilation. I am not the original creator of any of these scripts; the names of the original creators can be found near the individual scripts. If anybody has a script that is not on the list, please tell me! If any of the scripts do not work, please say that the script needs updating. This is not for you to request scripts, it's only if you KNOW a script exists, but isn't on the list.

    --Keep in mind: this is a WORK-IN-PROGRESS--

    --ANY POSTS SAYING "SWEET, THANKS!" OR ANYTHING LIKE THAT WILL BE TREATED AS SPAM. I WILL DELETE THE POST, AND IF I'M ANGRY, GIVE YOU AN INFRACTION. THIS INCLUDES ANYTHING EXCEPT SCRIPT REQUESTS. For all script requests, post here! {unless it's because one of the scripts I posted doesn't work}.--

    --To keep the scripts ORGANIZED in your RSBot folder (like when you go to hit Run Script), check out this guide: http://rsbot.org/pbb/viewtopic.php?id=2685 --

    Anti-Randoms/Anti-Ban


    Questing


    Agility

    • None

    Combat



    Construction

    • None

    Cooking



    Crafting

    • Al Kharid Leather | [Author] Fusion89k -- NEED!
    • Hide Tanner | [Author] tom331 -- NEED!


    Farming

    • None


    Firemaking



    Fishing



    Fletching



    Herblore

    • None


    Hunter


    Magic
    I think the only scripts really worth including are the MTA, 1 Alcher, 1 Cuser, and 1 Auto-Porter


    Mining



    Prayer

    • Chaos Temple Bone Burier | [Author] Assasins Cried -- NEED
    • Bone Master | [Author] last man 3 -- NEED
    • Any Bone Burier | [Author] magic pajamas -- NEED


    Runecrafting


    Slayer

    • None


    Smithing


    Thieving

    • FxMasterFarmer | [Author] Fx -- NEED
    • FxWoman | [Author] Fx -- NEED
    • FxKnight | [Author] Fx -- NEED

    Woodcutting




    Summoning

    • None

    Other


    --COLLECTION.RAR -- UPDATED 11/30--

    If you want a script to be added to the list, please post it in this format:
    Script Name:
    Script Author:
    Script Code:

    [To do the code, simply open up the .java file in Notepad (or Notepad2 if you follow my guide!), copy it all, go here and enter it like this;]
    PHP:
    [CODE]The script goes here! Use the code tagsbut NOT the PHP tags![/CODE]
    I will be updating the UltimateCollection.rar folder once per month, not every time I add a script to it.

    I hope this script list helps everyone out a lot! :)
     
  3. Unread #2 - Nov 30, 2008 at 3:47 PM
  4. Vlad
    Joined:
    Mar 1, 2007
    Posts:
    7,678
    Referrals:
    4
    Sythe Gold:
    1,802

    Vlad Hero

    [~]-The ULTIMATE RSBot Script Collection-[~]

    DPNewtEyes was taken off as it was alterring the prices too much (I don't know if it's been re-released or re-posted).

    Are you including it in the pack?
     
  5. Unread #3 - Nov 30, 2008 at 3:57 PM
  6. Jjayman07
    Joined:
    Jul 25, 2008
    Posts:
    318
    Referrals:
    0
    Sythe Gold:
    0

    Jjayman07 Forum Addict
    Banned

    [~]-The ULTIMATE RSBot Script Collection-[~]

    here you go matt, this is the super rangerf2p file

    Code:
    SuperRangerF2p.java code --> Edited for scrolling purposes. Thanks!
     
  7. Unread #4 - Nov 30, 2008 at 4:40 PM
  8. MatthewGor123
    Joined:
    Dec 17, 2005
    Posts:
    1,213
    Referrals:
    0
    Sythe Gold:
    0

    MatthewGor123 Guru
    Do Not Trade

    [~]-The ULTIMATE RSBot Script Collection-[~]

    Endoskeleton chose to re-publish it, and so yes I will continue to include it.

    http://rsbot.org/pbb/viewtopic.php?id=3186

    Thanks so much! Added to the list.
     
  9. Unread #5 - Nov 30, 2008 at 5:27 PM
  10. UrbanHamster
    Joined:
    Nov 25, 2008
    Posts:
    62
    Referrals:
    0
    Sythe Gold:
    0

    UrbanHamster Member

    [~]-The ULTIMATE RSBot Script Collection-[~]

    Did you post this on gamerzplanet to? It ventured over there...
     
  11. Unread #6 - Nov 30, 2008 at 6:09 PM
  12. last_man_3
    Joined:
    Oct 25, 2008
    Posts:
    42
    Referrals:
    0
    Sythe Gold:
    0

    last_man_3 Member

    [~]-The ULTIMATE RSBot Script Collection-[~]

    What if I want my Monster Killer link to go to the syteh thread(in RS2 Cheating section)....
     
  13. Unread #7 - Nov 30, 2008 at 7:25 PM
  14. MatthewGor123
    Joined:
    Dec 17, 2005
    Posts:
    1,213
    Referrals:
    0
    Sythe Gold:
    0

    MatthewGor123 Guru
    Do Not Trade

    [~]-The ULTIMATE RSBot Script Collection-[~]

    No. Does it have the same links?

    And why exactly would you want to do that? Could you just post every time you add a great update? I <3 your script.
     
  15. Unread #8 - Nov 30, 2008 at 11:09 PM
  16. david493
    Joined:
    Jun 9, 2008
    Posts:
    897
    Referrals:
    0
    Sythe Gold:
    0

    david493 Guitar Playa
    $5 USD Donor

    [~]-The ULTIMATE RSBot Script Collection-[~]

    Moss Giant Killer+Bone Burier+Charm Collector | [Author] htstigers03 -- NEED!

    Code:
    // + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + //
    // + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ MossGiants.java + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + //
    // + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ 2.2 + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + //
    // + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + //
    // + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ Htstigers03 + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + //
    // + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + //
    // + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + Fights Moss Giants+ ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + //
    // + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + Picks up Big Bones/Charms/Seeds  + ~  + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + //
    // + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ Buries Bones+ ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + //
    // + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ Eats food if under 35HP + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + // 
    // + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ AntiBan and Anti-Combat + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + //
    // + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ Decent Paint Job  ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + //
    // + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + ~ + //
    
    
    import java.awt.*;
    import com.speljohan.rsbot.script.*;
    import com.speljohan.rsbot.script.wrappers.*;
    import com.speljohan.rsbot.bot.Bot;
    import com.speljohan.rsbot.event.listeners.PaintListener;
    
    public class MossGiants extends Script implements PaintListener {
    	
    		
    	int 							hpLevel = 0;
    	Color 							BLUE = new Color(170, 191, 255, 100);
    	Color 							WHITE = new Color(255, 255, 255, 255);
    	Color 							RED = new Color(200, 0, 0, 255);
    	int 							checkTime;
    	int 							GambleInt;
    	int 							randomRunValue = 30;
    	int 							randomTime = 0;
    	int 							progress = 0;
    	int 							bonesBuried = 0;
    	int 							GiantsKilled = 0;
    	int 							FrogID = 2470;
    	int[] 							StrangePlants = new int[] { 407, 408 };
    	public int                  	AntiBattle[] = new int[ ]{ 411, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,2463, 2464, 2465, 2466, 2467, 2468 };
    	public static final int[] 		Food = new int[] { 379, 285, 373, 365, 7946, 361, 397, 391 } ; // Food ID; you can maunally add ID's if you'd like.
    	public  final int[]				Mace ={ 1434 } ;
    	public static final int[]		Charms = new int[] { 12158, 12159, 12160, 12163 } ;
    	public final int[]				Ranarrs = { 5295 } ;
    	public final int[]				Snapdragons = { 5300 } ;
    	public final int[]				LongBone = { 1434 } ;
    	public static final int[] 		Items = new int[] { 12158, 12159, 12160, 12163, 5295, 5300 , 10976, 1434};
    	public final int[] 				Bone = { 532 };
    	long 							lastCheck = 0;
    	public long 					time = System.currentTimeMillis();
    	public long 					startTime = System.currentTimeMillis();
    	boolean 						pickFruit = true;
    
    	@Override
    	public String getScriptCategory() {
    		return "HtsTigers03/Charm Collector";
    	}
    
    	public double getVersion() {
    		return 2.2;
    	}
    
    	 public void onRepaint(Graphics g) { //stole transparent box from ~alex~'s AlFlax
            if (isLoggedIn() && proggy==true) {
                long millis = System.currentTimeMillis() - startTime;
                long seconds2 = millis/1000;
                long minutes2 = seconds2/60;
                long hours = millis / (1000 * 60 * 60);
                millis -= hours * (1000 * 60 * 60);
                long minutes = millis / (1000 * 60);
                millis -= minutes * (1000 * 60);
                long seconds = millis / 1000; 
                String hoursString = "";
                String minutesString = "";
                String secondsString = seconds+"";
                String type = "seconds";
                if(minutes > 0) {
                    minutesString = minutes+":";
                    type="minutes";
                }
                if(hours > 0) {
                    hoursString = hours+":";
                    type="hours"; 
                }
                if(minutesString.length() == 1)
                    minutesString="0"+minutesString;
                if(hoursString.length() == 1)
                    hoursString="0"+hoursString;
                if(secondsString.length() == 1)
                    secondsString="0"+secondsString;
                int x = 18;
                int y = 18;
                int stat=STAT_ATTACK;
                int starting=startingAttack;
                if(skills.getCurrentSkillExp(STAT_STRENGTH)-startingStrength > skills.getCurrentSkillExp(stat)-starting) {
                    stat=STAT_STRENGTH;
                    starting=startingStrength;
                }
                if(skills.getCurrentSkillExp(STAT_DEFENSE)-startingDefense > skills.getCurrentSkillExp(stat)-starting) {
                    stat=STAT_DEFENSE;
                    starting=startingDefense;
                }
                String statName = skills.statsArray[stat];
                int expGained = skills.getCurrentSkillExp(stat)-starting;
                
                g.setColor(BLUE);
                g.fill3DRect(14, 25, 200, 165, true);
                g.setColor(WHITE);
                g.drawString(" " +getName()+" " + getVersion() + " by "+getAuthor(), x, y += 20);
                if(skills.getCurrentSkillExp(stat) == starting)
                    return; 
                g.drawString("Killed "+(expGained/4)/87+" Moss Giants.", x, y += 20);
                g.drawString("Gained "+expGained+" "+statName+" experience.", x, y += 20);
                g.drawString("Gained "+(skills.getCurrentSkillLevel(stat)-skills.getLvlByExp(starting))+" "+statName+" levels", x, y += 20);
                g.drawString(skills.getPercentToNextLevel(stat)+"% to next "+statName+" level.", x, y += 20);
                g.setColor(RED);
                g.drawString("Running for "+hoursString+minutesString+secondsString+" "+type+".", x, y+=20);
                int spellsPerHour = 0;
                if(seconds2 != 0 )
                    spellsPerHour = (expGained*3600)/(int)seconds2;
                    g.drawString("Averaging "+((expGained/4)/87)*3600/seconds2+" monsters per hour.", x, y+=20);
                    g.drawString("Averaging "+(expGained*3600)/seconds2+" xp per hour.", x, y+=20);
    
            }
    
        }
    
        boolean proggy=false;
    
    	public String getName() {
    		return "MossGiants";
    	}
    
    	public String getAuthor() {
    		return "Htsigers03";
    	}
    
       	int startingAttack, startingStrength, startingDefense;
    	
    	public boolean onStart(String[] args) {
            try {
                proggy=true;
                if(!isLoggedIn()) {
                    log("Please login before starting the script.");
                    return false;
                }
                int hpExp = skills.getCurrentSkillExp(STAT_HITPOINTS);
                hpLevel = skills.getLvlByExp(hpExp);
                log(""+hpLevel);
                startingAttack = skills.getCurrentSkillExp(STAT_ATTACK);
                startingStrength = skills.getCurrentSkillExp(STAT_STRENGTH);
                startingDefense = skills.getCurrentSkillExp(STAT_DEFENSE);
                startTime = System.currentTimeMillis();
                Bot.getEventManager().addListener(PaintListener.class, this);
            } catch(Exception e) {
                return false; 
            }
            return true;
        }
    
    	public void onFinish() {
            	Bot.getEventManager().removeListener(PaintListener.class, this);
            	proggy=false;
        }
    
    	public int loop() {
    		checkForRandoms() ;
    		
    		if (isInventoryFull()) {
    			buryBones();
    		}
    		
    		if ( getEnergy() >= randomRunValue && !isRunning( ) ) {
                log ("Setting run.");
    
                setRun( true );
                randomRunValue = random(45, 65);
            }
    		
    		if(skills.getCurrentSkillLevel(3) <= 25) {
            log("Health is below 35. Eating food...");
            if(!Eat()) {        
                runAway();
                wait ( random(10000, 12000) );
                logout();
                Bot.getScriptHandler().stopScript(this.ID);
            } else 
                return random(800, 1200);
    		}	
    		
    		boolean inCombat = false;
    		for(int i=0; i!=20; i++)
    		if (getMyPlayer().getInteracting() != null) {
    			//WE ARE IN COMBAT
    			inCombat = true;
    			}else{
    			wait( random(60, 110) );
    }
    
    		if(inCombat){
    			AntiBan();
    				} else {
    				RSNPC npc = getNearestFreeNPCByName("Moss giant") ;
    				takeCharms();
    				takeRanarrs();
    				takeSnapdragons() ;
    				takeMace() ;
    				takeLongBone() ;
    				if (npc != null && !npc.isInCombat()) {
    				if (npc == null || distanceTo(npc.getLocation()) > 20) {
    					log("Could not find any Moss Giants,script is stopping.");
    					return -1;
    					} else {
    						atNPC(npc, "Attack");
    						wait( random (500,1000) ) ;	
    			}
    		}
    	}
    		return random(200, 300);
    	}
    	
    	
    	
    	public boolean Eat() {
        for(int i = 0; i<Food.length; i++) {
            if(getInventoryCount(Food[i]) >= 1) {
                atInventoryItem(Food[i], "Eat");
                return true;
            }
        }
        return false;
    	}
    	
    
    	public void buryBones() { 
    		boolean bury = false;
    		for (int i = 0; i < 28; i++) {
    			for (int element : Bone) {
    				if (element == getInventoryItems()[i].getID()) {
    					bury = true;
    				}
    			}
    			
    			if (bury) {
    				atInventoryItem(getInventoryItems()[i].getID(), "Bury");
    				bonesBuried++;
    				wait(random(500, 1500));
    				bury = false;
    			}
    		}
    	}
    	
    	//Pick Up Stuff
    	public void takeBones() {
    		RSItemTile bone = getGroundItemByID(Bone);
    		if (bone != null) {
    			atTile(bone, "Take Big bones");
    			wait ( random(1000,1500) ) ;
    		}
    	}
    	
    	public void takeCharms() {
    		RSItemTile charm = getGroundItemByID(Charms);
    		if (charm != null) {
    			for (int i = 0; i < Charms.length; i++) {
    				atTile(getGroundItemByID(Charms[i]), "Charm");
    				wait ( random(1000,1500) ) ;
    			}
    		}
    	}
    	public void takeRanarrs() {
    		RSItemTile ranarr = getGroundItemByID(Ranarrs);
    		if (ranarr != null) {
    				atTile(ranarr, "Ranarr Seed");
    				wait ( random(1000,1500) ) ;
    		}
    	}
    	public void takeSnapdragons() {
    		RSItemTile snapdragon = getGroundItemByID(Snapdragons);
    		if (snapdragon != null) {
    				atTile(snapdragon, "Snapdragon Seed");
    				wait ( random(1000,1500) ) ;
    		}
    	}
    	public void takeMace() {
    		RSItemTile mace = getGroundItemByID(Mace);
    		if (mace != null) {
    				atTile(mace, "Dragon Mace");
    				wait ( random(1000,1500) ) ;
    		}
    	}
    	
    	public void takeLongBone() { ;
    		RSItemTile longbone = getGroundItemByID (LongBone) ;
    		if (longbone !=null) {
    				atTile(longbone, "Long Bone") ;
    				wait ( random(1000,1500) ) ;
    		}
    	}
    
    	// Faster attacking by running-- Credits to ngovil21
    	public int getEnergy() {
            try {
                return( Integer.parseInt(RSInterface.getChildInterface(548, 105).getText()) );
            }
            catch( Exception e ) {
            }
    
            return( 0 );
        }
    	//Antiban  --  Credits to Aelin
    	public int AntiBan() {
    		GambleInt = random(1, 5);
    		if (GambleInt == 1) {
    			wait(random(2000, 2000));
    		}
    		if (GambleInt == 2) {
    			int xA = random(0, 750);
    			int yA = random(0, 500);
    			moveMouse(0, 0, xA, yA);
    		}
    		if (GambleInt == 3) {
    			if (getCurrentTab() != TAB_INVENTORY) {
    				openTab(TAB_INVENTORY);
    			}
    		}
    		if (GambleInt == 4) {
    			if (getMyPlayer().isMoving()) {
    				return (random(500, 1750));
    			}
    
    			if ((System.currentTimeMillis() - lastCheck) >= checkTime) {
    				lastCheck = System.currentTimeMillis();
    				checkTime = random(300000, 600000);
    
    				if (getCurrentTab() != TAB_STATS) {
    					openTab(TAB_STATS);
    				}
    				moveMouse(627, 240, 52, 29);
    				return (random(3000, 6000));
    			}
    		}
    
    		return (random(500, 1000));
    	}
    	//All this is for randoms -- Credit to Eternal Hate and G-stringer
    	public void checkForRandoms() {
    		AntiBattle() ;
    		if (!pickFruit) {
    			pickFruit = checkForPlant() ;
    		}
    		HandleStrangePlant() ;
    	}
    
    	public boolean checkForPlant() {
    		RSNPC ThatDamnPlant = getNearestNPCByID(StrangePlants);
    		if (ThatDamnPlant == null) {
    			return true;
    		}
    		return false;
    	}
    
    	public void HandleStrangePlant() {
    		RSNPC ThatDamnPlant = getNearestNPCByID(StrangePlants);
    
    		if (pickFruit && ThatDamnPlant != null
    				&& distanceTo(ThatDamnPlant.getLocation()) <= 2) {
    			atNPC(ThatDamnPlant, "Pick");
    			wait(random(1500, 200));
    		}
    	}
    
    	
    	public void AntiBattle() {
    		RSNPC randoms = getNearestNPCByID( AntiBattle );
            if ( randoms != null )
            {
                if ( distanceTo(randoms.getLocation( )) <= 5 )
                {
                    log("Running from the random");
                    runAway();
                }
            }
    	}
    	
    	public void runAway() {
    
            RSTile Foo;
            RSTile Bar;
    
            Foo = getMyPlayer().getLocation();
            setRun(true);
    
            Bar = new RSTile(Foo.getX() + random(8, 10), Foo.getY() + random(8, 10));
    
            walkTileMM(Bar);
            wait(random(4000, 5000));
            walkTileMM(Foo);
        }
    
    	
    }
    FGLobs | [Author] Flight -- NEED!

    Code:
    /*
     * FGLobs.java v.1.1 By Flight (Wolf)
     * 
     * Features: 
     * -Auto cages at the fishing guild
     * -Advanced anti-whirlpool, random combat, cage lose
     * -Automatic fishing potion drinking (Taken out)
     * -Better walking to bank procedure
     *
     */
    
    import java.awt.*;
    
    import com.speljohan.rsbot.bot.Bot;
    import com.speljohan.rsbot.event.listeners.PaintListener;
    import com.speljohan.rsbot.script.Script;
    import com.speljohan.rsbot.script.wrappers.*;
    
    public class FGLobs extends Script implements PaintListener {
    
    	public int fishBanked = 0;
    	public int whirlPoolCount = 0;
    	int randomTime = 0;
    	int progress = 0;
    	Graphics draw;
          public int startLevel = 0;
    	public int startXP = 0;
    
    	public void onRepaint(Graphics g) {
    		if (isLoggedIn()) {
    			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;
                      int XPChange = skills.getCurrentSkillExp(10) - startXP;
    			int LevelChange = skills.getCurrentSkillLevel(10) - startLevel;
    
    			g.setColor(Color.black);
    			g.drawString("Banked " + Integer.toString(fishBanked) + " total fish.", 200, 365);
    			g.drawString("Runtime: " + hours + " hrs " + minutes + " mins " + seconds + " secs.", 200, 380);
                      g.drawString("Gained: " + LevelChange + " levels and " + XPChange + " exp.", 200, 395);
    			g.drawString(skills.getXPToNextLevel(10) + " XP to next level, we are " + skills.getPercentToNextLevel(10) + "% to next level.", 200, 410); 
    		}
    	}
    
    	// Getting time so we can check if we have been idle for awhile
    	public long time = System.currentTimeMillis();
    	public long startTime = System.currentTimeMillis();
    
    	public double getVersion() {
    		return 1.1;
    	}
    
    	public String getName() {
    		return "FGLobs";
    	}
    
    	public String getAuthor() {
    		return "Flight(Wolf)";
    	}
    
    	public String getScriptCategory() {
    		return "Fishing";
    	}
    
    	public RSTile[] fishToBankA = new RSTile[] { new RSTile(2594, 3419),
    			new RSTile(2592, 3415), new RSTile(2587, 3419) };
    
    	public RSTile[] fishToBankB = new RSTile[] { new RSTile(2596, 3410),
    			new RSTile(2591, 3416), new RSTile(2587, 3419) };
    
    	public RSTile[] bankToFish = new RSTile[] { new RSTile(2592, 3415),
    			new RSTile(2594, 3420) };
    
    	public static final int[] bankWindows = new int[] { 2213 };
    
    	public boolean onStart(String[] args) {
    		Bot.getEventManager().addListener(PaintListener.class, this);
    		if (isLoggedIn()) {
    			startLevel = skills.getCurrentSkillLevel(10);
    			startXP = skills.getCurrentSkillExp(10);
    		}
    		return true;
    	}
    
    	public void onFinish() {
    		Bot.getEventManager().removeListener(PaintListener.class, this);
    	}
    
    	public int loop() {
    		switch (progress) {
    			case 0: // Fishing part
    				if (isInventoryFull()) {
    					log("Full inventory, walking to bank.");
    					progress++;
    					return random(1000, 1500);
    				}
    				if (getMyPlayer().isInCombat())
    				{
    					log("We're being attacked, oh noez! Running away...");
    					runAway();
    					return random(400, 700);
    
    				}
    				RSNPC whirlpool = getNearestNPCByID(405);
    				if (whirlpool != null) { //Whirlpool detection, comes before everything else.
    					int myX = getMyPlayer().getLocation().getX();
    					int myY = getMyPlayer().getLocation().getY();
    					if (isInAreaNPC(405, (myY - 1), (myY + 1), (myX - 1), (myX + 1))) { //Whirlpool within 1 square radius of us.
    						CageFish(); //Finding a new spot.
    						whirlPoolCount ++;
    					}
    				}
    				if (System.currentTimeMillis() - time < 30000 + randomTime || getNearestNPCByID(405) != null) {
    					if (getMyPlayer().getAnimation() == 619 || getMyPlayer().isMoving()) {
    						return random(350, 500);
    					}
    				}
    				if (!isInventoryFull()) {
    					setRun(true);
    					CageFish();
    					log("Time to fish...");
    					RSItemTile item = getGroundItemByID(20, 301);
    					if (item != null && !getMyPlayer().isMoving() && !inventoryContains(301)) {
    						atTile(item, "Take");
    						log("Recovering lobster cage.");
    					}
    					randomTime = random(1000, 20000);
    					time = System.currentTimeMillis();
    					return random(1500, 2000);
    				}
    
    			case 1:
    				if (getMyPlayer().isMoving()) {
    					return random(250, 500);
    				}
    				if (isInArea(2595, 3420, 2604, 3425)) { // Northern dock
    					walkPathMM(randomizePath(fishToBankA, 2, 2), 20);
    				} else if (isInArea(2603, 3406, 2611, 3416)) { // Southern dock
    					walkPathMM(randomizePath(fishToBankB, 2, 2), 20);
    				}
    				if (distanceTo(findObject(2213)) <= 3) {
    					progress++;
    				}
    				return random(1500, 2000);
    
    			case 2:
    				RSObject bankWindow = findObject(2213);
    				if (bankWindow != null) {
    					if (!atObject(findObject(2213), "Use-quickly"))
    					{
    						return random(500, 750);
    					}
    					fishBanked += getInventoryCount(377);
    					depositAllExcept(301);
    					if (!isInventoryFull()) {
    						if (!inventoryContains(301)) {
    							atBankInventoryItem(301, "Withdraw 1");
    							log("Withdrawing a lobster cage.");
    						}
    					//DoFishyPot();
    					progress++;
    					log("Returning to fishing spot.");
    					}
    					closeBank();
    				}
    				return random(500, 750);
    
    			case 3:
    				if (getMyPlayer().isMoving()) {
    					return random(250, 500);
    				}
    				walkPathMM(randomizePath(bankToFish, 1, 1), 20);
    				if (distanceTo(bankToFish[1]) <= 4) {
    					progress = 0;
    				}
    				return random(1500, 2000);
    		}
    		return random(500, 1000);
    	}
    
    	public void DoFishyPot() {
    		boolean GoOn = false;
    		if (getBankInventoryCount(151) != 0 && !GoOn) {
    			atBankInventoryItem(151, "Withdraw 1");
    			GoOn = true;
    		} else if (getBankInventoryCount(153) != 0 && !GoOn) {
    			atBankInventoryItem(153, "Withdraw 1");
    			GoOn = true;
    		} else if (getBankInventoryCount(155) != 0 && !GoOn) {
    			atBankInventoryItem(153, "Withdraw 1");
    			GoOn = true;
    		} else if (getBankInventoryCount(151) == 0 && getBankInventoryCount(153) == 0 && getBankInventoryCount(155) == 0) {
    			log("Out of fishing potions, continuing script anyways.");
    			GoOn = true;
    		}
    		if (GoOn) {
    			//wait(random(1500, 1750));
    			closeBank();
    			if (inventoryContains(151)) {
    				atInventoryItem(151, "Drink");
    				progress++;
    			} else if (inventoryContains(153)) {
    				atInventoryItem(153, "Drink");
    				progress++;
    			} else if (inventoryContains(155)) {
    				atInventoryItem(155, "Drink");
    				progress++;
    			}
    			log("Returning to fishing spot.");
    		}
    	}
    
    	public void runAway() {
    		RSTile foo, foo2;
    		foo = getMyPlayer().getLocation();
    		setRun(true);
    
    		foo2 = new RSTile(2586, 3419); //bank
    
    		walkTileMM(foo2);
    		wait(random(2000, 4000));
    		walkTileMM(foo);
    	}
    
    	public void CageFish() {
    		RSNPC spot = getNearestNPCByID(312);
    		if (spot != null && distanceTo(spot.getLocation()) > 10) {
    			log("Could not find fishing spot, walking to new spot.");
    			walkTileMM(new RSTile(spot.getLocation().getX() - 3, spot
    					.getLocation().getY() - 3));
    		} else {
    			atNPC(spot, "Cage");
    			log("Fishing spot found.");
    		}
    	}
    
    	public boolean isInAreaNPC(int NPCId, int minX, int minY, int maxX, int maxY) { //A bit of my home-made code :)
    		RSNPC Npc = getNearestNPCByID(NPCId);
    		int npcX = Npc.getLocation().getX();
    		int npcY = Npc.getLocation().getY();
    		if ((npcX >= minX && npcX <= maxX) && (npcY >= minY && npcY <= maxY))
    			return true;
       		return false;
    	}
    
    	public boolean isInArea(int minX, int minY, int maxX, int maxY) {
    		int myX = getMyPlayer().getLocation().getX();
    		int myY = getMyPlayer().getLocation().getY();
    		if ((myX >= minX && myX <= maxX) && (myY >= minY && myY <= maxY))
    			return true;
       		return false;
    }
    
    }
    Any Bone Burier | [Author] magic pajamas -- NEED
    Code:
    import java.util.Map;
    import java.awt.*;
    
    import com.speljohan.rsbot.script.Script;
    import com.speljohan.rsbot.script.wrappers.RSInterface;
    import com.speljohan.rsbot.script.wrappers.RSObject;
    import com.speljohan.rsbot.bot.*;
    import com.speljohan.rsbot.event.listeners.*;
    import com.speljohan.rsbot.event.events.*;
    
    
    public class AnyBoneBurier extends Script implements ServerMessageListener, PaintListener {
    
        private int bankID, boneID;
        int bonesburied;
    
        public String getAuthor() {
            return "Made by Fusion89k, maintained by magic pajamas";
        }
    
        public double getVersion() {
            return 3.3;
        }
    
        public String getName(){
            return "Any Bone Burier";
        }
        
        public String getScriptCategory() {
            return "Burying";
        }
    
        public String getScriptDescription() {
            return "<html>\n"
                    + "<head></head>\n"
                    + "<body>\n"
                    + "<center>"
                    + "<h2>"
                    + getName()
                    + "</h2>"
                    + "</center>\n"
                    + "<b>Author:</b> "
                    + getAuthor()
                    + "<br />"
                    + "<b>Version:</b> "
                    + getVersion()
                    + "<br />"
                    + "<form>"
                    +"Bank ID: <input type=\"text\" name=\"bank\" size=\"8\"><BR>"
                    +"Bone ID: <input type=\"text\" name=\"bone\" size=\"8\"><br>"
                    + "</form></body>\n" + "</html>";
        }
    
    
        public boolean onStart(Map<String, String> args) {
            String bankS = args.get("bank"), boneS = args.get("bone");
            Bot.getEventManager().addListener(PaintListener.class, this);
            Bot.getEventManager().addListener(ServerMessageListener.class, this);
            try {
                bankID = Integer.parseInt(bankS);
                boneID = Integer.parseInt(boneS);
            } catch (NumberFormatException e) {
                log("Invalid numbers");
                return false;
            }
            return true;
        }
        public void onRepaint(Graphics g) {
            g.setColor(Color.YELLOW);
            g.drawString("Any Bone Burier", 260, 20); 
            g.drawString("Bones Buried: " + bonesburied, 260, 38); 
        }
        public int loop()    {
            if (getInventoryCount(boneID) > 0) {
                atInventoryItem(boneID, "Bury");
                wait (random(400,700)); 
                return 0;
            } else {
                if(!RSInterface.getInterface(INTERFACE_BANK).isValid()){
                    RSObject booth = findObject(bankID);
                    if(booth==null) return 100;
                    if(distanceTo(booth)>=5){
                        walkTileMM(booth.getLocation());
                        wait(random(700,900));
                    }
                    atObject(booth,"Use-Quickly");
                    if(RSInterface.getInterface(INTERFACE_BANK).isValid()){
                    clickMouse(random(38,73),random(92,123),false);
                    wait(random(700,900));
                    atMenu("All but one");
                    bank.close();
    
                        }
                    }
                }
                return 0;
            }
                
        
                    public void onFinish( ) 
            {      
                log("stopping...");
                Bot.getEventManager().removeListener(ServerMessageListener.class, this);
                Bot.getEventManager().removeListener(PaintListener.class, this);
            }
        public void serverMessageRecieved(ServerMessageEvent e){
                String message = e.getMessage(); 
                if(message.contains("bury the bones")) {
                bonesburied++;
                }            
                if (message.contains("only have one"))
                {
                    logout();
                    stopAllScripts();
                }         
        }
    
    
    }
    WarXSmelter | [Author] WarXperiment -- NEED

    Code:
    import java.awt.*;
    import java.util.Map;
    import java.util.ArrayList;
    
    import com.speljohan.rsbot.bot.Bot;
    import com.speljohan.rsbot.script.Script;
    import com.speljohan.rsbot.script.wrappers.*;
    import com.speljohan.rsbot.event.listeners.ServerMessageListener;
    import com.speljohan.rsbot.event.listeners.PaintListener;
    import com.speljohan.rsbot.event.events.ServerMessageEvent;
    
    public class WarXSmelter extends Script implements ServerMessageListener,
            PaintListener {
    
        long startTime = System.currentTimeMillis();
    
        int height;
        int ores,ores1;
        int perHour;
        long smelted,failed,seconds2;
        int bar = 0;
        String Amount1 = "";
        String Amount2 = "";
        int State;
        int two;
        int ore1;
        int ore2;
        String Check1 = "";
        String Check = "";
        int stringsBanked = 0;
        int bankFail = 0;
    
    	public double getVersion() {
    
    		return 0.28;
    
    	}
    
    	public String getScriptCategory() {
    
    		return "WarXperiment/Smelting";
    
    	}
    
    	public String getName() {
    
    		return "WarXSmelter";
    
    	}
    
    	public String getAuthor() {
    
    		return "WarXperiment";
    
    	}
       	public String getScriptDescription() {
                   return "<html>\n"
    
    		+ "<head></head>\n"
    				+ "<body>\n"
    				+ "<center>"
    				+ "<h2>"
    				+ getName()
    				+ "</h2>"
    				+ "</center>\n"
    				+ "<b>Author:</b> "
    				+ getAuthor()
    				+ "<br />"
    				+ "<b>Version:</b> "
    				+ getVersion()
    				+ "<br><form>"
    				+ "Smelt What?: <select name=\"barType\">"
    				+ "<option>Bronze<option>Blurite<option>Iron<option>Silver<option>Steel<option>Gold<option>Mithril<option>Adamant<option>Rune"
                    + "</select>"
                    + "<br />"
                    + "<br />"
                    + "THIS IS VERSION V0.28---IF IN THE FORUM IT DOES NOT MATCH THE VERSION I POSTED YOU ARE OUT DATED."
    				+ "</form></body>\n" + "</html>";
        }
    	public boolean onStart(Map<String, String> args) {
    			   if (args.get("barType").equals("Bronze")) {
    			       bar = 4;
                       Amount1 = "14";
                       Amount2 = "14";
                       ores = 14;
                       ores1 = 14;
                       two = 1;
                       ore1 = 436;
    			       ore2 = 438;
                       Check = "copper";
                       Check1 = "tin";
    		       } else if (args.get("barType").equals("Blurite")) {
                       ores = 28;
                       ores1 = 0;
                       bar = 5;
                       Amount1 = "28";
                       two = 0;
                       ore1 = 668;
                       ore2 = 0;
                       Check = "blurite";
                       Check1 = "";
                   } else if (args.get("barType").equals("Iron")) {
                       ores = 28;
                       ores1 = 0;
                       bar = 6;
                       Amount1 = "28";
                       two = 0;
                       ore1 = 440;
                       ore2 = 0;
                       Check = "iron";
                       Check1 = "";
                    } else if (args.get("barType").equals("Silver")) {
                              ores = 28;
                              ores1 = 0;
                              bar = 7;
                              Amount1 = "28";
                              two = 0;
                              ore1 = 442;
                              ore2 = 0;
                              Check = "silver";
                              Check1 = "";
    		        } else if (args.get("barType").equals("Steel")) {
                       ores = 9;
                       ores1 = 18;
                       bar = 8;
                       Amount1 = "9";
                       Amount2 = "18";
                       two = 1;
                       ore1 = 440;
                       ore2 = 453;
                       Check = "iron";
                       Check1 = "coal";
                    } else if (args.get("barType").equals("Gold")) {
                       ores = 28;
                       ores1 = 0;
                       bar = 9;
                       Amount1 = "28";
                       two = 0;
                       ore1 = 444;
                       ore2 = 0;
                       Check = "gold";
                       Check1 = "";
    		        } else if (args.get("barType").equals("Mithril")) {
                       ores = 5;
                       ores1 = 20;
                       bar = 10;
                       Amount1 = "5";
                       Amount2 = "20";
                       two = 1;
                       ore1 = 447;
                       ore2 = 453;
                       Check = "mithril";
                       Check1 = "coal";
            } else if (args.get("barType").equals("Adamant")) {
                       ores = 4;
                       ores1 = 24;
                       bar = 11;
                       Amount1 = "4";
                       Amount2 = "24";
                       two = 1;
                       ore1 = 449;
                       ore2 = 453;
                       Check = "adamant";
                       Check1 = "coal";
            } else if (args.get("barType").equals("Rune")) {
                       ores = 3;
                       ores1 = 24;
                       bar = 12;
                       Amount1 = "3";
                       Amount2 = "24";
                       two = 1;
                       ore1 = 451;
                       ore2 = 453;
                       Check = "runite";
                       Check1 = "coal";
                   }
            seconds2 = 0;
            perHour = 0;
            smelted = 0;
            failed = 0;
            stringsBanked = 0;
            bankFail = 0;
    		startTime = System.currentTimeMillis();
            Bot.getEventManager().addListener(PaintListener.class, this);
            Bot.getEventManager().addListener(ServerMessageListener.class, this);
            return true;
    	}
        public void onFinish() {
            Bot.getEventManager().removeListener(PaintListener.class, this);
            Bot.getEventManager().removeListener(ServerMessageListener.class, this);
        }
    	public int loop() {
    	    try{
    
                height = getPlane();
                if (!inventoryContains(ore1) && !isInBank() && height == 0) {
                 setRun(false);
                    walkToTile(bankTile());
                   return random(2000, 2200);
                }
                if (getInventoryCount(ore1) != ores && isInBank() && !bank.getInterface().isValid()) {
                RSObject banker = findObject(11758);
                    if (!atObject(banker, "Use-quickly")) {
                        turnToTile(banker.getLocation());
                }
                }
                if (getInventoryCount(ore1) != ores && isInBank()) {
                if (bank.getInterface().isValid()) {
                if (bank.depositAllExcept(ore2)) {
                    wait(random(200,400));
                    moveMouse(random(38, 74), random(92, 124));
                     while(getTopText().equals(""));
                    if (!getTopText().contains(Check)) {
                        bankFail++;
                        if (bankFail >= 10) {
                            log("Banking failed. Possibly ran out of ore!");
                            return -1;
                        }
                        return random(500, 800);
                    }
                    clickMouse(false);
                    wait (random(500,800));
                    if (atMenu("Withdraw-X")) {
                        wait(random(1500,1600));
                        while(!RSInterface.getInterface(752).isValid());
                        if (RSInterface.getInterface(752).isValid()) {
                        Bot.getInputManager().sendKeys(Amount1, true);
                        wait (random(200,400));
                        bankFail = 0;
                        return random(500, 1000);
                    }
                    }
                }
                }
                return random(300, 500);
            }
                if (getInventoryCount(ore1) == ores && getInventoryCount(ore2) != ores1 && two == 1) {
                   if (bank.depositAllExcept(ore1)) {
                       wait(random(200,400));
                       moveMouse(random(85, 114), random(92, 120));
                       while(getTopText().equals(""));
                       if (!getTopText().contains(Check1)) {
                        bankFail++;
                        if (bankFail >= 10) {
                            log("Banking failed. Possibly ran out of ore!");
                            return -1;
                        }
                        return random(500, 800);
                    }
                    clickMouse(false);
                       wait (random(500,800));
                       if (atMenu("Withdraw-X"));
                    wait(random(1500,1600));
                    while(!RSInterface.getInterface(752).isValid());
                       if (RSInterface.getInterface(752).isValid()) {
                        Bot.getInputManager().sendKeys(Amount2, true);
                        wait(random(200,400));
                        bankFail = 0;
                        return random(500, 1000);
    
                }
                return random(300, 500);
                   }
                }
                if (getInventoryCount(ore1) == ores && !isInSmelt() && two == 0 && height == 0) {
                walkToTile(smeltTile());
                    if (getEnergy() > random(50,100)) {
                        setRun(true);
                    }
                    return random(2000,3000);
                }
                if (getInventoryCount(ore2) == ores1 && getInventoryCount(ore1) == ores  && !isInSmelt() && two == 1 && height == 0) {
                walkToTile(smeltTile());
                    if (getEnergy() > random(50,100)) {
                        setRun(true);
                    }
                    return random(2000,3000);
                }
                if (!RSInterface.getInterface(311).isValid() && isInSmelt() && getMyPlayer().getAnimation() == -1 && height == 0) {
                if (!atTile(new RSTile(random(2976, 2977), random(3370, 3368)), "Smelt"));
                    turnToTile(new RSTile(random(2976, 2977), random(3370, 3368)));
                return random(100,200);
                }
    
               	if (RSInterface.getInterface(311).isValid() && inventoryContains(ore1) && two == 0) {
                    atInterface(311, bar, "10");
                   wait(3000);
                   }
                if (RSInterface.getInterface(311).isValid() && inventoryContains(ore1,ore2) && two == 1) {
                 atInterface(311, bar, "10");
                }
                if (getMyPlayer().getAnimation() == 3243) {
                wait(3000);
                return random(100,200);
                }
                if (height == 1) {
                if (!atTile(new RSTile(random(2971, 2972), random(3372, 3371)), "Climb"));
                    turnToTile(new RSTile(random(2971, 2972), random(3372, 3371)));
                return random(100,200);
            }
            }catch(Exception e){
    		log("An exception has occurred.");
    	    }
    	    return random(300, 500);
    	}
        public void serverMessageRecieved(ServerMessageEvent e) {
        String word = e.getMessage().toLowerCase();
        if (word.contains("retrieve a bar")) {
            smelted++;
        } else if (word.contains("fail")) {
            failed++;
        } else if (word.contains("to make any more")) {
            log("Out of coal or tin ore logging out or something weird happened.");
            logout();
            wait (random(1000,2000));
            stopAllScripts();
        }
        }
        public void onRepaint(Graphics g) {
    		if (isLoggedIn()) {
                long millis = System.currentTimeMillis() - startTime;
    			seconds2 = millis/1000;
                long hours = millis / (1000 * 60 * 60);
    			millis -= hours * (1000 * 60 * 60);
    			long minutes = millis / (1000 * 60);
    			millis -= minutes * (1000 * 60);
                long seconds = millis / 1000;
    			int topX = 515 - 173, topY = 337 - 80, x = topX + 5, y = topY + 5;
                g.setColor(new Color(0, 100, 0, 100));
    			g.fill3DRect(topX, topY, 515 - topX, 337 - topY, true);
    			g.setColor(Color.white);
    			g.drawString("Runtime: " + hours + "h " + minutes + "min "
    					+ seconds + "sec.", x, y += 9);
    			g.drawString("Bars Smelted: " + smelted / 2, x, y += 11);
                g.drawString("Bars Failed: " + failed / 2, x, y += 13);
    		    if(seconds2!=0){
                    g.drawString("Average per hour: " + smelted / 2 * 3600 / seconds2,x, y += 14);
                }
    			else {
    				g.drawString("Average per hour: " + smelted / 2 * 3600,x, y += 14);
    
                }
                g.drawString("Script Version: " + getVersion(),x, y += 18);
            }
    	}
        public boolean walkToTile(RSTile tile) {
            if (walkPathMM2(generatePath(tile), 16)) {
                return true;
            }
            return false;
        }
        public boolean isInBank() {
            RSTile myLocation = getMyPlayer().getLocation();
            int myX = myLocation.getX();
            int myY = myLocation.getY();
            if (myX >= 2943 && myX <= 2949 && myY >= 3366 && myY <= 3373
                    && getPlane() == 0) {
                return true;
            }
        return false;
        }
        public boolean isInSmelt() {
            RSTile myLocation = getMyPlayer().getLocation();
            int myX = myLocation.getX();
            int myY = myLocation.getY();
            if (myX >= 2968 && myX <= 2977 && myY >= 3367 && myY <= 3374
                    && getPlane() == 0) {
                return true;
            }
            return false;
        }
        public RSTile bankTile() {
    		return new RSTile(random(2947, 2945), random(3369, 3372));
        }
        public RSTile smeltTile() {
    		return new RSTile(random(2973, 2974), random(3370, 3373));
        }
    	public int bowstringCount() {
    		return getInventoryCount();
    	}
        public String getTopText() {
    		return getMenuItems().get(0).toLowerCase();
    	}
    	public boolean walkPathMM2(RSTile[] path, int maxDist) {
    		try {
    			RSTile next = nextTile(path, maxDist);
    			if (next != null && !next.equals(current2)) {
    				walkTileMM(next);
    				current2 = next;
    				return false;
    			} else if (next != null && next.equals(current2)) {
    				return false;
    			}
    		} catch (Exception e) {
    			return false;
    		}
    		return true;
    	}
    	public RSTile[] generatePath(RSTile tile) {
    		return generatePath(tile.getX(), tile.getY());
    	}
        public RSTile[] generatePath(int destinationX, int destinationY) { // Most
            // credits
            // go to
            // aftermath...
            // I
            // asked
            // for a
            // theory
            // and
            // he
            // gives
            // me
            // the
            // whole
            // method.
            // ~Mike
            int startX = getMyPlayer().getLocation().getX();
            int startY = getMyPlayer().getLocation().getY();
            double dx, dy;
            ArrayList<RSTile> list = new ArrayList<RSTile>();
    
            list.add(new RSTile(startX, startY));
            while (Math.hypot(destinationY - startY, destinationX - startX) > 8) {
                dx = destinationX - startX;
                dy = destinationY - startY;
                int gamble = random(14, 17);
                while (Math.hypot(dx, dy) > gamble) {
                    dx *= .95;
                    dy *= .95;
                }
                startX += (int) dx;
                startY += (int) dy;
                list.add(new RSTile(startX, startY));
            }
            list.add(new RSTile(destinationX, destinationY));
            return list.toArray(new RSTile[list.size()]);
        }
    
        RSTile current2 = null;
    
    }
    SuperHeater | [Author] Andrew -- NEED

    Code:
    import java.awt.*;
    import java.awt.event.*;
    import java.text.*;
    import java.util.*;
    import javax.swing.*;
    import java.util.List;
    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.event.listeners.PaintListener;
    import com.speljohan.rsbot.bot.Bot;
    import java.awt.event.KeyEvent;
    
    public class Superheater extends Script implements PaintListener {
    	public static final int[] whatsNeeded = new int [] {453 , 561 };
    	public static final int[] bankBooths = new int[] { 11402, 35647, 2213 };
    	public static final int[] dontBank = new int[] { 453, 561 };
    	public static final int[] dontBank1 = new int[] { 447, 561 };
    	public static int natureRune = 561 ;
    	public static int fireStaff = 1387 ;
    	public static int oreID;
    	public static int barID;
    	public static int oreName;
    	private String bar, smelting;
    	private String string, doing;	
    	public static int coalOre = 453 ;
    	public static int addyOre = 449 ;
    	public static int addyBar = 2361 ;
    	public static int addyID = 449 ;
    	public static int mithOre =  447 ;
    	public static int mithBar =  2359 ;
    	public static int mithID =  447 ;
    	long startTime;
    	
    	public double getVersion() {
    
    		return 2.4;
    
    	}
    
    	public String getScriptCategory() {
    
    		return "Andrew";
    
    	}
    
    	public String getName() {
    
    		return "SuperHeater";
    
    	}
    
    	public String getAuthor() {
    
    		return "Andrew";
    
    	}
    	public String getScriptDescription() {
    
          return "<html>\n" +
                "<head></head>\n" +
                "<body>\n" +
                "<center>" +
                "<h2>" + getName() + "</h2> <b>Version:</b>" + getVersion() + "<p>\n" + 
                "</center>\n" +
                "If you cannot see the instructions you can open the window a little then you may scroll down.<p>\n" +
                "<b>Author:</b> " + getAuthor() + " Also many thanks to SSFAN1.<p>\n" +
    		"<b>Contatct:(Msn)</b> [email protected]<p>\n" +
    		"<b>Contatct:(E-mail)</b> [email protected]<p>\n" +
    			"<form><input type=\"radio\" name=\"ore\" value=\"1\" checked=\"checked\">Mithril<br><input type=\"radio\" name=\"ore\" value=\"2\">Adamant</form><p>\n" +
                "Start this in a bank. If it gives you an error you may not use that bank.\n" +
                " You need to have fire staff wielded and nature runes in your inventory.<p>\n" +
    			"<b>You will need to put mith/addy ore in slot one and coal in slot three.<p></b>\n" +
                "<p>\n" +
                "</body>\n" +
                "</html>";
    
        }
    	
    	public boolean closeBank() {
    		return bank.close();
    	}
    public boolean onStart(Map<String, String>args) {
    Bot.getEventManager( ).addListener(PaintListener.class, this);
    int choice = Integer.parseInt(args.get("ore"));
    switch(choice){
    case 1:
    	oreID = mithID;
    	barID = mithBar;
    	smelting = "Mithril";
    	break;
    case 2:
    	oreID = addyID;
    	barID = addyBar;
    	smelting = "Addy";
    	break;
    }
    	return true;
    }
    public void onRepaint( Graphics g ) {
    int natureCount = 0;
    		long hours = 0, minutes = 0, seconds = 0;
    		long time;
    
    
    		if ( startTime == 0 ) {
    			startTime = System.currentTimeMillis( );
    		}
    
    
    		time = System.currentTimeMillis( ) - startTime;
    		seconds = (time / 1000);
    		if ( seconds >= 60 ) {
    			minutes = (seconds / 60);
    			seconds -= (minutes * 60);
    		}
    		if ( minutes >= 60 ) {
    			hours = (minutes / 60);
    			minutes -= (hours * 60);
    		}
    natureCount = getInventoryCount(natureRune);
            g.setColor(Color.YELLOW);
            g.drawString("Andrew's SuperHeater.", 200, 20); 
            g.drawString("Nature Runes left: " + natureCount, 200, 38);
    	    g.drawString("Time running: " + hours + ":" + minutes + "." + seconds, 200, 56);
    	    g.drawString("Currently Smelting: " + smelting, 200, 74);
    	    g.drawString("Currently: " + doing, 200, 92);		
    
    }
      public void onFinish() {
            Bot.getEventManager().removeListener(PaintListener.class, this);
        }
    
    	public void waitUntilNotMoving() {
    		wait(random(600, 750));
    		while(getMyPlayer().isMoving())
    			wait(random(50, 100));
    	}
    
    /////////////////////////////////modified to click 2 ores//////////////////////////
    
    	public int withdrawAll() {
    		///////slot 1       put in mith or addy////////////////////
    		doing = "withdrawing " + smelting;
    				wait (random(500,750));
    				clickMouse(55, 107, 8, 8, false);
    				wait(random(250,500));
    				atMenu("Withdraw-5");
    				wait (random(700,1200));
    		
    		
    		/////////slot 3   put in coal   ///////////////////////
    		doing = "withdrawing coal";
                wait(random(550, 800));
                clickMouse(random(131, 153), random(93, 118), 1, 1, false);
                wait(random(500, 750));
                atMenu("Withdraw-All");
                wait(random(600, 900));
    			if(!inventoryContains(coalOre)) {
    			wait(random(1000, 1800));
    			 bank.depositAllExcept(dontBank1);
    	log("Oops, I missed getting the coal let me try again.");
    			clickMouse(100, 108, 8, 8, false);
                wait(random(500, 650));
                atMenu("Withdraw-All");
    			wait(random(2000, 2800));
    			if(inventoryContains(coalOre)) {
    			bank.close();
    			doing = "Casting spell on " + smelting;
    			for (int i = 0; i <= 4; i++) {
    		            wait(random(500, 650));	
    		openTab(TAB_MAGIC);
          wait(random(100,300));
            clickMouse(695+random(-7,7),302+random(-7,7),true);
          atInventoryItem(oreID);
    	  			wait(random(1000, 1800));
    
    	  }
    			log("Out of ore - Logging out");
    			bank.close();
    			stopAllScripts();
    }
    			}
                
                
                
                
                
                
                
    
    if (inventoryContains(oreID) && getInventoryCount(coalOre) >5) {
                    bank.close(); 
                } else {
                    bank.depositAllExcept(natureRune);
    				withdrawAll();
                }
    		return( random(300, 700) );
    	} 
    	
    
    
    public boolean atInventoryItem(int itemID) {
    		if (getCurrentTab() != TAB_INVENTORY
    				&& !RSInterface.getInterface(INTERFACE_BANK).isValid()
    				&& !RSInterface.getInterface(INTERFACE_STORE).isValid()) {
    			openTab(TAB_MAGIC);
    		}
    		int[] items = getInventoryArray();
    		java.util.List<Integer> possible = new ArrayList<Integer>();
    		for (int i = 0; i < items.length; i++) {
    			if (items[i] == itemID) {
    				possible.add(i);
    			}
    		}
    		if (possible.size() == 0) return false;
    		int idx = possible.get(random(0, possible.size()));
    		Point t = getInventoryItemPoint(idx);
    		Point p = new Point(t.x + random(-3,3), t.y + random(-3,3));
    		do{
    			moveMouse(p);
    			wait(150);
    		}while( !getMouseLocation().equals(p) );
    		clickMouse(true);
    		return true;
    	}
    public void serverMessageRecieved(ServerMessageEvent e) {
    		String word = e.getMessage().toLowerCase();
    		if (word.contains("have enough Nature Runes to cast this spell")) {
    			log("Out of runes - Logging out");
    			bank.close();
    			stopAllScripts();
    		}
    	
    	
    } 
        public int loop() {
    
           if(inventoryContains(oreID) && getInventoryCount(natureRune) > 0 && getInventoryCount(coalOre) >5){
    	   		doing = "Casting spell on " + smelting;
    		openTab(TAB_MAGIC);
          wait(random(100,300));
            clickMouse(695+random(-7,7),302+random(-7,7),true);
          atInventoryItem(oreID);
    	  return random(1000, 1500);
    	  }
       	  if(inventoryContains(barID) && !inventoryContains(oreID)) {
    	  		doing = "Banking";
    	log("Inventory contains Bars, Banking now.");
    	RSObject bankBooth = findObject(bankBooths);
    	if(bankBooth != null)
    	if (distanceTo(bankBooth.getLocation()) > 5) {
    		walkTileMM(bankBooth.getLocation());
    waitUntilNotMoving();
    			return random(500, 750);
    	
    	}
    for (int i = 0; i <= 30; i++) {
    	if (!bank.getInterface().isValid()) {
    		atObject(bankBooth, "Use-quickly");
    } else {
    	bank.depositAllExcept(dontBank);
    		withdrawAll();
    	  return random(500, 700);
    	  }
    	  }
    }
    	if(!inventoryContains(oreID) && !inventoryContains(barID)) {
    	log("No ores in the inventory, withdrawing now.");
    		wait(random(500,750));
    	RSObject bankBooth = findObject(bankBooths);
    	if(bankBooth != null)
    	if (distanceTo(bankBooth.getLocation()) > 5) {
    		walkTileMM(bankBooth.getLocation());
    waitUntilNotMoving();
    			return random(500, 750);
    	}
    	if (!bank.getInterface().isValid()) {
    		atObject(bankBooth, "Use-quickly");
    	} else {
    		bank.depositAllExcept(dontBank);
    		withdrawAll();
    	}
    	
    }
    				return random(500, 750);
    }
    }
    
    FxMasterFarmer | [Author] Fx -- NEED

    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.*;
    
    import com.speljohan.rsbot.event.listeners.PaintListener;
    import com.speljohan.rsbot.event.listeners.ServerMessageListener;
    import com.speljohan.rsbot.event.events.ServerMessageEvent;
    
    
    public class FxMasterFarmer extends Script implements PaintListener, ServerMessageListener {
    
    	public boolean onStart(Map<String, String> args) {
    		log("FxMasterFarmer - FxMasterFarmer Started");
    
    		startTime = System.currentTimeMillis();
    		startExp = skills.getCurrentSkillExp(STAT_THIEVING);
    
    		Bot.getEventManager().addListener(ServerMessageListener.class, this);
    		Bot.getEventManager().addListener(PaintListener.class, this);
    
    		if (!args.get("foodName").equals("") && !args.get("foodId").equals("") && !args.get("foodToTake").equals("")) {
    			foodName = args.get("foodName");
    			foodId = Integer.parseInt(args.get("foodId"));
    			foodToTake = Integer.parseInt(args.get("foodToTake"));
    		} else {
    			log("FxMasterFarmer - Fill in every field. Thank you.");
    			return false;
    		}
    
    		return true;
    	}
    
    	public void onFinish() {
    		Bot.getEventManager().removeListener(ServerMessageListener.class, this);
    		Bot.getEventManager().removeListener(PaintListener.class, this);
    	}
    
    	public String getScriptDescription() {
    		String html = "";
    
    		html += "<html>";
    		html += "<head>";
    		html += "<style type=\"text/css\">div.main { margin-top: 115px; } div.leftcol { float: left; } div.rightcol { float: right; } div.floatclear { clear: both; } p {margin-left: 15px} body {background-image: url(\"http://img128.imageshack.us/img128/2638/fxprothieversf0.png\")}</style>";
    		html += "</head>";
    		html += "<body>";
    		html += "<center>";
    		html += "<div class=\"main\"";
    		html += "<h2>Master Thiever v" + getVersion() + "</h2>";
    		html += "<div class=\"leftcol\">Food Name:</div><div class=\"rightcol\"><input type=\"text\" name=\"foodName\" value=\"Name of Food\" size=10></div>" ;
    		html += "<div class=\"floatclear\"><!-- ---></div>";
    		html += "<div class=\"leftcol\">Food ID:</div><div class=\"rightcol\"><input type=\"text\" name=\"foodId\" value=\"FoodID\" size=10></div>" ;
    		html += "<div class=\"floatclear\"><!-- ---></div>";
    		html += "<div class=\"leftcol\">Amount food to take:</div><div class=\"rightcol\"><input type=\"text\" name=\"foodToTake\" value=\"Amount of Food\" size=10></div>" ;
    		html += "<div class=\"floatclear\"><!-- ---></div>";
    		html += "</div>";
    		html += "</center>";
    		html += "</body>";
    		html += "</html>";
    
    
    		return (html);
    	}
    
    	public void onRepaint(Graphics g) {
    		if(isLoggedIn()) {
    
        	if(startExp == 0) {
        		startExp = skills.getCurrentSkillExp(STAT_THIEVING);
        	}
    
        	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;
    
        	int expChange = skills.getCurrentSkillExp(STAT_THIEVING) - startExp;
    
        	float expPerSec = 0;
    		if ((minutes > 0 || hours > 0 || seconds > 0) && expChange > 0) {
    			expPerSec = ((float) expChange)/(float)(seconds + (minutes*60) + (hours*60*60));
    		}
    		float expPerMin = expPerSec * 60;
    		float expPerHour = expPerMin * 60;
    
            	g.setColor(Color.BLACK);
    		g.drawRoundRect(391, 313, 120, 18, 12, 12);
    		g.setColor(new Color(75, 255, 255, 50));
    		g.fillRoundRect(391, 313, 120, 18, 12, 12);
    		g.setColor(Color.BLACK);
    		g.drawString("Runtime: " + hours + ":" + minutes + ":" + seconds, 399, 328);
    
    		g.setColor(Color.BLACK);
    		g.drawRoundRect(255, 313, 125, 18, 12, 12);
    		g.setColor(new Color(75, 255, 255, 50));
    		g.fillRoundRect(255, 313, 125, 18, 12, 12);
    		g.setColor(Color.BLACK);
    		g.drawString("Exp Gained: " + expGained, 263, 328);
    
    		g.setColor(Color.BLACK);
    		g.drawRoundRect(120, 313, 130, 18, 12, 12);
    		g.setColor(new Color(75, 255, 255, 50));
    		g.fillRoundRect(120, 313, 130, 18, 12, 12);
    		g.setColor(Color.BLACK);
    		g.drawString("Average P/H: " + (int)expPerHour, 128, 328);
    
    		g.setColor(Color.BLACK);
    		g.drawRoundRect(391, 288, 120, 18, 12, 12);
    		g.setColor(new Color(93, 182, 69, 50));
    		g.fillRoundRect(391, 288, 120, 18, 12, 12);
    		g.setColor(Color.BLACK);
    		g.drawString("Profit: " + profit + "gp", 399, 302);
    
            }
    	}
    
    	public void serverMessageRecieved(ServerMessageEvent arg) {
    		String msgRec = arg.getMessage().toLowerCase().trim();
    
    		if(msgRec.contains("you attempt") && !lastServerMessage.equals(msgRec)) {
    			WAITRANGE[0] = 900;
    			WAITRANGE[1] = 1100;
    		}
    
    		if(msgRec.contains("you steal") && !lastServerMessage.equals(msgRec)) {
    			expGained += 43;
    			String [] msgSplit = msgRec.split(" ");
    			for(int a = 0; a < seedNameArray.length; a++) {
    	      			if(seedNameArray[a].contains(msgSplit[3])) {
    	      				if(msgSplit[2].contains("a")) {
    	      					profit += seedCostArray[a];
    		        		} else {
    		        			int amountSeeds = Integer.parseInt(msgSplit[2]);
    		        			profit += seedCostArray[a] * amountSeeds;
    		        		}
    	      			}
          			}
          			WAITRANGE[0] = 130;
    			WAITRANGE[1] = 170;
    		}
    
    		if((msgRec.contains("you've been stunned") || msgRec.contains("you fail to pick")) && !lastServerMessage.equals(msgRec)) {
    			lastStunnedTime = System.currentTimeMillis();
    			WAITRANGE[0] = 2600;
    			WAITRANGE[1] = 3100;
    		}
    
    		if(msgRec.contains("oh dear, you are dead") && !lastServerMessage.equals(msgRec) && !playerDead) {
    			playerDead = true;
    		}		
    
    		lastServerMessage = msgRec;
    	}
    
    	public void waitTilStopped() {
    		while (true && isLoggedIn()) {
    			if (!getMyPlayer().isMoving()) {
    				break;
    			}
    			wait(random(100, 200));
    		}
    	}
    
    	public void runControl() {
    		if (!isRunning() && getEnergy() > 20) {
    			setRun(true);
    		}
    	}
    
        public void walkAlongPath(RSTile[] path) {
        	int index = 0;
    		for (int i = 1; i < path.length; i++) {
    			if (distanceTo(path[i]) < distanceTo(path[index])) {
    				index = i;
    			}
    		}
    		for (int i = index; i < path.length; i++) {
    				runControl();
    				walkTileMM(new RSTile(path[i].getX() + random(-2, 2), path[i].getY() + random(-2, 2)));
    				wait(random(700, 1100));
    				waitTilStopped();
    		}
    	}
    
    	public void rotate(Point screenLoc) {
    		if(screenLoc.getX() > 400) {
    			setCameraRotation(getCameraAngle() - 90);
    		}
    		if(screenLoc.getX() < 100) {
    			setCameraRotation(getCameraAngle() + 90);
    		}
    		if(screenLoc.getY() > 327) {
    			setCameraRotation(getCameraAngle() + 180);
    		}
    
    	}
    
    	public boolean findClosestPath() {
    		for(int a = 0; a < deathWalkTileArr.length; a++) {
    			if(distanceTo(deathWalkTileArr[a]) <= 15) {
    				log("FxMasterFarmer - Lost, trying to find new tiles.");
    				walkAlongPath(deathWalkTileArr);
    				return true;
    			}
    		}
    		return false;
    	}
    
    	public boolean depositAllExcept2(int item) {
    		int[] items = getInventoryArray();
    		for(int a = 0; a < items.length; a++) {
    			if(items[a] != item) {
    				depositAllItem(items[a]);
    			}
    		}
    		if(getInventoryCount() == getInventoryCount(item)) return true;
    
    		return false;
    	}
    
    	public boolean depositAllItem(int item) {
    
    		if(getInventoryCount(item) > 0) {
    			switch(getInventoryCount(item)) {
    				case 1: atInventoryItem(item, "Deposit-1");
    					break;
    				case 5: if(random(1,3) > 1) {
    						atInventoryItem(item, "Deposit-5");
    						break;
    					}
    				case 10: if(random(1,3) > 1) {
    						atInventoryItem(item, "Deposit-10");
    						break;
    					}
    				default: atInventoryItem(item, "Deposit-All");
    						break;
    			}
    			long inventoryTimeCheck = System.currentTimeMillis();
    			while(getInventoryCount(item) != 0 && System.currentTimeMillis() - inventoryTimeCheck < 2000) {
    				wait(50);
    			}
    			if(getInventoryCount(item) == 0) return true; else depositAllItem(item);
    		}
    
    		return false;
    	}
    	
    	public void myMouseClick(boolean left) {
    		if(System.currentTimeMillis() - lastClickTime > (400 + random(0, 300))) {
    			input.clickMouse(left);
    			lastClickTime = System.currentTimeMillis();
    		}		
    	}
    
    	public boolean atFarmerNPC(RSCharacter npc) {
    		if (npc == null) return false;
    		RSTile tile = npc.getLocation();
    		if (!tile.isValid()) return false;
    		if (distanceTo(tile) > 5) {
    			walkTileMM(tile);
    		}
    
    		try{
    			Point screenLoc = null;
    			for (int i = 0; i < 30; i++) {
    				screenLoc = npc.getScreenLocation();
    				if (!npc.isValid() || !pointOnScreen(screenLoc)) {
    					//not on screen
    					return false;
    				}
    				if (getMenuItems().get(0).toLowerCase().contains("farmer")) break;
    				if (getMouseLocation().equals(screenLoc)) break;
    				moveMouse(screenLoc);
    			}
    			screenLoc = npc.getScreenLocation();
    			if (getMenuItems().size() <= 1) return false;
    			if (getMenuItems().get(0).toLowerCase().contains("pickpocket")) {
    				myMouseClick(true);
    				return true;
    			} else {
    				myMouseClick(false);
    				return atMenu("Pickpocket");
    			}
    		} catch (Exception e) {
    			e.printStackTrace();
    			return false;
    		}
    	}
    
    	public void selectActionState() {
    		if(getInventoryCount(foodId) > 0 && !isInventoryFull()) {
    			if(distanceTo(deathWalkTileArr[deathWalkTileArr.length - 1]) <= 30) {
    				ActionState = PICKPOCKET;
    			} else {
    				if(!findClosestPath()) { ActionState = KILLSCRIPT; }
    			}
    		}
    		if(getInventoryCount(foodId) == 0 || isInventoryFull()) {
    			if(distanceTo(deathWalkTileArr[deathWalkTileArr.length - 2]) <= 25) {
    				ActionState = BANKING;
    			} else {
    				if(!findClosestPath()) { ActionState = KILLSCRIPT; }
    			}
    		}
    		if(playerDead || distanceTo(deathWalkTileArr[0]) <= 15) {
    			ActionState = DEATHWALK;
    			playerDead = false;
    			WAITRANGE[0] = 2000;
    			WAITRANGE[1] = 3000;
    		}		
    	}
    
    	@Override
    	public int loop() {
    
    		selectActionState();
    
    		switch(ActionState) {
    			case PICKPOCKET:
    
    				/**++++++++ //EATING\\ ++++++++ **/
    				int healthDif = skills.getRealSkillLevel(3) - skills.getCurrentSkillLevel(3);
        				if(healthDif >= 25) {
    	    				if(getInventoryCount(foodId) > 0) {
    	    						openTab(TAB_INVENTORY);
    	    						wait(random(700, 900));
    	    						atInventoryItem(foodId, "Eat");
    	    						wait(random(800, 1500));
    	    				}
        				}
    				/**-------- \\EATING// -------- **/
    
    
    				/**++++++++ //PICKPOCKETING\\ ++++++++ **/
    				RSNPC farmerNPC = getNearestNPCByID(masterFarmerId);
    				if(farmerNPC == null) {
    					if(!findClosestPath()) { ActionState = KILLSCRIPT; }
    				} else {
    					rotate(farmerNPC.getScreenLocation());
    					atFarmerNPC(farmerNPC);
    				}
    				/**-------- \\PICKPOCKETING// -------- **/
    
    				if(System.currentTimeMillis() - lastStunnedTime >= 2000 && System.currentTimeMillis() - lastStunnedTime <= 3000) {
    					WAITRANGE[0] = 230;
    					WAITRANGE[1] = 350;
    				}
    
    				return random(WAITRANGE[0], WAITRANGE[1]);
    
    			case DEATHWALK:
    				log("FxMasterFarmer - We are dead, no worries, walking back..");
    				walkAlongPath(deathWalkTileArr);
    
    				return random(WAITRANGE[0], WAITRANGE[1]);
    
    			case BANKING:
    				RSObject bankTill = findObject(bankTills);
    				if (distanceTo(bankTill.getLocation()) > 5) {
    					walkTileMM(bankTill.getLocation());
    					return random(500, 750);
    				}
    		        	if(!RSInterface.getInterface(762).isValid()) {
    		        	atObject(bankTill, "Use-quickly");
    					return random(1500, 1700);
    				}
    
    				depositAllExcept2(foodId);
    				if(getInventoryCount(foodId) < foodToTake) {
    					bank.searchItem(foodName);
    					wait(random(600, 900));
    					clickMouse(random(40,70),random(95,120), false);
    					wait(random(700,1200));
    					if (atMenu("Withdraw-"+foodToTake) == false) {
    						clickMouse(random(45,60),random(100,115), false);
    						wait(random(900,1300));
    						if (atMenu("X") == false) {
    							log("FxMasterFarmer - Out of " + foodName);
    							return -1;
    						}
    					}
    					wait(random(1500, 2500));
    					int foodNeeded = foodToTake - getInventoryCount(foodId);
    					Bot.getInputManager().sendKeys(""+foodNeeded, true);
    					bank.searchItem("");
    					bank.close();				
    				}
    				return random(WAITRANGE[0], WAITRANGE[1]);
    			
    			case KILLSCRIPT:
    				log("FxMasterFarmer - Stopping Script.");
    				return -1;
    
    
    
    		}
    
    		return random(140, 300);
    	}
    
    	public String getAuthor( ) {
    		return "Fx & Ruski ";
    	}
    
    	public String getName() {
    		return "FxMasterFarmer";
    	}
    
    	public String getScriptCategory() {
    		return "Thieving";
    	}
    
    	public double getVersion() {
    		return 1.0;
    	}
    
    	private int [] WAITRANGE = new int [] {250, 500};
    
    	private final int PICKPOCKET = 1;
    	private final int BANKING = 2;
    	private final int DEATHWALK = 3;
    	private final int KILLSCRIPT = 4;
    	private int ActionState = 0;
    
    	private boolean playerDead = false;
    
    	private String lastServerMessage = "";
    	private long lastStunnedTime = 0;
    	private long lastClickTime = 0;
    
    	private String foodName = "Lobster";
    	private int foodId = 379;
    	private int foodToTake = 8;
    	private int masterFarmerId = 2234;
    
    	private int startExp = 0;
    	private int expGained = 0;
    	private long startTime = 0;
    
    	private int profit = 0;
    
    	private String [] seedNameArray = new String[] {
    		"asgarnian", "avantoe", "barley",
    		"cabbage", "cactus", "cadantine",
    		"cadavaberry", "dwellberry", "guam",
    		"hammerstone", "harralander", "irit",
    		"jangerberry", "jute", "krandorian",
    		"kwuarm", "lantadyme", "limpwurt",
    		"marigold", "marrentill", "nasturtium",
    		"onion", "poison ivy", "potato",
    		"ranarr", "redberry", "rosemary",
    		"strawberry", "sweetcorn", "tarromin",
    		"toadflax", "tomato", "watermelon",
    		"whiteberry", "wildblood", "woad",
    		"yanillian", "belladonna"
    	};
    
    	private int [] seedCostArray = new int[] {
    		30, 182, 19, 13, 45, 742, 4, 11, 28,
    		26, 32, 88, 27, 43, 4, 5109, 1759, 477,
    		73, 4, 5, 5, 138, 4, 21600, 2, 50,
    		572, 624, 10, 588, 18, 2621, 60, 26, 5,
    		105, 80
    	};
    
    	private RSTile[] deathWalkTileArr = {
    		new RSTile(3235, 3218), new RSTile(3234, 3228),
    		new RSTile(3226, 3235), new RSTile(3222, 3245),
    		new RSTile(3207, 3247), new RSTile(3196, 3248),
    		new RSTile(3186, 3245), new RSTile(3177, 3241),
    		new RSTile(3166, 3238), new RSTile(3156, 3234),
    		new RSTile(3145, 3230), new RSTile(3132, 3227),
    		new RSTile(3119, 3227), new RSTile(3109, 3232),
    		new RSTile(3101, 3238), new RSTile(3092, 3246),
    		new RSTile(3080, 3250)
    	};
    
    	private final int[] bankTills = new int[] { 2213 };
    }
    FxWoman | [Author] Fx -- NEED
    Code:
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.event.KeyEvent;
    import java.math.BigDecimal;
    
    import com.speljohan.rsbot.bot.Bot;
    import com.speljohan.rsbot.bot.input.Mouse;
    import com.speljohan.rsbot.event.listeners.PaintListener;
    import com.speljohan.rsbot.script.*;
    import com.speljohan.rsbot.script.wrappers.*;
    
    public class FxWoman extends Script implements PaintListener{
    		private int waitCount;
    			public long startTime = System.currentTimeMillis();
    	public int startLevel = skills.getCurrentSkillLevel(STAT_THIEVING);
    	public int startXP = skills.getCurrentSkillExp(STAT_THIEVING);
        public static final int[] 		Food = new int[] { 329, 333, 385, 379, 285, 373, 365, 7946, 361, 397, 391 } ;
        public static final int[] 		guardID = new int[] { 15, 15 } ;
    
    	public String getAuthor( ) {
    		return "Fx";
    	}
    
    	public String getName( ) {
    		return "FxWoman";
    	}
    
    	public double getVersion( ) {
    		return 1.0;
    	}
    
    	public String getScriptCategory( ) {
    		return "Thieving";
    	}
    
    	public String getScriptDescription( ) {
    		String html = "";
    
    		html += "<html>";
    		html += "<head>";
    		html += "<style type=\"text/css\">div.main { margin-top: 115px; } div.leftcol { float: left; } div.rightcol { float: right; } div.floatclear { clear: both; } p {margin-left: 15px} body {background-image: url(\"http://img128.imageshack.us/img128/2638/fxprothieversf0.png\")}</style>";
    		html += "</head>";
    		html += "<body>";
    		html += "<center>";
    		html += "<div class=\"main\"";
    		html += "<h2>Master Thiever v" + getVersion() + "</h2>";
    		html += "<div class=\"leftcol\">Food Name:</div><div class=\"rightcol\"><input type=\"text\" name=\"foodName\" value=\"Name of Food\" size=10></div>" ;
    		html += "<div class=\"floatclear\"><!-- ---></div>";
    		html += "<div class=\"leftcol\">Food ID:</div><div class=\"rightcol\"><input type=\"text\" name=\"foodId\" value=\"FoodID\" size=10></div>" ;
    		html += "<div class=\"floatclear\"><!-- ---></div>";
    		html += "<div class=\"leftcol\">Amount food to take:</div><div class=\"rightcol\"><input type=\"text\" name=\"foodToTake\" value=\"Amount of Food\" size=10></div>" ;
    		html += "<div class=\"floatclear\"><!-- ---></div>";
    		html += "</div>";
    		html += "</center>";
    		html += "</body>";
    		html += "</html>";
    
    		return html;
    	}
    
    	public void onRepaint(Graphics g) {
    		if(isLoggedIn()) {
    
        	if(startExp == 0) {
        		startExp = skills.getCurrentSkillExp(STAT_THIEVING);
        	}
    
        	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;
    
        	int expChange = skills.getCurrentSkillExp(STAT_THIEVING) - startExp;
    
        	float expPerSec = 0;
    		if ((minutes > 0 || hours > 0 || seconds > 0) && expChange > 0) {
    			expPerSec = ((float) expChange)/(float)(seconds + (minutes*60) + (hours*60*60));
    		}
    		float expPerMin = expPerSec * 60;
    		float expPerHour = expPerMin * 60;
    
            	g.setColor(Color.BLACK);
    		g.drawRoundRect(391, 313, 120, 18, 12, 12);
    		g.setColor(new Color(75, 255, 255, 50));
    		g.fillRoundRect(391, 313, 120, 18, 12, 12);
    		g.setColor(Color.BLACK);
    		g.drawString("Runtime: " + hours + ":" + minutes + ":" + seconds, 399, 328);
    
    		g.setColor(Color.BLACK);
    		g.drawRoundRect(255, 313, 125, 18, 12, 12);
    		g.setColor(new Color(75, 255, 255, 50));
    		g.fillRoundRect(255, 313, 125, 18, 12, 12);
    		g.setColor(Color.BLACK);
    		g.drawString("Exp Gained: " + expGained, 263, 328);
    
    		g.setColor(Color.BLACK);
    		g.drawRoundRect(120, 313, 130, 18, 12, 12);
    		g.setColor(new Color(75, 255, 255, 50));
    		g.fillRoundRect(120, 313, 130, 18, 12, 12);
    		g.setColor(Color.BLACK);
    		g.drawString("Average P/H: " + (int)expPerHour, 128, 328);
    
    
    
            }
    	}
    					
    	RSNPC WarriorWoman ;
    
    	public boolean Eat() {
        for(int i = 0; i<Food.length; i++) {
            if(getInventoryCount(Food[i]) >= 1) {
                atInventoryItem(Food[i], "Eat");
                return true;
            }
        }
        return false;
    	}
    
    		public boolean onStart(String[] args) {
    		Bot.getEventManager().addListener(PaintListener.class, this);
    		waitCount = 0;
    		return true;
    
    		}
    
    	public int loop() {
    		if (getMyPlayer().isInCombat() || getMyPlayer().isMoving()) {
    			return random(500, 1000);
    		}
    			if(skills.getCurrentSkillLevel(3) <= 25) {
            log("Your hitpoints are below 25, let's eat.");
            if(!Eat()) {
                wait ( random(10000, 12000) );
                logout();
                Bot.getScriptHandler().stopScript(this.ID);
            } else
                return random(800, 1200);
    		}
    				RSNPC npc = getNearestNPCByID(guardID);
    		if (npc != null && !npc.isInCombat() && distanceTo(npc.getLocation()) <= 10) {
    			if (atNPC(npc,"Pick")) {
         	return random(575, 718);
       } else if (!atNPC(npc,"Pick")) {
    	return random(215, 815);
       }
    			}
    			return random(215, 815);
    }
    	public void onFinish() {
    		Bot.getEventManager( ).removeListener(PaintListener.class, this);
    	}
    	
    	private int startExp = 0;
    	private int expGained = 0;
    }

    FxKnight | [Author] Fx -- NEED


    Code:
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.event.KeyEvent;
    import java.math.BigDecimal;
    
    import com.speljohan.rsbot.bot.Bot;
    import com.speljohan.rsbot.bot.input.Mouse;
    import com.speljohan.rsbot.event.listeners.PaintListener;
    import com.speljohan.rsbot.script.*;
    import com.speljohan.rsbot.script.wrappers.*;
    
    public class FxKnight extends Script implements PaintListener{
    		private int waitCount;
    			public long startTime = System.currentTimeMillis();
    	public int startLevel = skills.getCurrentSkillLevel(STAT_THIEVING);
    	public int startXP = skills.getCurrentSkillExp(STAT_THIEVING);
        public static final int[] 		Food = new int[] { 329, 333, 385, 379, 285, 373, 365, 7946, 361, 397, 391 } ;
        public static final int[] 		knightID = new int[] { 23 } ;
    
    	public String getAuthor( ) {
    		return "Fx";
    	}
    
    	public String getName( ) {
    		return "FxKnight";
    	}
    
    	public double getVersion( ) {
    		return 1.0;
    	}
    
    	public String getScriptCategory( ) {
    		return "Thieving";
    	}
    
    	public String getScriptDescription( ) {
    		String html = "";
    
    		html += "<html>";
    		html += "<head>";
    		html += "<style type=\"text/css\">div.main { margin-top: 115px; } div.leftcol { float: left; } div.rightcol { float: right; } div.floatclear { clear: both; } p {margin-left: 15px} body {background-image: url(\"http://img128.imageshack.us/img128/2638/fxprothieversf0.png\")}</style>";
    		html += "</head>";
    		html += "<body>";
    		html += "<center>";
    		html += "<div class=\"main\"";
    		html += "<h2>Master Thiever v" + getVersion() + "</h2>";
    		html += "<div class=\"leftcol\">Food Name:</div><div class=\"rightcol\"><input type=\"text\" name=\"foodName\" value=\"Name of Food\" size=10></div>" ;
    		html += "<div class=\"floatclear\"><!-- ---></div>";
    		html += "<div class=\"leftcol\">Food ID:</div><div class=\"rightcol\"><input type=\"text\" name=\"foodId\" value=\"FoodID\" size=10></div>" ;
    		html += "<div class=\"floatclear\"><!-- ---></div>";
    		html += "<div class=\"leftcol\">Amount food to take:</div><div class=\"rightcol\"><input type=\"text\" name=\"foodToTake\" value=\"Amount of Food\" size=10></div>" ;
    		html += "<div class=\"floatclear\"><!-- ---></div>";
    		html += "</div>";
    		html += "</center>";
    		html += "</body>";
    		html += "</html>";
    
    		return html;
    	}
    
    	public void onRepaint(Graphics g) {
    		if(isLoggedIn()) {
    
        	if(startExp == 0) {
        		startExp = skills.getCurrentSkillExp(STAT_THIEVING);
        	}
    
        	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;
    
        	int expChange = skills.getCurrentSkillExp(STAT_THIEVING) - startExp;
    
        	float expPerSec = 0;
    		if ((minutes > 0 || hours > 0 || seconds > 0) && expChange > 0) {
    			expPerSec = ((float) expChange)/(float)(seconds + (minutes*60) + (hours*60*60));
    		}
    		float expPerMin = expPerSec * 60;
    		float expPerHour = expPerMin * 60;
    
            	g.setColor(Color.BLACK);
    		g.drawRoundRect(391, 313, 120, 18, 12, 12);
    		g.setColor(new Color(75, 255, 255, 50));
    		g.fillRoundRect(391, 313, 120, 18, 12, 12);
    		g.setColor(Color.BLACK);
    		g.drawString("Runtime: " + hours + ":" + minutes + ":" + seconds, 399, 328);
    
    		g.setColor(Color.BLACK);
    		g.drawRoundRect(255, 313, 125, 18, 12, 12);
    		g.setColor(new Color(75, 255, 255, 50));
    		g.fillRoundRect(255, 313, 125, 18, 12, 12);
    		g.setColor(Color.BLACK);
    		g.drawString("Exp Gained: " + expGained, 263, 328);
    
    		g.setColor(Color.BLACK);
    		g.drawRoundRect(120, 313, 130, 18, 12, 12);
    		g.setColor(new Color(75, 255, 255, 50));
    		g.fillRoundRect(120, 313, 130, 18, 12, 12);
    		g.setColor(Color.BLACK);
    		g.drawString("Average P/H: " + (int)expPerHour, 128, 328);
    
    
    
            }
    	}
    					
    	RSNPC Knight ;
    
    	public boolean Eat() {
        for(int i = 0; i<Food.length; i++) {
            if(getInventoryCount(Food[i]) >= 1) {
                atInventoryItem(Food[i], "Eat");
                return true;
            }
        }
        return false;
    	}
    
    		public boolean onStart(String[] args) {
    		Bot.getEventManager().addListener(PaintListener.class, this);
    		waitCount = 0;
    		return true;
    
    		}
    
    	public int loop() {
    		if (getMyPlayer().isInCombat() || getMyPlayer().isMoving()) {
    			return random(500, 1000);
    		}
    			if(skills.getCurrentSkillLevel(3) <= 25) {
            log("Your hitpoints are below 25, let's eat.");
            if(!Eat()) {
                wait ( random(10000, 12000) );
                logout();
                Bot.getScriptHandler().stopScript(this.ID);
            } else
                return random(800, 1200);
    		}
    				RSNPC npc = getNearestNPCByID(knightID);
    		if (npc != null && !npc.isInCombat() && distanceTo(npc.getLocation()) <= 10) {
    			if (atNPC(npc,"Pick")) {
         	return random(575, 718);
       } else if (!atNPC(npc,"Pick")) {
    	return random(215, 815);
       }
    			}
    			return random(215, 815);
    }
    	public void onFinish() {
    		Bot.getEventManager( ).removeListener(PaintListener.class, this);
    	}
    	
    	private int startExp = 0;
    	private int expGained = 0;
    }
    Varrock Platebody Smither | [Author] Fusion89k -- NEED

    Code:
    import java.awt.Color;
    import java.awt.Graphics;
    import java.util.Map;
    
    import com.speljohan.rsbot.bot.Bot;
    import com.speljohan.rsbot.event.events.ServerMessageEvent;
    import com.speljohan.rsbot.event.listeners.PaintListener;
    import com.speljohan.rsbot.event.listeners.ServerMessageListener;
    import com.speljohan.rsbot.script.Script;
    import com.speljohan.rsbot.script.wrappers.RSInterface;
    import com.speljohan.rsbot.script.wrappers.RSItem;
    import com.speljohan.rsbot.script.wrappers.RSObject;
    import com.speljohan.rsbot.script.wrappers.RSTile;
    
    public class PlateBodySmither extends Script implements PaintListener,
    		ServerMessageListener {
    
    	private int barID, tries = 0, smithed = 0, barsNeeded = 5, counting = 0;
    	private final RSTile anvilTile = new RSTile(3187, 3424),
    			bankTile = new RSTile(3188, 3437), scrollClick = new RSTile(500,
    					300), plateClick = new RSTile(270,280);
    	private final int anvilID = 2783, hammerID = 2347, bankID = 11402;
    	private boolean smithing = false, needScroll = true;
    	private final long startTime = System.currentTimeMillis();
    	private String doing = "Starting", barName;
    
    	public String getName() {
    		return "Platebody Smither";
    	}
    
    	public String getAuthor() {
    		return "Fusion89k";
    	}
    
    	public double getVersion() {
    		return 1.2;
    	}
    
    	public String getScriptCategory() {
    		return "Smithing";
    	}
    
    	public String getScriptDescription() {
    		return "<html>\n"
    				+ "<head></head>\n"
    				+ "<body>\n"
    				+ "<center>"
    				+ "<h2>"
    				+ getName()
    				+ "</h2>"
    				+ "</center>\n"
    				+ "<b>Author:</b> "
    				+ getAuthor()
    				+ "<br />"
    				+ "<b>Version:</b> "
    				+ getVersion()
    				+ "<br />"
    				+ "<form>"
    				+ "Bar Type: <select name=\"bar\">"
    				+ "<option>Bronze<option>Iron<option>Steel<option>Mithril<option>Adamant<option>Rune"
    				+ "</select></form><BR>"
    				+ "Just Plates for right now<br>"
    				+ "Notes: <br>* Have Hammer in inventory<br>* Have bars in first bank slot"
    				+ "</form></body>\n" + "</html>";
    	}
    
    	public boolean onStart(Map<String, String> args) {
    		Character type = args.get("bar").charAt(0);
    		type = Character.toLowerCase(type);
    		switch (type) {
    		case 'b':
    			barID = 2349;
    			barName = "Bronze";
    			break;
    		case 'i':
    			barID = 2351;
    			barName = "Iron";
    			break;
    		case 's':
    			barID = 2353;
    			barName = "Steel";
    			break;
    		case 'm':
    			barID = 2359;
    			barName = "Mithril";
    			break;
    		case 'a':
    			barID = 2361;
    			barName = "Adamant";
    			break;
    		case 'r':
    			barID = 2363;
    			barName = "Rune";
    			break;
    		}
    		setCameraAltitude(true);
    		setCompass('w');
    		Bot.getEventManager().addListener(PaintListener.class, this);
    		return true;
    	}
    
    	public void onFinish() {
    		Bot.getEventManager().removeListener(PaintListener.class, this);
    	}
    
    	public int loop() {
    		if (!inventoryContains(hammerID)&&isLoggedIn()) {
    			log("No Hammer");
    			stopAllScripts();
    		}
    		if (getMyPlayer().isMoving())
    			return random(700, 900);
    		if (smithing && !doing.equals("Smithing"))
    			doing = "Smithing";
    		if (getInventoryCount(barID) < barsNeeded) {
    			smithing = false;
    			if (tries >= 5) {
    				log("Probably out of Bars");
    				stopAllScripts();
    			}
    			if (distanceTo(bankTile) > 3) {
    				if (doing.contains("Bank")) {
    					return random(100, 500);
    				}
    				doing = "Walking to Bank";
    				walkTileMM(randomTile(bankTile));
    				pause();
    			}
    			if (!RSInterface.getInterface(INTERFACE_BANK).isValid()) {
    				RSObject booth = findObject(bankID);
    				if (booth == null)
    					return random(700, 900);
    				doing = "Banking";
    				atObject(booth, "Use-Quickly");
    				pause();
    			}
    			if (RSInterface.getInterface(INTERFACE_BANK).isValid()) {
    				if (getInventoryCount() > 0) {
    					doing = "Depositing";
    					int[] array = getInventoryArray();
    					for (int id : array) {
    						if (id != hammerID && id != barID && !(id < 1)) {
    							atInventoryItem(id, "Deposit-All");
    							wait(200);
    							array = getInventoryArray();
    						}
    					}
    				}
    				doing = "Withdrawing";
    				bank.setWithdrawModeToItem();
    				clickMouse(random(38, 73), random(92, 123), false);
    				pause();
    				atMenu("but");
    				bank.close();
    				tries++;
    			}
    		} else {
    			if (smithing)
    				return 100;
    			tries = 0;
    			if (distanceTo(anvilTile) > 4) {
    				if (doing.contains("Anvil")) {
    					return random(100, 500);
    				}
    				doing = "Walking to Anvil";
    				walkTileMM(randomTile(anvilTile));
    				return random(100, 900);
    			}
    			try {
    				useItemCustom(new RSItem(barID, 1), findObject(anvilID));
    				pause();
    			} catch (NullPointerException e) {
    				log("Couldn't find Anvil - Retrying");
    				return random(700, 900);
    			}
    			if (RSInterface.getInterface(300).isValid()) {
    				if (counting > 5) {
    					counting = 0;
    					needScroll = true;
    				}
    				if (needScroll) {
    					clickMouse(randomTile(scrollClick).getX(), randomTile(
    							scrollClick).getY(), true);
    					wait(random(100, 300));
    					needScroll = false;
    				}
    				clickMouse(randomTile(plateClick).getX(),
    						randomTile(plateClick).getY(), false);
    				counting++;
    				pause();
    				atMenu("All");
    				smithing = true;
    			} else
    				return random(700, 900);
    		}
    		return random(700, 900);
    	}
    
    	private RSTile randomTile(RSTile tile) {
    		int x = tile.getX(), y = tile.getY();
    		x = random(x - 2, x + 2);
    		y = random(y - 2, y + 2);
    		return new RSTile(x, y);
    	}
    
    	private void pause() {
    		wait(random(700, 900));
    	}
    
    	private void useItemCustom(RSItem item, RSObject obj) {
    		if (getCurrentTab() != TAB_INVENTORY) {
    			openTab(TAB_INVENTORY);
    		}
    		atInventoryItem(item.getID(), "Use");
    		atObject(obj, "Anvil");
    	}
    
    	public void onRepaint(Graphics g) {
    		if (isLoggedIn()) {
    			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;
    			String temp = barName;
    			// 173 and 80 decide width and height respectively
    			int topX = 515 - 190, topY = 337 - 80, x = topX + 5, y = topY + 5;
    			g.setColor(new Color(0, 100, 0, 100));
    			g.fill3DRect(topX, topY, 515 - topX, 337 - topY, true);
    			g.setColor(Color.green);
    			g.drawString("Runtime: " + hours + "h " + minutes + "min "
    					+ seconds + "sec.", x, y += 15);
    			g.drawString("Created: " + Integer.toString(smithed) + " " + temp
    					+ " Platebodies.", x, y += 15);
    			g
    					.drawString("Used: " + smithed * barsNeeded + " bars.", x,
    							y += 15);
    			g.drawString("Status: " + doing, x, y += 15);
    		}
    	}
    
    	public void serverMessageRecieved(ServerMessageEvent e) {
    		String word = e.getMessage().toLowerCase();
    		if (word.contains("make")) {
    			smithed++;
    		} else if (word.contains("advanced")) {
    			smithing = false;
    		} else if (word.contains("only have one")) {
    			log("Only one bar left - Logging out");
    			stopAllScripts();
    		} else if (word.contains("welcome")) {
    			needScroll = true;
    			setCameraAltitude(true);
    			setCompass('w');
    		}
    	}
    }


    Still need em.
     
  17. Unread #9 - Dec 1, 2008 at 9:33 AM
  18. Esuom
    Joined:
    May 3, 2007
    Posts:
    1,731
    Referrals:
    2
    Sythe Gold:
    0

    Esuom Guru
    Banned

    [~]-The ULTIMATE RSBot Script Collection-[~]

    Script Name: Catherby Chopper v1.0
    Script Author: pazila
    Script Code:
    Code:
    import java.awt.*;
    
    import com.speljohan.rsbot.bot.Bot;
    import com.speljohan.rsbot.event.events.ServerMessageEvent;
    import com.speljohan.rsbot.event.listeners.ServerMessageListener;
    import com.speljohan.rsbot.event.listeners.PaintListener;
    import com.speljohan.rsbot.script.Script;
    import com.speljohan.rsbot.script.wrappers.*;
    
    public class CatherbyChopper extends Script implements PaintListener, ServerMessageListener {
    
    	RSTile[] treeLocs = new RSTile[] {
    			new RSTile(2755, 3434),
    			new RSTile(2756, 3431),
    			new RSTile(2758, 3434),
    			new RSTile(2758, 3428),
    			new RSTile(2766, 3428),
    			new RSTile(2761, 3432)
    	};
    
    	int[] axeID = new int[] {
    			1351, 1349,
    			1353, 1361,
    			1355, 1357,
    			1359, 6739
    	};
    	int[] yewTree = new int[] {
    			1309, 8503, 8504, 8505,
    			8506, 8507, 8508, 8509,
    			8510, 8511, 8512, 8513
    	};
    	int lastTreeIndex;
    
    	RSTile[] deathPath = new RSTile[] {
    			new RSTile(3222,3216), new RSTile(3227,3234),
    			new RSTile(3218,3251), new RSTile(3199,3246),
    			new RSTile(3162,3240), new RSTile(3143,3234),
    			new RSTile(3127,3222), new RSTile(3113,3224),
    			new RSTile(3102,3240), new RSTile(3103,3259),
    			new RSTile(3105,3272), new RSTile(3097,3286),
    			new RSTile(3078,3282), new RSTile(3062,3275),
    			new RSTile(3042,3272), new RSTile(3024,3276),
    			new RSTile(3010,3281), new RSTile(3007,3294),
    			new RSTile(3008,3312), new RSTile(3006,3344),
    			new RSTile(3001,3356), new RSTile(2998,3363),
    			new RSTile(2989,3371), new RSTile(2974,3379),
    			new RSTile(2965,3394), new RSTile(2961,3410),
    			new RSTile(2951,3422), new RSTile(2946,3434),
    			new RSTile(2939,3451), new RSTile(2924,3449),
    			new RSTile(2918,3433), new RSTile(2908,3419),
    			new RSTile(2891,3422), new RSTile(2875,3429),
    			new RSTile(2866,3455), new RSTile(2858,3466),
    			new RSTile(2856,3480), new RSTile(2862,3494),
    			new RSTile(2855,3509), new RSTile(2841,3507),
    			new RSTile(2851,3496), new RSTile(2848,3479),
    			new RSTile(2843,3468), new RSTile(2844,3459),
    			new RSTile(2853,3445), new RSTile(2842,3432),
    			new RSTile(2829,3438), new RSTile(2812,3436),
    			new RSTile(2797,3433), new RSTile(2784,3442),
    			new RSTile(2778,3447), new RSTile(2773,3454),
    			new RSTile(2763,3466), new RSTile(2759,3471),
    			new RSTile(2750,3474), new RSTile(2742,3476),
    			new RSTile(2727,2484), new RSTile(2725,3491),
    			new RSTile(2726,3493)
    	};
    	RSTilePath deathWalk = new RSTilePath(randomizePath(deathPath, 2, 2), this);
    
    	RSTile[] bankToTrees = new RSTile[] {
    			 new RSTile(2809, 3439),  new RSTile(2797, 3432),
    			 new RSTile(2784, 3433),  new RSTile(2771, 3432),
    			 new RSTile(2759, 3430)
    	};
    	RSTile[] treesToBank = reversePath(bankToTrees);
    	RSTilePath bank2Trees = new RSTilePath(randomizePath(bankToTrees, 2, 2), this);
    	RSTilePath trees2Bank = new RSTilePath(randomizePath(treesToBank, 2, 2), this);
    
    	 public int bankID = 2213;
    	 int yewsCut;
    
    
    
    	public double getVersion( ) {
    		return( 1.00 );
    	}
    
    	public String getName( ) {
    		return( "Catherby Chopper" );
    	}
    
    	public String getAuthor( ) {
    		return( "pazila" );
    	}
    
    	public String getScriptCategory() {
    		return( "Woodcutting" );
    	}
    
    	public String getScriptDescription( ) {
    		String html = "";
    
    		html += "<html>\n";
    		html += "<body>\n";
    		html += "<h2>" + getName( ) + " v" + getVersion( ) + "</h2><br>\n";
    		html += "Author: " + getAuthor( ) + "<br><br>\n";
    		html += "Description";
    		html += "<center>\n";
    		html += "Chops Yews next to Catherby.<br />Start at the Yews or at the bank, with an axe\n";
    		html += "</center>\n";
    		html += "</body>\n";
    		html += "</html\n";
    
    		return( html );
    	}
    
    	public boolean onStart( String[ ] args ) {
    		Bot.getEventManager( ).addListener(PaintListener.class, this);
    		Bot.getEventManager( ).addListener(ServerMessageListener.class, this);
    
    		return( true );
    	}
    
    	public void onFinish( ) {
    		Bot.getEventManager( ).removeListener(PaintListener.class, this);
    		Bot.getEventManager( ).removeListener(ServerMessageListener.class, this);
    	}
    
    	public void serverMessageRecieved(ServerMessageEvent e) {
    		if (e.getMessage().contains("You get some yew logs.")) {
    			yewsCut ++;
    		}
    	}
    
    	public int closestTree(RSTile[] tiles) {
    		int closest = -1;
    		for(int i = 0; i < tiles.length; i++) {
    			RSTile tile = tiles[i];
    			if(getObjectAt(tile) != null) {
    				if(closest == -1 && isTree(getObjectAt(tile).getID())) {
    					closest = i;
    					continue;
    				}
    				if(closest == -1) {
    					continue;
    				}
    				if(isTree(getObjectAt(tile).getID()) &&
    						distanceTo(getObjectAt(tile)) < distanceTo(getObjectAt(tiles[closest])))
    					closest = i;
    			}
    		}
    		return closest;
    	}
    
    	public boolean isTree(int treeID) {
    		for(int id : yewTree) {
    			if(id == treeID)
    				return true;
    		}
    		return false;
    	}
    
    	public int loop( ) {
    		try {
    		RSObject bankBooth = findObject(bankID);
    
    		if (getEnergy() > random(40, 60)) {
    			setRun(true);
    		}
    
    		if (getMyPlayer().isInCombat()) {
    			RSTile previousLoc = getMyPlayer().getLocation();
    			int runX = getMyPlayer().getLocation().getX() + 15;
    			int runY = getMyPlayer().getLocation().getY();
    			RSTile runLoc = new RSTile(runX, runY);
    			try {
    				setRun(true);
    				walkTileMM(runLoc);
    				wait(random(2000, 3000));
    				walkTileMM(previousLoc);
    			}
    			catch (Exception e) {}
    		}
    
    
    		if (!isInventoryFull() && distanceBetween(getMyPlayer().getLocation(), treeLocs[3]) > 15) {
    			try {
    				bank2Trees.walkToEnd();
    			}
    			catch (Exception e) {}
    		}
    		if (isInventoryFull() && distanceBetween(getMyPlayer().getLocation(), new RSTile(2809, 3440)) > 10) {
    			try {
    				trees2Bank.walkToEnd();
    			}
    			catch (Exception e) {}
    		}
    
    		if (distanceBetween(getMyPlayer().getLocation(), new RSTile(2809, 3440)) <= 10) {
    			log("We are at the bank.");
    			if (isInventoryFull()) {
    				if (RSInterface.getInterface(INTERFACE_BANK).isValid()) {
    					try {
    						bank.depositAllExcept(axeID);
    					}
    					catch (Exception e) {}
    				}
    				if (tileOnScreen(bankBooth.getLocation())) {
    					atObject(bankBooth, "use-quickly");
    					wait(random(1000, 2000));
    				}
    				if (!tileOnScreen(bankBooth.getLocation())) {
    					try {
    						walkTileMM(bankBooth.getLocation());
    						wait(random(1000, 2000));
    					}
    					catch (Exception e) {}
    				}
    
    			}
    			if (!isInventoryFull()) {
    				try {
    					bank2Trees.walkToEnd();
    				}
    				catch (Exception e) {}
    			}
    		}
    
    		if (distanceBetween(getMyPlayer().getLocation(), treeLocs[3]) < 15) {
    			if (!isInventoryFull()) {
    				int treeIndex = closestTree(treeLocs);
    				if(treeIndex == -1 && getMyPlayer().getAnimation() != -1)
    					walkTileMM(treeLocs[random(0, treeLocs.length-1)]);
    				if(treeIndex != -1 && distanceTo(treeLocs[treeIndex]) <= 14) {
    					if(getMyPlayer().getAnimation() != -1 && lastTreeIndex == treeIndex)
    						return random (100, 200);
    					lastTreeIndex = treeIndex;
    					if(tileOnScreen(treeLocs[treeIndex])) {
    						atTile(treeLocs[treeIndex], "chop");
    						return random(500, 1000);
    					}
    					walkTileMM(treeLocs[treeIndex]);
    					return random(100, 200);
    				}
    			}
    			if (isInventoryFull()) {
    				try {
    					trees2Bank.walkToEnd();
    				}
    				catch (Exception e) {}
    			}
    		}
    		}
    		catch (Exception e) {}
    
    		return( random(500, 1000) );
    	}
    
    	public void onRepaint( Graphics g ) {
    		g.drawString("Woodcutting lvl: " + skills.getCurrentSkillLevel(STAT_WOODCUTTING), 9, 316);
    		g.drawString("Logs chopped: " + (yewsCut / 2), 9, 331);
    	}
    }

    Script Name - Allkharid Smelter v.1.2
    Author - Fusion89k
    Code -

    Code:
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.Point;
    import java.awt.event.KeyEvent;
    import java.util.Map;
    
    import com.speljohan.rsbot.bot.Bot;
    import com.speljohan.rsbot.event.events.ServerMessageEvent;
    import com.speljohan.rsbot.event.listeners.PaintListener;
    import com.speljohan.rsbot.event.listeners.ServerMessageListener;
    import com.speljohan.rsbot.script.Script;
    import com.speljohan.rsbot.script.wrappers.RSInterface;
    import com.speljohan.rsbot.script.wrappers.RSObject;
    import com.speljohan.rsbot.script.wrappers.RSTile;
    
    public class AllKharidSmelter extends Script implements ServerMessageListener,
    		PaintListener {
    
    	private char type;
    	private int amount, tries = 0, smelted = 0, oreOne, oreTwo, busy = 0;
    	private RSTile bankTile = new RSTile(3271, 3169), midTile = new RSTile(
    			3277, 3176), furnaceTile = new RSTile(3276, 3186),
    			furnaceClick = new RSTile(3273, 3186);
    	private final int bankID = 35647, wait1 = 500, wait2 = 800, ringID = 2568,
    			barID = 2353, cannonMould = 4;
    	private final long startTime = System.currentTimeMillis();
    	private boolean smelting = false, ring = false;
    	private String bar, doing;
    
    	public String getName() {
    		return "All Kharid Smelter";
    	}
    
    	public String getAuthor() {
    		return "Fusion89k";
    	}
    
    	public double getVersion() {
    		return 1.3;
    	}
    
    	public String getScriptCategory() {
    		return "Smelting";
    	}
    
    	public String getScriptDescription() {
    		return "<html>\n"
    				+ "<head></head>\n"
    				+ "<body>\n"
    				+ "<center>"
    				+ "<h2>"
    				+ getName()
    				+ "</h2>"
    				+ "</center>\n"
    				+ "<b>Author:</b> "
    				+ getAuthor()
    				+ "<br />"
    				+ "<b>Version:</b> "
    				+ getVersion()
    				+ "<br><form>"
    				+ "Bar Type: <select name=\"bar\">"
    				+ "<option>Bronze<option>Iron<option>Steel<option>Mithril<option>Adamant<option>Rune<option>CannonBall"
    				+ "</select>"
    				+ "<br>How many ores you have:<input type=\"text\" name=\"amount\"size=\"8\">"
    				+ "<br>Ring of Forging: <input type=\"checkbox\" name=\"ring\" value=\"1\">"
    				+ "</form></body>\n" + "</html>";
    	}
    
    	public boolean onStart(Map<String, String> args) {
    		doing = "Starting";
    		bar = args.get("bar");
    		type = bar.toLowerCase().charAt(0);
    		try {
    			log(args.get("amount"));
    			amount = Integer.parseInt(args.get("amount"));
    		} catch (Exception e) {
    			log("Invalid Amount");
    			return false;
    		}
    		if (args.get("ring") != null)
    			ring = true;
    		Bot.getEventManager().addListener(PaintListener.class, this);
    		return true;
    	}
    
    	public void onFinish() {
    		Bot.getEventManager().removeListener(PaintListener.class, this);
    	}
    
    	public int loop() {
    		setCameraAltitude(true);
    		setCompass('w');
    		if (amount <= 0) {
    			log("Out of Ore");
    			stopAllScripts();
    		}
    		if (!isRunning() && getEnergy() >= random(40, 100) && !smelting)
    			setRun(true);
    		if (getMyPlayer().isMoving())
    			return random(0, 150);
    		if (smelting && getMyPlayer().getAnimation() == -1)
    			busy++;
    		else
    			busy = 0;
    		if (smelting && busy > 5) {
    			busy = 0;
    			smelting = false;
    		}
    		if (!canMakeBar()) {
    			busy = 5;
    			smelting = false;
    			if (distanceTo(bankTile) > 4) {
    				doing = "Walking to Bank";
    				walkTileMM(locate(true));
    				return random(wait1, wait2);
    			}
    			if (!RSInterface.getInterface(INTERFACE_BANK).isValid()) {
    				doing = "Finding Bank";
    				RSObject booth = findObject(bankID);
    				if (booth == null)
    					return random(wait1, wait2);
    				atObject(booth, "Use-Quickly");
    				return random(wait1, wait2);
    			}
    			if (RSInterface.getInterface(INTERFACE_BANK).isValid()) {
    				doing = "Depositing";
    				bank.depositAllExcept(453);
    				doing = "Withdrawing";
    				withdrawOre();
    				pause();
    				if (!canMakeBar()) {
    					tries++;
    					return random(wait1, wait2);
    				}
    				tries = 0;
    				doing = "Closing Bank";
    				bank.close();
    			}
    			return random(wait1, wait2);
    		} else {
    			if (smelting) {
    				busy = 0;
    				return random(wait1, wait2);
    			}
    			if (distanceTo(furnaceTile) > 4) {
    				doing = "Walking to Furnace";
    				walkTileMM(locate(false));
    				return random(wait1, wait2);
    			}
    			if (!RSInterface.getInterface(INTERFACE_SMELTINGSCREEN).isValid()) {
    				if (getMyPlayer().getAnimation() != -1) {
    					busy = 0;
    					smelting = true;
    					return random(wait1, wait2);
    				}
    				doing = "Finding Furnace";
    				if (type == 'c') {
    					useItemCustom(barID, furnaceClick);
    					wait(random(wait1, wait2));
    					smeltOre();
    				} else
    					atTile(furnaceClick, "Smelt");
    				return random(wait1, wait2);
    			}
    			if (RSInterface.getInterface(INTERFACE_SMELTINGSCREEN).isValid())
    				smeltOre();
    			return random(wait1, wait2);
    		}
    	}
    
    	private void smeltOre() {
    		doing = "Smelting";
    		int minX = 28, maxX = 78;
    		int minY = 390, maxY = 457;
    		switch (type) {
    		case 'i':// Iron
    			minX = 130;
    			maxX = 178;
    			break;
    		case 's':// Steel
    			minX = 234;
    			maxX = 279;
    			break;
    		case 'm':// Mithril
    			minX = 338;
    			maxX = 387;
    			break;
    		case 'a':// Adamant
    			minX = 390;
    			maxX = 441;
    			break;
    		case 'r':// Rune
    			minX = 442;
    			maxX = 496;
    			break;
    		case 'c':
    			minX = 88;
    			maxX = 429;
    			clickMouse(new Point(random(minX, maxX), random(minY, maxY)), false);
    			wait(random(100, 200));
    			atMenu("All");
    			smelting = true;
    			return;
    		}
    		clickMouse(new Point(random(minX, maxX), random(minY, maxY)), false);
    		int ore1 = getInventoryArray()[1];
    		int temp = getInventoryCount(ore1);
    		if (getInventoryCount(ore1) > 10)
    			temp = random(getInventoryCount(ore1), getInventoryCount(ore1) + 5);
    		if (temp == 1)
    			atMenu("1");
    		else if (temp <= 10)
    			atMenu("10");
    		else {
    			atMenu("Smelt x");
    			pause();
    			pause();
    			if (!sendTextCustom("" + temp)) {
    				smeltOre();
    			}
    		}
    		smelting = true;
    	}
    
    	private void withdrawOre() {
    		int x = random(38, 73), y = random(92, 123);
    		int x2 = random(82, 117), y2 = random(92, 123);
    		switch (type) {
    		case 'b':
    			if (getInventoryCount(oreOne) < 1) {
    				clickMouse(x, y, false);
    				if (getMenuIndex("14") < 0 || amount < 14) {
    					atMenu("X");
    					pause();
    					pause();
    					if (!sendTextCustom(amount < 14 ? "" + amount : "14"))
    						withdrawOre();
    				} else
    					atMenu("14");
    				pause();
    				if (getInventoryCount(oreOne) < 1)
    					withdrawOre();
    			}
    			if (amount <= 14)
    				clickMouse(x, y, false);
    			else
    				clickMouse(x2, y2, false);
    			atMenu("All");
    			break;
    		case 'i':
    			if (ring && !isCarryingItem(ringID)) {
    				clickMouse(x2, y2, false);
    				atMenu("1");
    				bank.close();
    				atInventoryItem(ringID, "Wear");
    				break;
    			}
    			clickMouse(x, y, false);
    			atMenu("All");
    			break;
    		case 's':
    			if (getInventoryCount(oreOne) < 1) {
    				clickMouse(x, y, false);
    				if (getMenuIndex("9") < 0 || amount < 9) {
    					atMenu("X");
    					pause();
    					pause();
    					if (!sendTextCustom(amount < 9 ? "" + amount : "9"))
    						withdrawOre();
    				} else
    					atMenu("9");
    				pause();
    				if (getInventoryCount(oreOne) < 1)
    					withdrawOre();
    			}
    			if (amount <= 9)
    				clickMouse(x, y, false);
    			else
    				clickMouse(x2, y2, false);
    			atMenu("All");
    			break;
    		case 'm':
    			if (getInventoryCount(oreOne) < 1) {
    				clickMouse(x, y, false);
    				if (getMenuIndex("5") < 0 || amount < 5) {
    					atMenu("X");
    					pause();
    					pause();
    					if (!sendTextCustom(amount < 5 ? "" + amount : "5"))
    						withdrawOre();
    				} else
    					atMenu("5");
    				pause();
    				if (getInventoryCount(oreOne) < 1)
    					withdrawOre();
    			}
    			if (amount <= 5)
    				clickMouse(x, y, false);
    			else
    				clickMouse(x2, y2, false);
    			atMenu("All");
    			break;
    		case 'a':
    			if (getInventoryCount(oreOne) < 1) {
    				clickMouse(x, y, false);
    				if (getMenuIndex("4") < 0 || amount < 4) {
    					atMenu("X");
    					pause();
    					pause();
    					if (!sendTextCustom(amount < 4 ? "" + amount : "4"))
    						withdrawOre();
    				} else
    					atMenu("4");
    				pause();
    				if (getInventoryCount(oreOne) < 1)
    					withdrawOre();
    			}
    			if (amount <= 4)
    				clickMouse(x, y, false);
    			else
    				clickMouse(x2, y2, false);
    			atMenu("All");
    			break;
    		case 'r':
    			if (getInventoryCount(oreOne) < 1) {
    				clickMouse(x, y, false);
    				if (getMenuIndex("3") < 0 || amount < 3) {
    					atMenu("X");
    					pause();
    					pause();
    					if (!sendTextCustom(amount < 3 ? "" + amount : "3"))
    						withdrawOre();
    				} else
    					atMenu("3");
    				pause();
    				if (getInventoryCount(oreOne) < 1)
    					withdrawOre();
    			}
    			if (amount <= 3)
    				clickMouse(x, y, false);
    			else
    				clickMouse(x2, y2, false);
    			atMenu("All");
    			break;
    		case 'c':
    			if (getInventoryCount(4) < 1) {
    				clickMouse(x2, y2, true);
    				withdrawOre();
    			} else {
    				clickMouse(x, y, false);
    				atMenu("All");
    			}
    			break;
    		}
    	}
    
    	private boolean canMakeBar() {
    		oreTwo = 453;
    		int coal = getInventoryCount(oreTwo);
    		switch (type) {
    		case 'b':
    			oreOne = 436;
    			oreTwo = 438;
    			int copper = getInventoryCount(oreOne),
    			tin = getInventoryCount(oreTwo);
    			if (copper == 0 || tin == 0)
    				return false;
    			break;
    		case 'i':
    			oreOne = 440;
    			oreTwo = 0;
    			int iron = getInventoryCount(oreOne);
    			if (iron <= 0)
    				return false;
    			break;
    		case 's':
    			oreOne = 440;
    			int steel = getInventoryCount(oreOne);
    			if (coal < steel * 2 || steel == 0)
    				return false;
    			break;
    		case 'm':
    			oreOne = 447;
    			int mith = getInventoryCount(oreOne);
    			if (coal < mith * 4 || mith == 0)
    				return false;
    			break;
    		case 'a':
    			oreOne = 449;
    			int addy = getInventoryCount(oreOne);
    			if (coal < addy * 6 || addy == 0)
    				return false;
    			break;
    		case 'r':
    			oreOne = 451;
    			int rune = getInventoryCount(oreOne);
    			if (coal < rune * 8 || rune == 0)
    				return false;
    			break;
    		case 'c':
    			if (!inventoryContains(barID) || !inventoryContains(cannonMould))
    				return false;
    			break;
    		}
    		return true;
    	}
    
    	private RSTile locate(boolean bankB) {
    		int first = distanceTo(furnaceTile), second = distanceTo(midTile), third = distanceTo(bankTile);
    		if (first < 4)
    			first = 999;
    		if (second < 4)
    			second = 999;
    		if (third < 4)
    			third = 999;
    		if (bankB)
    			return randomTile(bankTile);
    		else {
    			int close = Math.min(first, Math.min(second, third));
    			if (close == second)
    				return randomTile(midTile);
    			else {
    				return randomTile(furnaceTile);
    			}
    		}
    	}
    
    	private RSTile randomTile(RSTile tile) {
    		return new RSTile(random(tile.getX() - 2, tile.getX() + 2), random(tile
    				.getY() - 2, tile.getY() + 2));
    	}
    
    	private void pause() {
    		wait(random(wait1, wait2));
    	}
    
    	private void useItemCustom(int item, RSTile tile) {
    		if (getCurrentTab() != TAB_INVENTORY) {
    			openTab(TAB_INVENTORY);
    		}
    		atInventoryItem(item, "Use");
    		atTile(tile, "furnace");
    	}
    
    	private boolean sendTextCustom(String text) {
    		sendText(text, false);
    		String sent = RSInterface.getChildInterface(137, 51).getText();
    		if (Character.toString(sent.charAt(sent.length() - 2)).equals(">")) {
    			sendKey((char) KeyEvent.VK_ENTER);
    			return true;
    		}
    		for (int i = 0; i < 5; i++) {
    			sendKey((char) KeyEvent.VK_BACK_SPACE);
    		}
    		return false;
    	}
    
    	public void serverMessageRecieved(ServerMessageEvent e) {
    		String word = e.getMessage().toLowerCase();
    		if (word.contains("retrieve")) {
    			smelted++;
    			amount--;
    		} else if (word.contains("advanced")) {
    			smelting = false;
    		} else if (word.contains("fail"))
    			amount--;
    		else if (word.contains("cannon")) {
    			amount--;
    			smelted++;
    		} else if (word.contains("space")) {
    			int full = getInventoryCount(getInventoryArray()[getInventoryArray().length - 1]);
    			switch (type) {
    			case 'b':
    				if (full <= 14)
    					return;
    			case 's':
    				if (full <= 19)
    					return;
    			case 'm':
    				if (full <= 23)
    					return;
    			case 'a':
    				if (full <= 24)
    					return;
    			case 'r':
    				if (full <= 25)
    					return;
    			}
    			bank.depositAll();
    		}
    	}
    
    	public void onRepaint(Graphics g) {
    		if (isLoggedIn()) {
    			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;
    			int topX = 515 - 173, topY = 337 - 80, x = topX + 5, y = topY + 5;
    			g.setColor(new Color(0, 100, 0, 100));
    			g.fill3DRect(topX, topY, 515 - topX, 337 - topY, true);
    			g.setColor(Color.green);
    			g.drawString("Runtime: " + hours + "h " + minutes + "min "
    					+ seconds + "sec.", x, y += 15);
    			g.drawString("Ore Left: " + Integer.toString(amount), x, y += 15);
    			g.drawString("Bars: " + Integer.toString(smelted) + " " + bar
    					+ " Bars.", x, y += 15);
    			g.drawString("Status: " + doing, x, y += 15);
    		}
    	}
    }


    Script Name - Allkharid Smelter v.2.2
    Author - Fusion89k
    Code -

    Code:
    import java.applet.Applet;
    import java.awt.Color;
    import java.awt.FlowLayout;
    import java.awt.Graphics;
    import java.awt.Point;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.MouseEvent;
    import java.util.ArrayList;
    import java.util.Map;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JTextField;
    
    import com.speljohan.rsbot.bot.Bot;
    import com.speljohan.rsbot.event.events.ServerMessageEvent;
    import com.speljohan.rsbot.event.listeners.PaintListener;
    import com.speljohan.rsbot.event.listeners.ServerMessageListener;
    import com.speljohan.rsbot.script.Constants;
    import com.speljohan.rsbot.script.Script;
    import com.speljohan.rsbot.script.wrappers.RSInterface;
    import com.speljohan.rsbot.script.wrappers.RSObject;
    import com.speljohan.rsbot.script.wrappers.RSTile;
    
    public class AlKharidSmelter extends Script implements PaintListener,
            ServerMessageListener {
    
        private JFrame frame;
        private final int bank_Windows = 35647, coal = 453, furnaceO = 11669,
                ring_ID = 2568;
        private final long startTime = System.currentTimeMillis();
        private RSTile furnace_Tile = new RSTile(3273, 3186);
        private final int to_Bank = 1, banking = 2, to_Furnace = 3, smelting = 4,
                counting = 5, done = 6, stop = 7;
        private int state = 0, tries = 0, ore1 = 0, ore2 = 0, ore_Amount,
                ore_Type = 0, count = 0, ore1_Note, ore2_Note, smelted = 0,
                need1_Amount, need2_Amount;
        private String ore1_Name, ore2_Name, doing = "Nothing";
        private boolean need_Ore1 = false, need_Ore2 = false, need_Smelt = false,
                need_Bank = false, at_Bank = false, at_Furnace = false,
                get_Count = false, use_Ring = false, need_Ring = false,
                first_Run = true, wait_Done = false, wait_Stopped = false,
                on_Tab = false, use_Search = false;
        private final RSTile[] path = new RSTile[] { new RSTile(3270, 3173),
                new RSTile(3275, 3186) };
        private Point bank_Ore1, bank_Ore2, first_Tab = new Point(50, 60);
        private int bank_Tab = 0;
    
        public String getName() {
            return "Al Kharid Smelter";
        }
    
        public String getAuthor() {
            return "Fusion89k";
        }
    
        public double getVersion() {
            return 2.2;
        }
    
        public String getScriptCategory() {
            return "Smelting";
        }
    
        public String getScriptDescription() {
            Object o = parameters.get("description");
            return o instanceof String ? (String) o
                    : "<html>"
                            + "<head></head>"
                            + "<body>"
                            + "<table style=\"text-align: left; width: 100%; height: 10px;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">"
                            + "<tr>"
                            + "<td style=\"background-color: rgb(78, 150, 138);\" align=\"center\"><h2>"
                            + getName()
                            + "</h2></td>"
                            + "</tr>"
                            + "<tr>"
                            + "<td style=\"background-color: rgb(95, 181, 167);\"><b>Autor</b> "
                            + getAuthor()
                            + "<br /><b>Version:</b> "
                            + getVersion()
                            + "<br /><b>Aruments by:</b> Bite</b></td>"
                            + "</tr>"
                            + "<tr>"
                            + "<td style=\"background-color: rgb(78, 150, 138);\" align=\"center\"><h3>Options</h3></td>"
                            + "</tr>"
                            + "<tr>"
                            + "<td style=\"background-color: rgb(95, 181, 167);\">"
                            + "<form>Bar Type:"
                            + "<select name=\"type\">"
                            + "<option name=\"type\" value=\"Bronze\">Bronze</option>"
                            + "<option name=\"type\" value=\"Iron\">Iron</option>"
                            + "<option name=\"type\" value=\"Steel\">Silver</option>"
                            + "<option name=\"type\" value=\"Silver\">Steel</option>"
                            + "<option name=\"type\" value=\"Gold\">Gold</option>"
                            + "<option name=\"type\" value=\"\" mithril=\"\">Mithril</option>"
                            + "<option name=\"type\" value=\"\" adamant=\"\">Adamant</option>"
                            + "<option name=\"type\" value=\"\" rune=\"\">Rune</option>"
                            + "</select>"
                            + "<br />"
                            + "Auto Count:<input name=\"auto\" value=\"1\" checked=\"checked\" type=\"checkbox\"><br />"
                            + "Ring of Forging:<input name=\"ring\" value=\"1\" type=\"checkbox\">"
                            + "<br/>Search:<input name\"search\" value=\"1\" type=\"checkbox\">"
                            + "</form>"
                            + "</td>"
                            + "</tr>"
                            + "<tr>"
                            + "<td style=\"background-color: rgb(78, 150, 138);\" align=\"center\"><h3>Features</h3></td>"
                            + "</tr>"
                            + "<tr>"
                            + "<td style=\"background-color: rgb(95, 181, 167);\">"
                            + "*Can Smelt Any bar<br />"
                            + "* AWEOME BANKING<br />"
                            + "* Auto Counter or Manual Count<br />"
                            + "* Ring of Forging Supported<br />"
                            + "* Pretty Paint<br />"
                            + "</td>"
                            + "</tr>"
                            + "</tbody>"
                            + "</table>"
                            + "<br />"
                            + "</body>"
                            + "</html>";
        }
    
        public boolean onStart(Map<String, String> args) {
            int tip = 0;
            if (args.get("type").equals("Bronze"))
                tip = 1;
            else if (args.get("type").equals("Iron"))
                tip = 2;
            else if (args.get("type").equals("Silver"))
                tip = 3;
            else if (args.get("type").equals("Steel"))
                tip = 4;
            else if (args.get("type").equals("Gold"))
                tip = 5;
            else if (args.get("type").equals("Mithril"))
                tip = 6;
            else if (args.get("type").equals("Adamant"))
                tip = 7;
            else if (args.get("type").equals("Rune"))
                tip = 8;
            ore_Type = tip;
            switch (tip) {
            case 1:
                ore_Amount = 14;
                ore1 = 436;
                ore2 = 438;
                ore1_Name = "Copper";
                ore2_Name = "Tin";
                ore1_Note = 437;
                ore2_Note = 439;
                break;
            case 2:
                ore_Amount = 28;
                ore1 = 440;
                ore1_Name = "Iron";
                ore1_Note = 441;
                break;
            case 3:
                ore_Amount = 28;
                ore1 = 442;
                ore1_Name = "Silver";
                ore1_Note = 443;
                break;
            case 4:
                ore_Amount = 9;
                ore1 = 440;
                ore2 = coal;
                ore1_Name = "Iron";
                ore2_Name = "Coal";
                ore1_Note = 441;
                ore2_Note = 454;
                break;
            case 5:
                ore_Amount = 28;
                ore1 = 444;
                ore1_Name = "Gold";
                ore1_Note = 445;
                ore2_Note = 454;
                break;
            case 6:
                ore_Amount = 5;
                ore1 = 447;
                ore2 = coal;
                ore1_Name = "Mithril";
                ore2_Name = "Coal";
                ore1_Note = 448;
                ore2_Note = 454;
    
                break;
            case 7:
                ore_Amount = 4;
                ore1 = 449;
                ore2 = coal;
                ore1_Name = "Adamantite";
                ore2_Name = "Coal";
                ore1_Note = 450;
                ore2_Note = 454;
                break;
            case 8:
                ore_Amount = 3;
                ore1 = 451;
                ore2 = coal;
                ore1_Name = "Runite";
                ore2_Name = "Coal";
                ore1_Note = 452;
                ore2_Note = 454;
                break;
    
            }
            if (args.get("auto") == null) {
                showBox();
                pause();
                while (frame.isVisible()) {
                    pause();
                }
            } else
                get_Count = true;
            if (args.get("ring") != null) {
                use_Ring = true;
            }
            if (args.get("search") == null)
                use_Search = false;
            else
                use_Search = true;
            setCameraAltitude(true);
            setCompass('n');
            Bot.getEventManager().addListener(PaintListener.class, this);
            return true;
        }
    
        public void onFinish() {
            Bot.getEventManager().removeListener(PaintListener.class, this);
        }
    
        public int loop() {
            locate();
            tries = 0;
            if (first_Run && !get_Count && !need_Smelt) {
                if (!RSInterface.getInterface(INTERFACE_BANK).isValid()) {
                    RSObject booth = findObject(bank_Windows);
                    if (distanceTo(booth) >= 5) {
                        walk(path, false);
                        wait_Stopped = true;
                        return random(700, 900);
                    }
                    atObject(booth, "Use-quickly");
                }
                if (RSInterface.getInterface(INTERFACE_BANK).isValid()) {
                    bank.depositAll();
                    if (bank_Tab == 0) {
                        tabCheck(ore1_Name);
                        if (!on_Tab) {
                            moveOre(ore1);
                        }
                    } else {
                        if (!on_Tab) {
                            clickMouse(bankClick(bank_Tab), true);
                            on_Tab = true;
                        }
                    }
                    if (ore2_Name != null) {
                        if (!on_Tab) {
                            clickMouse(bankClick(bank_Tab), true);
                        }
                        if (!oreCheck(ore2)) {
                            clickMouse(first_Tab, true);
                            smallWait();
                            moveOre(ore2);
                            pause();
                        }
                    }
                    if (use_Ring) {
                        if (!on_Tab) {
                            clickMouse(bankClick(bank_Tab), true);
                        }
                        int temp = ring_ID;
                        if (ore2_Name == null)
                            temp = ore2;
                        if (!oreCheck(temp)) {
                            clickMouse(first_Tab, true);
                            smallWait();
                            moveOre(ring_ID);
                            pause();
                        }
                    }
                }
                first_Run = false;
            }
            if (wait_Done)
                state = done;
            if (wait_Stopped)
                state = stop;
            if (get_Count && !need_Smelt)
                state = counting;
            switch (state) {
            case to_Bank:
                walk(path, false);
                return locate();
            case banking:
                doing = "Banking";
                if (need_Ring)
                    return withdraw(ring_ID, "Ring of Forging");
                if (inventoryContains(ring_ID)) {
                    bank.close();
                    atInventoryItem(ring_ID, "wear");
                    smallWait();
                }
                need1_Amount = ore_Amount - getInventoryCount(ore1);
                if (need_Ore1)
                    return withdraw(ore1, ore1_Name);
                if (getInventoryCount(ore1) < ore_Amount && bank_Ore2 != null)
                    bank_Ore2 = bank_Ore1;
                if (need_Ore2) {
                    int temp = getInventoryCount(ore2);
                    switch (ore_Type) {
                    case 1:
                        need2_Amount = ore_Amount - temp;
                        break;
                    case 4:
                        need2_Amount = ore_Amount * 2 - temp;
                        break;
                    case 6:
                        need2_Amount = ore_Amount * 4 - temp;
                        break;
                    case 7:
                        need2_Amount = ore_Amount * 6 - temp;
                        break;
                    case 8:
                        need2_Amount = ore_Amount * 8 - temp;
                        break;
                    }
                    return withdraw(ore2, ore2_Name);
                }
                return locate();
            case to_Furnace:
                walk(path, true);
                return locate();
            case smelting:
                doing = "Finding Furnace";
                RSObject fur = getObjectAt(furnace_Tile);
                if (distanceTo(fur) >= 5) {
                    walkTileMM(fur.getLocation());
                    wait_Stopped = true;
                    return locate();
                } else {
                    doing = "Smelting";
                    openTab(TAB_INVENTORY);
                    if (getMyPlayer().getAnimation() != -1){
                        wait_Done = true;
                        return locate();
                    }
                    RSTile tempT = new RSTile(fur.getLocation().getX(), fur
                            .getLocation().getY());
                    atTile(tempT, "Smelt");
                    pause();
                    if (RSInterface.getInterface(INTERFACE_SMELTINGSCREEN)
                            .isValid()) {
                        int minX = 28, maxX = 78;
                        int minY = 390, maxY = 457;
                        switch (ore_Type) {
                        case 1:// Bronze
                            clickMouse(new Point(random(minX, maxX), random(minY,
                                    maxY)), false);
                            break;
                        case 2:// Iron
                            minX = 130;
                            maxX = 178;
                            clickMouse(new Point(random(minX, maxX), random(minY,
                                    maxY)), false);
                            break;
                        case 3:// Silver
                            minX = 182;
                            maxX = 229;
                            clickMouse(new Point(random(minX, maxX), random(minY,
                                    maxY)), false);
                            break;
                        case 4:// Steel
                            minX = 234;
                            maxX = 279;
                            clickMouse(new Point(random(minX, maxX), random(minY,
                                    maxY)), false);
                            break;
                        case 5:// Gold
                            minX = 286;
                            maxX = 333;
                            clickMouse(new Point(random(minX, maxX), random(minY,
                                    maxY)), false);
                            break;
                        case 6:// Mithril
                            minX = 338;
                            maxX = 387;
                            clickMouse(new Point(random(minX, maxX), random(minY,
                                    maxY)), false);
                            break;
                        case 7:// Adamant
                            minX = 390;
                            maxX = 441;
                            clickMouse(new Point(random(minX, maxX), random(minY,
                                    maxY)), false);
                            break;
                        case 8:// Rune
                            minX = 442;
                            maxX = 496;
                            clickMouse(new Point(random(minX, maxX), random(minY,
                                    maxY)), false);
                            break;
                        }
                        doing = "Smelting";
                        int temp = random(getInventoryCount(ore1), getInventoryCount(ore1)+5);
                        switch (temp) {
                        case 1:
                            atMenu("1");
                            break;
                        case 5:
                            atMenu("5");
                            break;
                        case 10:
                            atMenu("10");
                            break;
                        default:
                            atMenu("Smelt x");
                            pause();
                            pause();
                            if (checkX()) {
                                sendText("" + temp, true);
                            }
                        }
                        pause();
                        wait_Done = true;
                        return locate();
                    } else
                        return locate();
                }
            case counting:
                locate();
                if (at_Bank) {
                    if (!RSInterface.getInterface(Constants.INTERFACE_BANK)
                            .isValid()) {
                        RSObject booth = findObject(bank_Windows);
                        if (booth == null) {
                            log("Counting Error");
                            walk(path, false);
                        }
                        atObject(booth, "Use-quickly");
                    }
                    if (RSInterface.getInterface(Constants.INTERFACE_BANK)
                            .isValid()) {
                        bank.depositAll();
                        if (use_Search) {
                            bank.searchItem(ore1_Name);
                            while (!inventoryContains(ore1_Note)) {
                                clickMouse(oreClick(ore1), false);
                                smallWait();
                                atMenu("All");
                            }
                            bank.searchItem("");
                            String name = ore2_Name;
                            if (ore_Type == 1)
                                name = ore2_Name + " ore";
                            bank.searchItem(name);
                            while (!inventoryContains(ore2_Note)) {
                                clickMouse(oreClick(ore1), false);
                                smallWait();
                                atMenu("All");
                            }
                            bank.searchItem("");
                            int temp1 = getInventoryCount(ore1_Note);
                            int temp2 = 0;
                            if (ore2_Name != null)
                                temp2 = getInventoryCount(ore2_Note);
                            switch (ore_Type) {
                            case 1:
                                if (temp1 < temp2)
                                    count = temp1;
                                else
                                    count = temp2;
                                break;
                            case 2:
                            case 3:
                            case 5:
                                count = temp1;
                                break;
                            case 4:
                                if (temp1 * 2 < temp2)
                                    count = temp1;
                                else
                                    count = temp2 / 2;
                                break;
                            case 6:
                                if (temp1 * 4 < temp2)
                                    count = temp1;
                                else
                                    count = temp2 / 4;
                                break;
                            case 7:
                                if (temp1 * 6 < temp2)
                                    count = temp1;
                                else
                                    count = temp2 / 6;
                                break;
                            case 8:
                                if (temp1 * 8 < temp2)
                                    count = temp1;
                                else
                                    count = temp2 / 8;
                                break;
                            }
                            if (count <= 0)
                                return locate();
                            bank.depositAll();
                        }
    
                        if (bank_Tab == 0) {
                            tabCheck(ore1_Name);
                            if (!on_Tab) {
                                moveOre(ore1);
                            }
                        } else {
                            if (!on_Tab) {
                                clickMouse(bankClick(bank_Tab), true);
                                on_Tab = true;
                            }
                        }
                        note(true);
                        clickMouse(oreClick(ore1), false);
                        smallWait();
                        atMenu("All but");
                        pause();
                        while (!inventoryContains(ore1_Note)) {
                            clickMouse(oreClick(ore1), false);
                            atMenu("All but");
                            pause();
                        }
                        if (ore2_Name != null) {
                            if (on_Tab) {
                                if (!oreCheck(ore2)) {
                                    clickMouse(first_Tab, true);
                                    smallWait();
                                    moveOre(ore2);
                                    pause();
                                }
                                clickMouse(oreClick(ore2), false);
                                atMenu("All but");
                                pause();
                                while (!inventoryContains(ore2_Note)) {
                                    clickMouse(oreClick(ore2), false);
                                    atMenu("All but");
                                    pause();
                                }
                            } else {
                                clickMouse(bankClick(bank_Tab), true);
                                if (!oreCheck(ore2)) {
                                    clickMouse(first_Tab, true);
                                    smallWait();
                                    moveOre(ore2);
                                    pause();
                                }
                                clickMouse(oreClick(ore2), false);
                                atMenu("All but");
                                pause();
                                while (!inventoryContains(ore2_Note)) {
                                    clickMouse(oreClick(ore2), false);
                                    atMenu("All but");
                                    pause();
                                }
                            }
                        }
                        note(false);
                    }
                    if (use_Ring) {
                        if (!on_Tab)
                            clickMouse(bankClick(bank_Tab), true);
                        int temp = ring_ID;
                        if (ore2_Name == null)
                            temp = ore2;
                        if (!oreCheck(temp)) {
                            clickMouse(first_Tab, true);
                            smallWait();
                            moveOre(ring_ID);
                            pause();
                        }
                    }
                    int temp1 = getInventoryCount(ore1_Note) + 1;
                    int temp2 = 0;
                    if (ore2_Name != null)
                        temp2 = getInventoryCount(ore2_Note) + 1;
                    switch (ore_Type) {
                    case 1:
                        if (temp1 < temp2)
                            count = temp1;
                        else
                            count = temp2;
                        break;
                    case 2:
                    case 3:
                    case 5:
                        count = temp1;
                        break;
                    case 4:
                        if (temp1 * 2 < temp2)
                            count = temp1;
                        else
                            count = temp2 / 2;
                        break;
                    case 6:
                        if (temp1 * 4 < temp2)
                            count = temp1;
                        else
                            count = temp2 / 4;
                        break;
                    case 7:
                        if (temp1 * 6 < temp2)
                            count = temp1;
                        else
                            count = temp2 / 6;
                        break;
                    case 8:
                        if (temp1 * 8 < temp2)
                            count = temp1;
                        else
                            count = temp2 / 8;
                        break;
                    }
                    if (count <= 0)
                        return locate();
                    bank.depositAll();
                    get_Count = false;
                    first_Run = false;
                    return locate();
                } else {
                    walk(path, false);
                    return locate();
                }
            case done:
                pause();
                if (getMyPlayer().getAnimation() == -1) {
                    pause();
                    locate();
                    if (getMyPlayer().getAnimation() == -1)
                        wait_Done = false;
                }
                if (random(1, 7) == 3)
                    antiBan();
                return random(700, 900);
            case stop:
                if (!getMyPlayer().isMoving())
                    wait_Stopped = false;
                return random(700, 900);
            default:
                return locate();
            }
        }
    
        private int locate() {
            if (getInventoryCount(ore1) < 1)
                need_Ore1 = true;
            else
                need_Ore1 = false;
            if (use_Ring && !inventoryContains(ring_ID))
                need_Ring = true;
            switch (ore_Type) {
            case 1:
                if (getInventoryCount(ore2) < 1)
                    need_Ore2 = true;
                else
                    need_Ore2 = false;
                break;
            case 4:
                if (getInventoryCount(ore2) / 2 < getInventoryCount(ore1))
                    need_Ore2 = true;
                else
                    need_Ore2 = false;
                break;
            case 6:
                if (getInventoryCount(ore2) / 4 < getInventoryCount(ore1))
                    need_Ore2 = true;
                else
                    need_Ore2 = false;
                break;
            case 7:
                if (getInventoryCount(ore2) / 6 < getInventoryCount(ore1))
                    need_Ore2 = true;
                else
                    need_Ore2 = false;
                break;
            case 8:
                if (getInventoryCount(ore2) / 8 < getInventoryCount(ore1))
                    need_Ore2 = true;
                else
                    need_Ore2 = false;
                break;
            }
            if (need_Ore1 || need_Ore2) {
                need_Bank = true;
                need_Smelt = false;
            } else {
                need_Bank = false;
                need_Smelt = true;
            }
            if (distanceTo(findObject(bank_Windows)) <= 8) {
                at_Bank = true;
                at_Furnace = false;
            } else if (distanceTo(findObject(furnaceO)) <= 8) {
                at_Bank = false;
                at_Furnace = true;
            } else {
                at_Bank = false;
                at_Furnace = false;
            }
    
            if ((count <= 0 && !get_Count) && !need_Smelt) {
                log("Out of Ore");
                stopAllScripts();
                return -1;
            } else if (get_Count && count > 0)
                get_Count = false;
    
            if (get_Count)
                state = counting;
            else if (need_Bank && at_Bank)
                state = banking;
            else if (need_Bank && !at_Bank)
                state = to_Bank;
            else if (need_Smelt && at_Furnace)
                state = smelting;
            else if (need_Smelt && !at_Furnace)
                state = to_Furnace;
            else
                state = 0;
            return 100;
        }
    
        private int withdraw(int id, String name) {
            doing = "Withdrawing " + name;
            tries++;
            if (tries > 5) {
                log("Bank Error");
                return -1;
            }
            if (!RSInterface.getInterface(Constants.INTERFACE_BANK).isValid()) {
                RSObject booth = findObject(bank_Windows);
                if (booth == null) {
                    walk(path, false);
                    pause();
                    waitTilStopped();
                    withdraw(id, name);
                } else if (distanceTo(booth) >= 5) {
                    walkTileMM(booth.getLocation());
                    pause();
                    waitTilStopped();
                    withdraw(id, name);
                } else
                    atObject(booth, "Use-quickly");
            }
            if (RSInterface.getInterface(Constants.INTERFACE_BANK).isValid()) {
                String temp = doing;
                doing = "Depositing Items";
                bank.depositAllExcept(ore1, ore2, ring_ID);
                if (getInventoryCount(ore1) > ore_Amount) {
                    depositX(ore1, getInventoryCount(ore1) - ore_Amount);
                }
                if (!oreCheck(ore2) && !use_Search) {
                    clickMouse(bankClick(bank_Tab), true);
                }
                note(false);
                Point click;
                int need;
                if (id == ore1)
                    need = need1_Amount;
                else if (id == ore2)
                    need = need2_Amount;
                else
                    need = 1;
                if (!use_Search) {
                    if (id == ore1)
                        click = oreClick(ore1);
                    else if (id == ore2)
                        click = oreClick(ore2);
                    else {
                        if (ore2_Name == null)
                            click = oreClick(ore2);
                        else
                            click = oreClick(ring_ID);
                    }
                } else {
                    bank.searchItem(name);
                    click = oreClick(ore1);
                }
                tries = 0;
                while (getInventoryCount(id) < need) {
                    doing = temp;
                    if (tries > 6) {
                        log("Withdrawing " + name + " Error");
                        stopAllScripts();
                    }
                    clickMouse(click, false);
                    if (id == ore2) {
                        switch (need2_Amount) {
                        case 1:
                            atMenu("1");
                            break;
                        case 5:
                            atMenu("5");
                        case 10:
                            atMenu("10");
                            break;
                        default:
                            atMenu("All");
                        }
                        pause();
                    } else if (name.contains("of")) {
                        atMenu("1");
                        pause();
                    } else {
                        if (ore_Amount >= 28 && getMenuIndex("28") == -1
                                && need1_Amount >= 28)
                            atMenu("All");
                        else if (ore_Amount >= 28 && need1_Amount >= 28)
                            atMenu("28");
                        else {
                            switch (need1_Amount) {
                            case 1:
                                atMenu("1");
                                break;
                            case 5:
                                atMenu("5");
                                break;
                            case 10:
                                atMenu("10");
                                break;
                            default:
                                if (getMenuIndex("" + ore_Amount) == -1) {
                                    atMenu("x");
                                    pause();
                                    pause();
                                    if (checkX()) {
                                        if (count < ore_Amount)
                                            ore_Amount = count;
                                        sendText("" + ore_Amount, true);
                                        pause();
                                    }
                                } else
                                    atMenu("" + ore_Amount);
                                break;
                            }
                        }
                    }
                    pause();
                    tries++;
                }
            } else {
                if (use_Search)
                    bank.searchItem("");
                withdraw(id, name);
            }
            if (use_Search)
                bank.searchItem("");
            return locate();
        }
    
        private void depositX(int ore, int diff) {
            while (true) {
                atInventoryItem(ore, "x");
                pause();
                if (checkX()) {
                    sendText("" + diff, true);
                    pause();
                    break;
                }
            }
        }
    
        private void walk(RSTile[] path, boolean toEnd) {
            locate();
            String run;
            if (toEnd && at_Furnace)
                return;
            if (!toEnd && at_Bank)
                return;
            if (RSInterface.getInterface(INTERFACE_BANK).isValid())
                bank.close();
            int index = 0;
            for (int I = 1; I < path.length; I++) {
                if (distanceTo(path[I]) < distanceTo(path[index]))
                    index = I;
            }
            if (toEnd) {
                openTab(TAB_INVENTORY);
                for (int I = index; I < path.length; I++) {
                    checkRun();
                    if (isRunning())
                        run = "Running";
                    else
                        run = "Walking";
                    doing = run + " to Furnace";
                    RSTile start = getMyPlayer().getLocation();
                    RSTile click = new RSTile(path[I].getX() + random(-2, 2),
                            path[I].getY() + random(-2, 2));
                    if (I == path.length - 1)
                        while (!checkClick(click)) {
                            click = new RSTile(path[I].getX() + random(-2, 2),
                                    path[I].getY() + random(-2, 2));
                        }
                    walkTileMM(click);
                    pause();
                    waitTilThere(click, start);
                }
                if (distanceTo(path[path.length - 1]) >= 5) {
                    walk(path, toEnd);
                }
            } else {
                for (int I = index; I > -1; I--) {
                    checkRun();
                    if (isRunning())
                        run = "Running";
                    else
                        run = "Walking";
                    doing = run + " to Bank";
                    RSTile start = getMyPlayer().getLocation();
                    RSTile click = new RSTile(path[I].getX() + random(-2, 2),
                            path[I].getY() + random(-2, 2));
                    walkTileMM(click);
                    pause();
                    waitTilThere(click, start);
                }
                if (distanceTo(path[0]) >= 5) {
                    walk(path, toEnd);
                }
            }
        }
    
        private void pause() {
            wait(random(900, 1100));
        }
    
        private void smallWait() {
            wait(random(100, 150));
        }
    
        private void checkRun() {
            if (RSInterface.getInterface(Constants.INTERFACE_BANK).isValid())
                return;
            if (isRunning())
                return;
            if (getEnergy() < 40)
                return;
            setRun(true);
            openTab(TAB_INVENTORY);
        }
    
        private boolean isNote() {
            int temp = RSInterface.getChildInterface(762, 16).getBackgroundColor();
            if (temp != 1431)
                return true;
            else
                return false;
        }
    
        private void note(boolean what) {
            if (what) {
                while (!isNote()) {
                    clickMouse(random(225, 259), random(291, 325), true);
                    pause();
                }
            } else {
                while (isNote()) {
                    clickMouse(random(225, 259), random(291, 325), true);
                    pause();
                }
            }
    
        }
    
        private void waitTilThere(RSTile there, RSTile start) {
            while (true) {
                if (distanceTo(there) <= 4)
                    waitTilStopped();
                pause();
                if (!getMyPlayer().isMoving()) {
                    if (distanceTo(start) <= 4 || distanceTo(there) <= 4)
                        break;
                }
    
            }
        }
    
        private void waitTilStopped() {
            while (true) {
                if (!getMyPlayer().isMoving())
                    break;
                pause();
            }
    
        }
    
        private boolean checkX() {
            if (RSInterface.getChildInterface(752, 4).isValid())
                return true;
            return false;
        }
    
        private boolean checkClick(RSTile click) {
            int x = click.getX(), y = click.getY();
            if (x > 3279 || x < 3272) {
                return false;
            }
            if (y > 3189 || y < 3183) {
                return false;
            }
            return true;
        }
    
        private void antiBan() {
            int which = random(1, 3);
            switch (which) {
            case 1:
                moveMouse(random(0, 515), random(0, 330));
                break;
            case 2:
                openTab(random(0, 14));
                break;
            case 3:
                openTab(TAB_STATS);
                moveMouse(random(564, 721), random(216, 454));
                break;
            }
        }
    
        private Point bankCheck(String name) {
            return bankCheck(name, new Point(50, 100));
        }
    
        private Point bankCheck(String name, Point start) {
            String temp = doing;
            Point tempo = null;
            doing = "Bank Check";
            int x = (int) start.getX(), y = (int) start.getY();
            if (!RSInterface.getInterface(Constants.INTERFACE_BANK).isValid()) {
                RSObject booth = findObject(bank_Windows);
                if (booth == null) {
                    walk(path, false);
                    pause();
                    waitTilStopped();
                    return bankCheck(name);
                } else if (distanceTo(booth) > 5) {
                    walk(path, false);
                    pause();
                    waitTilStopped();
                    return bankCheck(name);
                } else
                    atObject(booth, "Use-quickly");
            }
            tries = 0;
            if (RSInterface.getInterface(Constants.INTERFACE_BANK).isValid()) {
                doing = "Looking for " + name;
                moveMouse(x, y);
                ArrayList<String> array = getMenuOptions();
                while (array.get(0).equals("")) {
                    array = getMenuOptions();
                }
                while (!array.get(0).contains(name)) {
                    if (tries >= 100) {
                        log("Tries:" + tries);
                        array = getMenuActions();
                        if (!array.get(0).toLowerCase().contains("raw")) {
                            log(array.get(0));
                            log(array.get(0).toLowerCase().contains("raw") + "");
                            log("Bank Check Error");
                            bank.close();
                            pause();
                            stopAllScripts();
                        } else {
                            tries = 0;
                            array = getMenuOptions();
                        }
                    }
                    x += 45;
                    if (x >= 460) {
                        if (y < 480) {
                            y += 42;
                            x = 50;
                        }
                    }
                    moveMouse(x, y);
                    smallWait();
                    array = getMenuOptions();
                    if (array.size() > 0 && array.get(0).equals("")) {
                        tries++;
                        x -= 45;
                    } else {
                        tries = 0;
                    }
                }
                doing = "Found " + name;
                tempo = new Point(x, y);
            }
            pause();
            doing = temp;
            first_Run = false;
            return tempo;
        }
    
        private void tabCheck(String name) {
            if (!RSInterface.getInterface(Constants.INTERFACE_BANK).isValid()) {
                RSObject booth = findObject(bank_Windows);
                if (booth == null) {
                    walk(path, false);
                    pause();
                    waitTilStopped();
                    tabCheck(name);
                } else if (distanceTo(booth) > 5) {
                    walk(path, false);
                    pause();
                    waitTilStopped();
                    tabCheck(name);
                } else {
                    atObject(booth, "Use-quickly");
                }
    
            }
            if (RSInterface.getInterface(Constants.INTERFACE_BANK).isValid()) {
                showGameChatMessages();
                int y = 60, x;
                for (x = 0; x < 50 * 8; x += 50) {
                    clickMouse(x+90, y, true);
                    pause();
                    for (int I = 64; I < 157; I++) {
                        if (RSInterface.getChildInterface(137, I).getText()
                                .contains("new tab")) {
                            bank_Tab = ((x-90)/50)+3;
                            log(bank_Tab+"");
                            break;
                        }
                    }
                    if (bank_Tab == 0) {
                        moveMouse(random(38, 73), random(92, 123));
                        smallWait();
                        while (getMenuOptions().get(0).equals(""))
                            smallWait();
                        if (getMenuOptions().get(0).contains(name)) {
                            bank_Tab = ((x-90)/50)+3;
                            on_Tab = true;
                            break;
                        }
                    } else
                        break;
                }
                if (!on_Tab) {
                    clickMouse(first_Tab, true);
                }
            }
            showAllChatMessages();
        }
    
        private Point bankClick(int index) {
            int y = random(37, 84);
            switch (index) {
            case 2:
                return new Point(random(73, 120), y);
            case 3:
                return new Point(random(121, 168), y);
            case 4:
                return new Point(random(169, 216), y);
            case 5:
                return new Point(random(217, 264), y);
            case 6:
                return new Point(random(265,312),y);
            case 7:
                return new Point(random(313,360),y);
            case 8:
                return new Point(random(361,408),y);
            case 9:
                return new Point(random(409,456),y);
            default:
                return new Point(random(25,72),y);
            }
        }
    
        private Point oreClick(int id) {
            if (id == ore1)
                return new Point(random(38, 73), random(92, 123));
            else if (id == ore2)
                return new Point(random(82, 117), random(92, 123));
            else
                return new Point(random(126, 161), random(92, 123));
        }
    
        private boolean oreCheck(int id) {
            if (ore2_Name == null && id != ring_ID)
                return false;
            Point temp;
            if (id == ore2)
                temp = oreClick(ore2);
            else
                temp = oreClick(ring_ID);
            moveMouse(temp);
            long start = System.currentTimeMillis();
            while (getMenuOptions().get(0).equals("")) {
                if (System.currentTimeMillis() - start > 3000)
                    break;
                smallWait();
            }
            if (getMenuOptions().get(0).contains(ore2_Name) && id != ring_ID)
                return true;
            else if (getMenuOptions().get(0).contains("of") && id == ring_ID)
                return true;
            return false;
        }
    
        private void moveOre(int id) {
            Point temp;
            if (id == ore1)
                temp = bankCheck(ore1_Name);
            else if (id == ore2) {
                if (ore_Type == 1)
                    temp = bankCheck(ore2_Name + " ore");
                else
                    temp = bankCheck(ore2_Name);
            } else
                temp = bankCheck("Ring of Forging");
            pressMouse(temp.x, temp.y, true);
            moveMouse(bankClick(bank_Tab));
            releaseMouse(bankClick(bank_Tab).x, bankClick(bank_Tab).y, true);
            pause();
            clickMouse(bankClick(bank_Tab), true);
            on_Tab = true;
        }
    
        private void showBox() {
            frame = new JFrame("Manual Counter");
            frame.setLayout(new FlowLayout());
            frame.add(new JLabel(ore1_Name + ": "));
            final JTextField txt = new JTextField("0", 4);
            frame.add(txt, 1);
            JButton but = new JButton("Start");
            but.setFocusable(true);
            frame.add(but, 2);
            but.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    count = Integer.parseInt(txt.getText());
                    frame.setVisible(false);
                }
            });
            frame.setSize(200, 85);
            frame.setVisible(true);
        }
    
        public void onRepaint(Graphics g) {
            if (isLoggedIn()) {
                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;
                String temp = ore1_Name;
                if (temp.equals("Copper"))
                    temp = "Bronze";
                int topX = 515 - 173, topY = 337 - 80, x = topX + 5, y = topY + 5;
                g.setColor(new Color(0, 100, 0, 100));
                g.fill3DRect(topX, topY, 515 - topX, 337 - topY, true);
                g.setColor(Color.green);
                g.drawString("Runtime: " + hours + "h " + minutes + "min "
                        + seconds + "sec.", x, y += 15);
                g.drawString("Ore Left: " + Integer.toString(count), x, y += 15);
                g.drawString("Bars: " + Integer.toString(smelted) + " " + temp
                        + " Bars.", x, y += 15);
                g.drawString("Status: " + doing, x, y += 15);
            }
        }
    
        @Override
        public void serverMessageRecieved(ServerMessageEvent e) {
            String word = e.getMessage().toLowerCase();
            if (word.contains("retrieve")) {
                smelted++;
                count--;
            } else if (word.contains("fail"))
                count--;
        }
    
        private byte dragLength = 0;
    
        private void pressMouse(int x, int y, boolean left) {
            MouseEvent me = new MouseEvent((Applet) Bot.getClient(),
                    MouseEvent.MOUSE_PRESSED, System.currentTimeMillis(), 0, x, y,
                    1, false, left ? MouseEvent.BUTTON1 : MouseEvent.BUTTON3);
            Bot.getClient().getMouse()._mousePressed(me);
        }
    
        private void releaseMouse(int x, int y, boolean leftClick) {
            MouseEvent me = new MouseEvent((Applet) Bot.getClient(),
                    MouseEvent.MOUSE_RELEASED, System.currentTimeMillis(), 0, x, y,
                    1, false, leftClick ? MouseEvent.BUTTON1 : MouseEvent.BUTTON3);
            Bot.getClient().getMouse()._mouseReleased(me);
    
            if ((dragLength & 0xFF) <= 3) {
                me = new MouseEvent((Applet) Bot.getClient(),
                        MouseEvent.MOUSE_CLICKED, System.currentTimeMillis(), 0, x,
                        y, 1, false, leftClick ? MouseEvent.BUTTON1
                                : MouseEvent.BUTTON3);
                Bot.getClient().getMouse()._mouseClicked(me);
            }
            // reset
            dragLength = 0;
        }
    }
    Script Name - Altarburier v1.0
    Author - Assasin's Cried
    Script Code -

    Code:
    import com.speljohan.rsbot.script.*;
    import com.speljohan.rsbot.script.wrappers.*;
    import com.speljohan.rsbot.script.wrappers.RSItemTile;
    
    //Importing all the Script functions and Wrappers (Objects, NPC's, Characters)
    
    
    public class AltarBurierv1 extends Script { //Declaring name + saying it's a script (filename should be same as the part between class and extends eg. ScriptBase.java)
    
    public AltarBurierv1() {
    setParameter("name", "Chaos Altar Bone Burier"); // Name of the Script
    setParameter("version", 1); // Version of the Script
    setParameter("author", "Assasins Cried"); // Author of the Script
    setParameter("category", "Prayer"); // Category of the Script
    setParameter("description", "<html>\n" +
    "<head></head>\n" +
    "<body>\n" +
    "<center>" +
    "<h2>" + getName() + "</h2>" +
    "</center>\n" +
    "<p\n" +
    "<b>Author:</b> " + getAuthor() + "<p>\n" +
    "<b>Version:</b> " + getVersion() + "<p>\n" +
    "Bone Burying script made using darkmaxxie's scripting tutorial\n" +
    "<p>\n" +
    "</body>\n" +
    "</html>");
    }
    
    public boolean onStart(String[] args) { //First thing run, when a Script is started (holds an array called "args" which contain the arguments put in by user in Script Selector
    return true; //return true = Start Script; return false = Don't Start Script
    }
    
    
    private int Runs = 1;
    private int State = 0; //This is gonna be THE variable that says in which state of the script we are
    private int BonesID = 526;
    
    
    public int loop() {
    try{
    switch (State) {
    case 0: //start bone collecting
    if (getInventoryCount() == 28) { //full inventory of bones, start next stage
    State++;
    } else { //Don't have full inventory, start collecting bones
    for(int I=0;I<21;I++) { //finds nearest bones
    RSItemTile BonesItemTile = getGroundItemByID(I,BonesID);
    atTile(BonesItemTile, "Take Bones");//search for and pick up bones
    }
    return random(1000, 2000); } //Went to Next Step, Or has chopped a tree, Anyways, return to top.
    case 1: //The Dropping
    if(getInventoryCount(BonesID) == 0){ //If we have an Empty inventory go to next step
    State++; //Next Step
    } else{ //If not
    atInventoryItem(BonesID, "Bury"); //Drop a log
    }
    return random(500, 1200); //Went to Next Step, Or has dropped log, return to top
    case 2: //Runs output
    System.out.println("Runs: " + Runs++); //Prints a line saying "Runs " followed by the number of runs.
    State = 0; //Back to the start
    return random(500, 1200); //return to top
    }
    }catch(Exception e){
    e.printStackTrace();
    }
    return random(1000, 2000);
    }
    } 

    Script Name - AutoTele
    Author - Tom331
    Code -

    Code:
    import com.speljohan.rsbot.script.*;
    import com.speljohan.rsbot.script.wrappers.*;
    import com.speljohan.rsbot.script.wrappers.RSItemTile;
    
    //Importing all the Script functions and Wrappers (Objects, NPC's, Characters)
    
    
    public class AltarBurierv1 extends Script { //Declaring name + saying it's a script (filename should be same as the part between class and extends eg. ScriptBase.java)
    
    public AltarBurierv1() {
    setParameter("name", "Chaos Altar Bone Burier"); // Name of the Script
    setParameter("version", 1); // Version of the Script
    setParameter("author", "Assasins Cried"); // Author of the Script
    setParameter("category", "Prayer"); // Category of the Script
    setParameter("description", "<html>\n" +
    "<head></head>\n" +
    "<body>\n" +
    "<center>" +
    "<h2>" + getName() + "</h2>" +
    "</center>\n" +
    "<p\n" +
    "<b>Author:</b> " + getAuthor() + "<p>\n" +
    "<b>Version:</b> " + getVersion() + "<p>\n" +
    "Bone Burying script made using darkmaxxie's scripting tutorial\n" +
    "<p>\n" +
    "</body>\n" +
    "</html>");
    }
    
    public boolean onStart(String[] args) { //First thing run, when a Script is started (holds an array called "args" which contain the arguments put in by user in Script Selector
    return true; //return true = Start Script; return false = Don't Start Script
    }
    
    
    private int Runs = 1;
    private int State = 0; //This is gonna be THE variable that says in which state of the script we are
    private int BonesID = 526;
    
    
    public int loop() {
    try{
    switch (State) {
    case 0: //start bone collecting
    if (getInventoryCount() == 28) { //full inventory of bones, start next stage
    State++;
    } else { //Don't have full inventory, start collecting bones
    for(int I=0;I<21;I++) { //finds nearest bones
    RSItemTile BonesItemTile = getGroundItemByID(I,BonesID);
    atTile(BonesItemTile, "Take Bones");//search for and pick up bones
    }
    return random(1000, 2000); } //Went to Next Step, Or has chopped a tree, Anyways, return to top.
    case 1: //The Dropping
    if(getInventoryCount(BonesID) == 0){ //If we have an Empty inventory go to next step
    State++; //Next Step
    } else{ //If not
    atInventoryItem(BonesID, "Bury"); //Drop a log
    }
    return random(500, 1200); //Went to Next Step, Or has dropped log, return to top
    case 2: //Runs output
    System.out.println("Runs: " + Runs++); //Prints a line saying "Runs " followed by the number of runs.
    State = 0; //Back to the start
    return random(500, 1200); //return to top
    }
    }catch(Exception e){
    e.printStackTrace();
    }
    return random(1000, 2000);
    }
    } 
    Script Name - Advertise Ultra
    Author - Last Man 3
    Code -

    Code:
    /*
    Made by Last Man 3 for personal use only. 
    You cannot redisdribute this script under your name or any name.
    You may share for non-commercial purposes
    
    Upgrades:
    
    V1.0:
    - New automatic system
    - Less errors
    - Faster
    - More options
    - New anti - ban
    V1.1:
    - Fixed methods
    - Fixed times
    - Fixed arguments
    V1.3:
    - Fixed all
    - Wont fail
    */
    
    import java.awt.*;
    import java.awt.event.*;
    import java.io.*;
    import java.net.*;
    import java.util.*;
    
    import com.speljohan.rsbot.bot.Bot;
    import com.speljohan.rsbot.event.events.ServerMessageEvent;
    import com.speljohan.rsbot.event.listeners.PaintListener;
    import com.speljohan.rsbot.event.listeners.ServerMessageListener;
    import com.speljohan.rsbot.script.Calculations;
    import com.speljohan.rsbot.script.Script;
    import com.speljohan.rsbot.script.wrappers.*;
    import com.speljohan.rsbot.script.*;
    
    
    public class AdvertiseUltra extends Script
    {
    	//Vars
    	public String txt1;
    	public String txt2;
    	public String txt3;
    	public String txt4;
    	public String temp;
    	public int evry = 5000;
    	public int sent = 0;	
    	public int mode = 1;	
    	public int active = 1;
    	
    	public double getVersion( )
    	{
    		return( 1.3 );
    	}
    	
    	
    	public String getName() {
    		return "Advertise Ultra";
    	}
    	
    	public String getAuthor( )
    	{
    		return( "Last Man 3" );
    	}	
    	
    	public String getScriptCategory()
    	{
    		return( "LM3" );
    	}
    	
    	public String getScriptDescription()
    	{
    		String html = "";
    		html += "<html>\n";
    		html += "<head>";
    		html += "<style type=\"text/css\"> hr {color: white} p {margin-left: 20px} body {background-image: url(\"http://i36.tinypic.com/11bltvq.png\")}</style>";
    		html += "</head>";
    		html += "<body>\n";
    		html += "<center>";
    		html += "<b><font size=\"6\" color=\"red\">" + getName( ) + " v" + getVersion( ) + "</font></b><br>";
    		html += "<font size=\"4\" color=\"red\">Enjoy advertising!</font><br><br>";
    		html += "<b>Text 1</b>:<input type=\"text\" name=\"text1\" size=\"25\" value=\"\"><br>";
    		html += "<b>Text 2</b>:<input type=\"text\" name=\"text2\" size=\"25\" value=\"\"><br>";
    		html += "<b>Text 3</b>:<input type=\"text\" name=\"text3\" size=\"25\" value=\"\"><br>";
    		html += "<b>Text 4</b>:<input type=\"text\" name=\"text4\" size=\"25\" value=\"\"><br><br>";
    		html += "<b>Sending</b>:<select name=\"random\"><option selected>Up to down</option><option>Down to Up</option><option>Random</option></select><br><br>";
    		html += "<b>Send every</b>:&nbsp<input type=\"text\" name=\"sende\" size=\"10\">sec (By default is 5 seconds; Min 1)<br><br>";
    		html += "</center></body>";
    		html += "</html>";
    		return( html );
    	}		
    	
    	public boolean onStart(Map<String, String>args) {
    		if(args.get("text1").equals("")) {
    			log("You didnt set anything to advertise");
    		}
    		if(!args.get("text1").equals("")) {
    			txt1 = args.get("text1");
    		}
    		if(!args.get("text2").equals("")) {
    			txt2 = args.get("text2");
    			active = 2;
    		}
    		if(!args.get("text3").equals("")) {
    			txt3 = args.get("text3");
    			active = 3;
    		}
    		if(!args.get("text4").equals("")) {
    			txt4 = args.get("text4");
    			active = 4;
    		}		
    		if(args.get("random").equals("Down to Up"))
    		{
    			mode = 2;
    		}
    		if(args.get("random").equals("Down to Up"))
    		{
    			mode = 3;
    		}
    		if (args.get("sende") != null) {		
    			if (args.get("sende").equals("1")) {
    				evry = 1000;
    			}
    			else if (args.get("sende").equals("2")) {
    				evry = 2000;
    			}
    			else if (args.get("sende").equals("3")) {
    				evry = 3000;
    			}	
    			else if (args.get("sende").equals("4")) {
    				evry = 4000;
    			} 
    			else if (args.get("sende").equals("5")) {
    				evry = 5000;
    			} 
    			else if (args.get("sende").equals("6")) {
    				evry = 6000;
    			}	
    			else if (args.get("sende").equals("7")) {
    				evry = 7000;
    			} 
    			else if (args.get("sende").equals("8")) {
    				evry = 8000;
    			} 
    			else if (args.get("sende").equals("9")) {
    				evry = 9000;
    			} 
    			else if (args.get("sende").equals("10")) {
    				evry = 10000;
    			}						
    			else  {							
    				evry = Integer.parseInt(args.get("sende")+"000");				
    			}
    		}	
    		return true;
    	}	
    	
    	public void onFinish( )
    	{		
    		log("stopping...");
    	}	
    	
    	//Anti-Ban(Anti-Logout) Thanks to Insania!	
    	
    	public int loop() {
    		switch(mode) {
    			case 1:
    				switch(active) {
    					case 1:						
    						sendText(txt1, true);							
    						wait(evry);
    						return random(1000,2000);						
    					case 2:
    						if(sent == 0)
    						{
    							sendText(txt1, true);
    							sent++;
    							wait(evry);
    							return random(1000,2000);
    						}
    						if(sent == 1)
    						{
    							sendText(txt2, true);
    							sent = 0;
    							wait(evry);
    							return random(1000,2000);
    						}						
    					case 3:
    						if(sent == 0)
    						{
    							sendText(txt1, true);
    							sent++;
    							wait(evry);
    							return random(1000,2000);
    						}
    						if(sent == 1)
    						{
    							sendText(txt2, true);
    							sent++;
    							wait(evry);
    							return random(1000,2000);
    						}
    						if(sent == 2)
    						{
    							sendText(txt3, true);
    							sent = 0;
    							wait(evry);
    							return random(1000,2000);
    						}						
    					case 4:
    						if(sent == 0)
    						{
    							sendText(txt1, true);
    							sent++;
    							wait(evry);
    							return random(1000,2000);
    						}
    						if(sent == 1)
    						{
    							sendText(txt2, true);
    							sent++;
    							wait(evry);
    							return random(1000,2000);
    						}
    						if(sent == 2)
    						{
    							sendText(txt3, true);
    							sent++;
    							wait(evry);
    							return random(1000,2000);
    						}
    						if(sent == 3)
    						{
    							sendText(txt4, true);
    							sent = 0;
    							wait(evry);
    							return random(1000,2000);
    						}	
    				}	
    			case 2:
    				switch(active) {
    					case 1:						
    						sendText(txt1, true);							
    						wait(evry);
    						return random(1000,2000);						
    					case 2:
    						if(sent == 0)
    						{
    							sendText(txt2, true);
    							sent++;
    							wait(evry);
    							return random(1000,2000);
    						}
    						if(sent == 1)
    						{
    							sendText(txt1, true);
    							sent = 0;
    							wait(evry);
    							return random(1000,2000);
    						}						
    					case 3:
    						if(sent == 0)
    						{
    							sendText(txt3, true);
    							sent++;
    							wait(evry);
    							return random(1000,2000);
    						}
    						if(sent == 1)
    						{
    							sendText(txt2, true);
    							sent++;
    							wait(evry);
    							return random(1000,2000);
    						}
    						if(sent == 2)
    						{
    							sendText(txt1, true);
    							sent = 0;
    							wait(evry);
    							return random(1000,2000);
    						}						
    					case 4:
    						if(sent == 0)
    						{
    							sendText(txt4, true);
    							sent++;
    							wait(evry);
    							return random(1000,2000);
    						}
    						if(sent == 1)
    						{
    							sendText(txt3, true);
    							sent++;
    							wait(evry);
    							return random(1000,2000);
    						}
    						if(sent == 2)
    						{
    							sendText(txt2, true);
    							sent++;
    							wait(evry);
    							return random(1000,2000);
    						}
    						if(sent == 3)
    						{
    							sendText(txt1, true);
    							sent = 0;
    							wait(evry);
    							return random(1000,2000);
    						}	
    				}	
    			case 3:
    				switch(active) {
    					case 1:						
    						sendText(txt1, true);							
    						wait(evry);
    						return random(1000,2000);						
    					case 2:
    						switch(random(1,2)) {
    							case 1:								
    								sendText(txt2, true);								
    								wait(evry);
    								return random(1000,2000);								
    							case 2:									
    								sendText(txt1, true);								
    								wait(evry);
    								return random(1000,2000);								
    						}	
    					case 3:
    						switch(random(1,3)) {
    							case 1:								
    								sendText(txt2, true);								
    								wait(evry);
    								return random(1000,2000);								
    							case 2:									
    								sendText(txt1, true);								
    								wait(evry);
    								return random(1000,2000);
    							case 3:									
    								sendText(txt3, true);								
    								wait(evry);
    								return random(1000,2000);								
    						}							
    					case 4:
    						switch(random(1,4)) {
    							case 1:								
    								sendText(txt2, true);								
    								wait(evry);
    								return random(1000,2000);								
    							case 2:									
    								sendText(txt1, true);								
    								wait(evry);
    								return random(1000,2000);
    							case 3:									
    								sendText(txt3, true);								
    								wait(evry);
    								return random(1000,2000);
    							case 4:									
    								sendText(txt4, true);								
    								wait(evry);
    								return random(1000,2000);		
    						}		
    				}
    		}
    		return 2000;	
    	}		
    }
     
  19. Unread #10 - Dec 1, 2008 at 11:07 AM
  20. Tropico5
    Joined:
    Nov 12, 2008
    Posts:
    125
    Referrals:
    0
    Sythe Gold:
    0

    Tropico5 Active Member

    [~]-The ULTIMATE RSBot Script Collection-[~]

    Ty has been helpful but mta is apprently damaged .?
     
  21. Unread #11 - Dec 1, 2008 at 2:29 PM
  22. Tropico5
    Joined:
    Nov 12, 2008
    Posts:
    125
    Referrals:
    0
    Sythe Gold:
    0

    Tropico5 Active Member

    [~]-The ULTIMATE RSBot Script Collection-[~]

    I am badly badly requesting the script too neweragenericfighter please
     
  23. Unread #12 - Dec 1, 2008 at 2:36 PM
  24. Auspkr
    Joined:
    Nov 14, 2008
    Posts:
    90
    Referrals:
    1
    Sythe Gold:
    0

    Auspkr Member
    Banned

    [~]-The ULTIMATE RSBot Script Collection-[~]

    Hey man, this has some really great scripts, i really needed a rune ess miner thanks!!
     
  25. Unread #13 - Dec 1, 2008 at 3:08 PM
  26. G E O R G E
    Joined:
    Nov 21, 2008
    Posts:
    77
    Referrals:
    1
    Sythe Gold:
    0

    G E O R G E Member
    Banned

    [~]-The ULTIMATE RSBot Script Collection-[~]

    Thanks for these scripts, sometimes hard to find a script you need :p
     
  27. Unread #14 - Dec 1, 2008 at 4:23 PM
  28. MatthewGor123
    Joined:
    Dec 17, 2005
    Posts:
    1,213
    Referrals:
    0
    Sythe Gold:
    0

    MatthewGor123 Guru
    Do Not Trade

    [~]-The ULTIMATE RSBot Script Collection-[~]

    I just tested it, and it works *decently* -- it's no RID MTA, but it's doing the job done. You sure you're starting it correctly?

    http://www.sythe.org/showthread.php?t=517292

     
< online midevil web browser rpg games | Runescape: Item buyout (Chessy+ A C I D Y) >

Users viewing this thread
1 guest
Thread Status:
Not open for further replies.


 
 
Adblock breaks this site