• Log in or sign up for an account here: https://www.sythe.org/login

Reported Post by zertoyah

Status
Not open for further replies.

zertoyah

Member
Joined
Mar 18, 2007
Sythe Gold
0
Messages
66
zertoyah has reported a post.

Reason:
Post: Whats the best FREE pest control bot?
Forum: RuneScape 2 Cheating
Assigned Moderators: T R 1 B A L, Dalpra, Farcast

Posted by: Tigerz
Original Content:
Code:
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.Map;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTabbedPane;
import javax.swing.SwingConstants;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

import org.rsbot.bot.Bot;
import org.rsbot.bot.input.Mouse;
import org.rsbot.event.listeners.PaintListener;
import org.rsbot.script.Constants;
import org.rsbot.script.Script;
import org.rsbot.script.ScriptManifest;
import org.rsbot.script.wrappers.RSInterface;
import org.rsbot.script.wrappers.RSInterfaceChild;
import org.rsbot.script.wrappers.RSNPC;
import org.rsbot.script.wrappers.RSObject;
import org.rsbot.script.wrappers.RSTile;






@ScriptManifest(authors = { "Zasz" }, category = "Combat", name = "Zasz's Pest Control", version = 1.00, description = "<html><head>"
	+ "</head><body>"
	+ "<center><strong><h2>Zasz's Pest Control!</h2></strong></center>"
	+ "<center></center><br />"
	+ "<br>"
	+ " <center><B>Click start for the GUI!.</b>"
	+ "<strong></strong>" 
	+ "</center><br>"
	+ "</body></html>")

public class ZaSzPC extends Script implements PaintListener {
	public long startTime = System.currentTimeMillis();
	public long tsa,tsw;
    boolean hasset, buys,buymace,buytop,buybottom,buygloves,buyskills,mappedisland,firstlogin,setangleisland;
    boolean macebuy,topbuy,bottombuy,glovesbuy;
    boolean newround,usespec, logfullz, outdated, walkd, attportals, useqp, defendk, p4match;
    boolean makep =  true;
    public boolean startScript = false;
    private String status = "";
    String wtbs,portalname;
    String tskill, amode,tskilld, skilltobuy, helmtobuy, boattb;
    int dfightm, startlvl,gamesplayed, pcpoints, cons, startEXP, Location,ladderd,boatp,loz;
	long eph;
	int lastportalopend,portalid;
    int zealgained = 0;
    int westp,eastp,sep,swp;
    int[] monsters = {3734,3735,3733};
    String[] wtb, ta;
    RSTile knighttile, boattilen, boattiles;
    RSTile rocktile,bottomrighttile,toplefttile,battlefield;
    RSTile bottomrightk,topleftk, bottomrightbb, topleftbb;
    RSTile laddertile;
    RSTile portaltw;
    String cp = "";
    public double version = 1.5;
	private RSTile[] path,toboat,topoints;

    public class gui extends JFrame 
    { 
    	/**
		 * 
		 */
		private static final long serialVersionUID = 1337L;
		// Variables declaration 
    	private JTabbedPane jTabbedPane1; 
    	private JButton jButton1; 
    	private JPanel contentPane; 
    	//----- 
    	private JLabel jLabel2; 
    	private JLabel jLabel5; 
    	private JLabel jLabel6; 
    	private JPanel jPanel1; 
    	//----- 
    	private JLabel jLabel7; 
    	private JLabel jLabel8; 
    	private JLabel jLabel9; 
    	private JLabel jLabel10; 
    	private JLabel jLabel12; 
    	private JComboBox jComboBox1; 
    	private JComboBox jComboBox2; 
    	private JComboBox jComboBox3;
    	private JComboBox jComboBox4;
    	private JComboBox jComboBox5; // Boat
    	private JCheckBox jCheckBox3;  
    	private JCheckBox jCheckBox4; 
     	private JCheckBox jCheckBox5; 
     	private JCheckBox jCheckBox6;// Att portal 
     	private JCheckBox jCheckBox7; // Use quick Prayer
     	private JCheckBox jCheckBox8; // Defend Knight
    	private JPanel jPanel2; 
    	//----- 
    	private JPanel jPanel3; 
    	//----- 
    	private JPanel jPanel4; 
    	
    	private JRadioButton jRadioButton1; 
     	private JRadioButton jRadioButton2; 
     	private JRadioButton jRadioButton3; 
     	private JRadioButton jRadioButton4; 
     	private JRadioButton jRadioButton5; 
     	private JRadioButton jRadioButton6; 
     	private JRadioButton jRadioButton7; 
     	private JRadioButton jRadioButton8; 
     	private JRadioButton jRadioButton9; 
     	private JRadioButton jRadioButton10; 
     	private JRadioButton jRadioButton11; 
    	// End of variables declaration 
     
     
    	public gui() 
    	{ 
    		super(); 
    		initializeComponent(); 
    		
     
    		this.setVisible(true); 
    	} 
     
    	/** 
    	 * This method is called from within the constructor to initialize the form. 
    	 * WARNING: Do NOT modify this code. The content of this method is always regenerated 
    	 * by the Windows Form Designer. Otherwise, retrieving design might not work properly. 
    	 * Tip: If you must revise this method, please backup this GUI file for JFrameBuilder 
    	 * to retrieve your design properly in future, before revising this method. 
    	 */ 
    	private void initializeComponent() 
    	{ 
    		jTabbedPane1 = new JTabbedPane(); 
    		jButton1 = new JButton(); 
    		contentPane = (JPanel)this.getContentPane(); 
    		//----- 
    		jLabel2 = new JLabel(); 
    		jLabel5 = new JLabel(); 
    		jLabel6 = new JLabel(); 
    		jPanel1 = new JPanel(); 
    		jCheckBox3 = new JCheckBox(); 
    		//----- 
    		jLabel7 = new JLabel(); 
    		jLabel8 = new JLabel(); 
    		jLabel9 = new JLabel();
    		jLabel10 = new JLabel();
    		jLabel12 = new JLabel();
    		jComboBox1 = new JComboBox(); 
    		jComboBox2 = new JComboBox(); 
    		jComboBox3 = new JComboBox(); 
    		jComboBox4 = new JComboBox();
    		jComboBox5 = new JComboBox();
    		jPanel2 = new JPanel();
    		jCheckBox4 = new JCheckBox(); 
     		jCheckBox5 = new JCheckBox(); 
     		jCheckBox6 = new JCheckBox();
     		jCheckBox7 = new JCheckBox();
     		jCheckBox8 = new JCheckBox();
    		jRadioButton1 = new JRadioButton(); 
     		jRadioButton2 = new JRadioButton(); 
     		jRadioButton3 = new JRadioButton();
     		jRadioButton4 = new JRadioButton(); 
    		jRadioButton5 = new JRadioButton();
    		jRadioButton6 = new JRadioButton();
    		jRadioButton7 = new JRadioButton();
    		jRadioButton8 = new JRadioButton();
    		jRadioButton9 = new JRadioButton();
    		jRadioButton10 = new JRadioButton();
    		jRadioButton11 = new JRadioButton();
    		//----- 
    		jPanel3 = new JPanel(); 
    		//----- 
    		jPanel4 = new JPanel();
    		// 
    		// jTabbedPane1 
    		// 
    		jTabbedPane1.addTab("Description", jPanel1); 
    		jTabbedPane1.addTab("Combat Options", jPanel2); 
    		jTabbedPane1.addTab("Island Options", jPanel4); 
    		jTabbedPane1.addTab("Zeal Options", jPanel3); 
    		jTabbedPane1.addChangeListener(new ChangeListener() { 
    			public void stateChanged(ChangeEvent e) 
    			{ 
    				jTabbedPane1_stateChanged(e); 
    			} 
     
    		}); 
    		// 
    		// jButton1 
    		// 
    		jButton1.setText("Start Script!"); 
    		jButton1.addActionListener(new ActionListener() { 
    			public void actionPerformed(ActionEvent e) 
    			{ 
    				jButton1_actionPerformed(e); 
    			} 
     
    		}); 
    		// 
    		// contentPane 
    		// 
    		contentPane.setLayout(null); 
    		addComponent(contentPane, jTabbedPane1, 0,0,373,221); 
    		addComponent(contentPane, jButton1, 124,240,106,28); 
    		// 
    		// jLabel2 
    		// 
    		jLabel2.setHorizontalAlignment(SwingConstants.TRAILING); 
    		jLabel2.setHorizontalTextPosition(SwingConstants.LEADING); 
    		jLabel2.setText("ZaSz\'s Pest Control: By ZaSz"); 
    		// 
    		// jLabel5 
    		// 
    		jLabel5.setText("Start this script either at Pest Control bank. Or near the landers!"); 
    		// 
    		// jLabel6 
    		// 
    		jLabel6.setText("Make sure to fill out all the options! Or this script won\'t work for you!"); 
    		// 
    		// jPanel1 
    		// 
    		jPanel1.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5)); 
    		jPanel1.add(jLabel2, 0); 
    		jPanel1.add(jLabel5, 1); 
    		jPanel1.add(jLabel6, 2); 
    		jPanel1.setOpaque(true); 
    		// 
    		// jLabel7 
    		// 
    		jLabel7.setText("Combat Style"); 
    		// 
     		// jLabel8 
     		// 
     		jLabel8.setText("Attack style "); 
     		// 
     		// jLabel9 
     		// 
     		jLabel9.setText("Skill to buy");
     		// 
     		// jLabel10 
     		// 
     		jLabel10.setText("Boat to use:    ");
     		// 
     		// jCheckBox3 
     		// 
     		jCheckBox3.setText("Use special Attacks when applicable? (Range/Melee only)"); 
     		// jCheckBox4 
     		// 
     		jCheckBox4.setText("logout at full zeal (Can't buy anything else if you pick)"); 
     		// 
     		// jCheckBox5 
     		// 
     		jCheckBox5.setText("Use Zeal to buy skills.    ");
     		// 
     		// jCheckBox6 
     		// 
     		jCheckBox6.setText("Attack portals. (THIS IS NOT NEEDED TO WALK NEAR PORTALS!)"); 
     		// 
     		// jCheckBox7
     		// 
     		jCheckBox7.setText("Use Quick Prayer.       "); 
     		// 
     		// jCheckBox8
     		// 
     		jCheckBox8.setText("Defend the knight instead of portals.  "); 
     		// 
     		// jRadioButton1 
     		// 
     		//(Use dropdown box to select)
     		jRadioButton1.setText("Buy a helm  (Helms/Void armour not able this version)"); 
     		// 
     		// jRadioButton2 
     		// 
     		jRadioButton2.setText("Buy Void Top"); 
     		// 
     		// jRadioButton3 
     		// 
     		jRadioButton3.setText("Buy Void Bottom"); 
     		// 
     		// jRadioButton4 
     		// 
     		jRadioButton4.setText("Buy Void Gloves"); 
     		// 
     		// jRadioButton5 
     		// 
     		jRadioButton5.setText("Buy Void Mace         "); 
    		// 
    		// jComboBox1 
    		// 
    		jComboBox1.addItem("Melee"); 
    		jComboBox1.addItem("Range"); 
    		jComboBox1.addItem("Mage"); 
    		// 
     		// jComboBox2 
     		// 
     		jComboBox2.addItem("Accurate (Att/Range/Mage)"); 
     		jComboBox2.addItem("Strength/Rapid (Str/Range/Mage)"); 
     		jComboBox2.addItem("Defensive (Def/Def+range/Def+Mage"); 
     		// 
     		// jComboBox3 
     		// 
     		jComboBox3.addItem("Attack"); 
     		jComboBox3.addItem("Strength"); 
     		jComboBox3.addItem("Defence"); 
     		jComboBox3.addItem("Ranged"); 
     		jComboBox3.addItem("Magic"); 
     		jComboBox3.addItem("Hitpoints"); 
     		jComboBox3.addItem("Prayer"); 
     		
     		//
     		// jComboBox4
     		//
     		jComboBox4.addItem("Mage helm");
     		jComboBox4.addItem("Melee helm");
     		jComboBox4.addItem("Range helm");	
     		//
     		// jComboBox5
     		//
     		jComboBox5.addItem("Novice Boat");
     		jComboBox5.addItem("Intermediate Boat");
     		jComboBox5.addItem("Expert Boat");
    		// 
    		// jPanel2 
    		// 
     		jPanel2.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5)); 
     		jPanel2.add(jLabel7, 0); 
     		jPanel2.add(jComboBox1, 1); 
     		jPanel2.add(jCheckBox7,2);
     		jPanel2.add(jCheckBox3, 3); 
     		jPanel2.add(jLabel8, 4); 
     		jPanel2.add(jComboBox2, 5);
    		// 
    		// jPanel3 
    		// 
    		jPanel3.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5)); 
    		jPanel3.add(jCheckBox4, 0); 
     		jPanel3.add(jCheckBox5, 1); 
     		//jPanel3.add(jRadioButton1, 2); 
     		jPanel3.add(jRadioButton2, 2); 
     		jPanel3.add(jRadioButton3, 3); 
     		jPanel3.add(jRadioButton4, 4); 
     		jPanel3.add(jRadioButton5, 5); 
     		jPanel3.add(jLabel9, 6); 
     		jPanel3.add(jComboBox3, 7); 
     		//jPanel3.add(jComboBox4,9);
     		
     		/////////////////////////////////////////////////////////////////
     	// 
     		// jLabel1 
     		// 
     		jLabel10.setText("Boat To Use"); 
     		// 
     		// jLabel2 
     		// 
     		jLabel12.setText(" Monsters to Attack:  MUST HAVE SHIFTER IF DEFENDING KNIGHT!!!!          "); 
     		// 
     		// jCheckBox1 
     		// 
     		jCheckBox6.setText("Attack portals. (THIS IS NOT NEEDED TO WALK NEAR PORTALS!)"); 
     		// 
     		// jCheckBox2 
     		// 
     		jCheckBox8.setText("Defend Knight instead of portals"); 
     		// 
     		// jRadioButton1 "Spinner","Shifter","Brawler","Ravager","Torcher","Defiler","Splatter"
     		// 
     		jRadioButton6.setText("  Spinner"); 
     		jRadioButton6.setSelected(true);
     	// 
     		// jRadioButton1 
     		// 
     		jRadioButton7.setText("Shifter"); 
     		jRadioButton7.setSelected(true);
     	// 
     		// jRadioButton1 
     		// 
     		jRadioButton8.setText("Torcher"); 
     		jRadioButton8.setSelected(true);
     	// 
     		// jRadioButton1 
     		// 
     		jRadioButton9.setText("Defiler"); 
     		jRadioButton9.setSelected(true);
     	// 
     		// jRadioButton1 
     		// 
     		jRadioButton10.setText("Brawler");
     		jRadioButton10.setSelected(true);
     	// 
     		// jRadioButton1 
     		// 
     		jRadioButton11.setText("Splatter"); 
     		jRadioButton11.setSelected(true);
     		////////////////////////////////////////////////////////////////////////
     		// 
    		// jPanel4  (ISLAND OPTIONS)
    		// 
     		jPanel4.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5)); 
     		jPanel4.add(jLabel10,0);
     		jPanel4.add(jComboBox5, 1); 
     		jPanel4.add(jCheckBox6, 2); 
     		jPanel4.add(jCheckBox8, 3); 
     		jPanel4.add(jLabel12, 4); 
     		jPanel4.add(jRadioButton6, 5); 
     		jPanel4.add(jRadioButton7, 6); 
     		jPanel4.add(jRadioButton8, 7); 
     		jPanel4.add(jRadioButton9, 8); 
     		jPanel4.add(jRadioButton10, 9); 
     		jPanel4.add(jRadioButton11, 10); 
     		
     		//jPanel4.add(, 4); 
     		//jPanel4.add();
    		// 
    		// gui 
    		// 
    		this.setTitle("Zasz\'s Pest Control!"); 
    		this.setLocation(new Point(168, 107)); 
    		this.setSize(new Dimension(395, 311)); 
    	} 
     
    	/** Add Component Without a Layout Manager (Absolute Positioning) */ 
    	private void addComponent(Container container,Component c,int x,int y,int width,int height) 
    	{ 
    		c.setBounds(x,y,width,height); 
    		container.add(c); 
    	} 
     
    	
    	private void jTabbedPane1_stateChanged(ChangeEvent e) 
    	{ 
    		System.out.println("\njTabbedPane1_stateChanged(ChangeEvent e) called."); 
  
    	} 
  
    	
    	private void jButton1_actionPerformed(ActionEvent e) 
    	{ 
    		System.out.println("\njButton1_actionPerformed(ActionEvent e) called."); 
     
    		amode = jComboBox2.getSelectedItem().toString(); 
    		tskill = jComboBox1.getSelectedItem().toString();
    		Location = jComboBox1.getSelectedIndex();
    		usespec = jCheckBox3.isSelected();
    		buyskills = jCheckBox5.isSelected();
    		logfullz = jCheckBox4.isSelected();
    		//logfullz = true;
         	//int leng = 0;	
         	//if(jRadioButton6.isSelected()){
         	//	leng++;
         	//}
         	//if(jRadioButton7.isSelected()){
         	//	leng++;
         	//}
         	//if(jRadioButton8.isSelected()){
         	//	leng++;
         	//}
         	//if(jRadioButton9.isSelected()){
         	//	leng++;
         	//}
         	//if(jRadioButton10.isSelected()){
         ///		leng++;
    		//}
    		//if(jRadioButton11.isSelected()){
    		//	leng++;
    		//}
    		ArrayList<String> monsterztoatt = new ArrayList<String>();

    		if(jRadioButton6.isSelected()){
    			monsterztoatt.add("Spinner");
    		}
    		if(jRadioButton7.isSelected()){
    			monsterztoatt.add("Shifter");
    		}
    		if(jRadioButton8.isSelected()){
    				monsterztoatt.add("Torcher");
    			}
    		if(jRadioButton9.isSelected()){
    			monsterztoatt.add("Defiler");
    		}
    		if(jRadioButton10.isSelected()){
    			monsterztoatt.add("Brawler");
    		 }
    		if(jRadioButton11.isSelected()){
    			monsterztoatt.add("Splatter");
    		}
    		ta = monsterztoatt.toArray( new String[ monsterztoatt.size() ] );
    		if(!buyskills){
    			logfullz = true;
    		}
    		defendk = jCheckBox8.isSelected();
    		attportals = jCheckBox6.isSelected();
    		useqp = jCheckBox7.isSelected();
    		boattb = jComboBox5.getSelectedItem().toString();
    		if(boattb=="Novice Boat"){
    			ladderd = 14315;
    			toboat =  new RSTile[]{ new RSTile(2661, 2649),new RSTile(2657, 2640)} ;
    			boattiles = new RSTile (2663, 2638); //SE
    			boattilen = new RSTile (2660, 2643); //NW
    			laddertile = new RSTile (2657,2639);
    			boatp = 2;
    		}
    		if(boattb=="Intermediate Boat"){
    			ladderd = 25631;
    			toboat =  new RSTile[]{ new RSTile(2661, 2649),new RSTile(2649, 2647), new RSTile(2644, 2644)} ;
    			boattiles = new RSTile (2641, 2642); //SE
    			boattilen = new RSTile (2638, 2647); //NW
    			laddertile = new RSTile (2644,2644);
    			boatp = 3;
    		}
    		if(boattb=="Expert Boat"){
    			ladderd = 25632;
    			toboat =  new RSTile[]{ new RSTile(2661, 2649),new RSTile(2649, 2647), new RSTile(2638, 2653)} ;
    			boattiles = new RSTile (2635, 2649); //SE
    			boattilen = new RSTile (2632, 2654); //NW
    			laddertile = new RSTile (2638,2653);
    			boatp = 4;
    		}
    		topoints = reversePath(toboat);
    		if(amode=="Accurate (Att/Range/Mage)"){
    			dfightm = 0;
    			tskilld = "Att";
    		} else
    		
    		if(amode=="Strength/Rapid (Str/Range/Mage)"){
    			dfightm = 1;
    			tskilld = "Str";
    		} else
    		if(amode=="Defensive (Def/Def+range/Def+Mage"){
    			if(!(tskill=="Range") || !(tskill=="Mage")){
    				dfightm = 3;
    			} else
    				dfightm = 2;
    			tskilld = "Def";
    		} else {		
    			tskilld=amode;			
    		}
    		
    		if(buyskills){
    			  skilltobuy = jComboBox3.getSelectedItem().toString();
    			  log("Buying: "+skilltobuy);
    		}
    		;
    		if(jRadioButton1.isSelected()){
    			helmtobuy = jComboBox4.getSelectedItem().toString();
    			//buyhelm = false; //delete when implemented TODO
    			//log("Buying: "+helmtobuy);
    		}
    		if(jRadioButton2.isSelected()){
    			buytop = true;
    			log("Buying: top");
    		}
    		if(jRadioButton3.isSelected()){
    			buybottom = true;
    			log("Buying: bottom");
    		}
    		if(jRadioButton4.isSelected()){
    			buygloves = true;
    			log("Buying: gloves");
    		}
    		if(jRadioButton5.isSelected()){
    			buymace = true;
    			buymace = false; //delete when implemented TODO
    			log("Buying: mace");
    			
    		}
    		
    		
		
    		
    		
    		
    		
    		
    		
    		

    		
    		
    		
    		
    		
    		
    		
    		
    		
    		
    		
    		//if(leng==0){
    		// log("Must select a monster to attack!");	
    		//} else {
    			setVisible(false);
    			startScript = true;
    			//}
    	} 
   
    }
    
    public boolean outsideboat() {
    	return distanceTo(laddertile)<40;
    }
    
    public boolean insideboat() {
    	final RSInterface IFACE = RSInterface.getInterface(407);
    	//if (pcpoints==0){
    	
    		if (IFACE.isValid()) {
    			String interfacet;
    			interfacet = RSInterface.getChildInterface(407,16).getText();
    			int interfacel,source,tempzeal;
    			interfacel = interfacet.length();
    			source = interfacet.indexOf(":");
    			String pointtext;
    			pointtext = interfacet.substring(source+2, interfacel);
    			tempzeal = Integer.parseInt(pointtext);
    			if(!(tempzeal==pcpoints)){
    				pcpoints = tempzeal;
    			}
    		}
    	//}
    	return inArea(getMyPlayer().getLocation().getX(),getMyPlayer().getLocation().getY(),boattiles.getX(),boattiles.getY(), boattilen.getX(), boattilen.getY());
    }
    
    public boolean onisland() {
    	if(!mappedisland){
    		final RSObject rock = getNearestObjectByID(5605);
    		if (rock != null) {
    			//log(""+rock.getLocation().getX()+","+rock.getLocation().getY()+" Distance:"+distanceTo(rock.getLocation()));
    			return distanceTo(rock.getLocation())<10;	
    		} else {
    			return false;
    		}
    	} else {
    		return inArea(getMyPlayer().getLocation().getX(),getMyPlayer().getLocation().getY(),toplefttile.getX(),toplefttile.getY(),bottomrighttile.getX(),bottomrighttile.getY());
    	}
    }
    
    public boolean inArea(final int x, final int y, final int maxX, final int minY, final int minX,final int maxY) {
		if (x >= minX && x <= maxX && y >= minY && y <= maxY) {
			return true;
		}
		return false;
	}
    
    public String between(String main,String s1, String s2) {
    	  
    	  int length=s1.length();

    	  return main.substring(length,main.indexOf(s2,length));

    }
    
    public boolean gotzealforround() {
    	final RSInterface IFACE = RSInterface.getInterface(408);
    	if (IFACE.isValid()) {
    		return Integer.parseInt(RSInterface.getChildInterface(408,11).getText())>49;
    	} else
    		return false;
    }
    
    
    public void onFinish() {
		Bot.getEventManager().removeListener(PaintListener.class, this);
	}

    
    public boolean flags() {
    	if(getMyPlayer().isMoving()){
    		long st = System.currentTimeMillis();
    		RSTile tile = getMyPlayer().getLocation();
    		while(System.currentTimeMillis() - st < 2000){
    			if(!tile.equals(getMyPlayer().getLocation())){
    				st = System.currentTimeMillis();
    	                        tile = getMyPlayer().getLocation();
    			}
    		}
    	} else {
    		return false;
    	}
    	return true;
    }
    
    public int antiban() {
    	final int randomNum = random(1, 18);

		switch (randomNum) {
		case 1:
			wait(random(1000, 1500));
			break;

		case 2:
			final int x = random(4, 750);
			final int y = random(4, 500);
			moveMouse(x, y);
			return random(1000, 1500);

		case 3:
			if (getCurrentTab() != Constants.TAB_INVENTORY) {
				openTab(Constants.TAB_INVENTORY);
				return random(500, 750);
			} else {
				return random(500, 750);
			}

		case 4:
			if (getMyPlayer().isMoving()) {
				return random(750, 1000);
			}
			if (getCurrentTab() != Constants.TAB_STATS) {
				openTab(Constants.TAB_STATS);
			}
			moveMouse(560, 230, 40, 180);
			wait(random(1000, 2000));
			return random(500, 1500);

		case 5:
			if (random(1, 3) == 2) {
				int angle = getCameraAngle() + random(-90, 90);
				if (angle < 0) {
					angle = 0;
				}
				if (angle > 359) {
					angle = 0;
				}

				setCameraRotation(angle);
				return random(500, 750);
			}
		}	
		return random(200,2000);
    }
    
    public void antiban2() {
    	if(!shouldattack()){
    		status = "Waiting Till end of round!";
    	}
    	final int randomNum = random(1, 14);

		switch (randomNum) {
		case 1:
			wait(random(1000, 1500));
			break;

		case 2:
			final int x = random(7, 750);
			final int y = random(9, 500);
			moveMouse(x, y);
			return;

		case 3:
			if (getCurrentTab() != Constants.TAB_INVENTORY) {
				openTab(Constants.TAB_INVENTORY);
				return;
			} else {
				return;
			}

		case 4:
			if (getMyPlayer().isMoving()) {
				return;
			}
			
			moveMouse(0, 0, 580, 480);
			wait(random(1000, 2000));
			return;

		case 5:
			if (random(1, 3) == 2) {
				int angle = getCameraAngle() + random(-90, 90);
				if (angle < 0) {
					angle = 0;
				}
				if (angle > 359) {
					angle = 0;
				}

				setCameraRotation(angle);
				return;
			}	
		
		case 6:
			if(random(1,2)==1) {
				setCameraAltitude(random(50,100));
				return;
			}
		case 7: if(random(1,2)==1) {
			setCameraAltitude(true);
		}
		case 8: if (random(1, 2) == 1){
		    moveMouseSlightly();
		    break;
		}
		}
		return;
    }
    
    public void mapisland() {    	
    	final RSObject rock = getNearestObjectByID(5605);
    	if (rock != null) {
    		rocktile = rock.getLocation();
    		mappedisland = true;
    		status = "Mapping Out Island";
			
    		bottomrightk = new RSTile (rocktile.getX()-8,rocktile.getY()-15);
			topleftk = new RSTile (rocktile.getX()-3,rocktile.getY()-20);
    		knighttile = new RSTile (rocktile.getX()-6,rocktile.getY()-17);     		
    		toplefttile = new RSTile (rocktile.getX()+35,rocktile.getY()-55);  
    		bottomrighttile = new RSTile (rocktile.getX()-35,rocktile.getY()+20);  
    		bottomrightbb = new RSTile (rocktile.getX()-6,rocktile.getY()+4); // Boat on island
    		topleftbb = new RSTile (rocktile.getX()-3,rocktile.getY()-2); // Boat on island
    		battlefield = new RSTile (rocktile.getX()-5,rocktile.getY()-28);
    		//log("Rock Tile:"+rocktile.getX()+","+rocktile.getY());
    		//log("Knight Tile:"+knighttile.getX()+","+knighttile.getY());
    	} else {
    	}
    }
   
    public String side() {
    	if(getLocation().getX()-(rocktile.getX()-6)>=0){
    		return "Left";
    	} else 
    		return "Right";
    }
    
    public boolean byknight() {
    	return distanceTo(knighttile)<8;
    }
    
    public void walktoknight() {
    	RSTile TempTile = new RSTile (rocktile.getX()-random(((rocktile.getX()-knighttile.getX())/2),((rocktile.getX()-knighttile.getX())/2)+2),rocktile.getY()-random(((rocktile.getY()-knighttile.getY())/2),((rocktile.getY()-knighttile.getY())/2)+2));
    	walkTo(TempTile); 	
    	wait(random(1200,1700)+random(1000,1800));
    	if (waitToMove(random(800, 1200))) {
			while (getMyPlayer().isMoving()) {
				antiban2();
				wait(15);
				//walkPathMM(temp);
			}
		}
    	RSTile TempTile2 = new RSTile (knighttile.getX()+random(-2,2),knighttile.getY()+random(-2,2));
    	walkTo(TempTile2); 	
    	if (waitToMove(random(800, 1200))) {
			while (getMyPlayer().isMoving()) {
				antiban2();
				wait(15);
				fights();
			}
		}
    }    
    
    //private void openGate() {
		
	//}

    
    public RSTile getNearest(final ArrayList<RSTile> tiles, final RSTile t) {
		RSTile nearest = tiles.get(0);
		for (int i = 0; i < tiles.size(); i++) {
			if (distanceBetween(tiles.get(i), t) < distanceBetween(nearest, t)) {
				nearest = tiles.get(i);
			}
		}
		return nearest;
	}

    
    public RSTile[] genPath(final RSTile t) {
		RSTile current = getMyPlayer().getLocation();
		final ArrayList<RSTile> tiles = new ArrayList<RSTile>();
		final ArrayList<RSTile> path = new ArrayList<RSTile>();

		while (distanceBetween(t, current) > 2) {
			final int x = current.getX();
			final int y = current.getY();
			tiles.add(new RSTile(x, y - 1));
			tiles.add(new RSTile(x - 1, y));
			tiles.add(new RSTile(x + 1, y));
			tiles.add(new RSTile(x, y + 1));
			tiles.add(new RSTile(x - 1, y - 1));
			tiles.add(new RSTile(x + 1, y - 1));
			tiles.add(new RSTile(x + 1, y + 1));
			tiles.add(new RSTile(x - 1, y + 1));
			final RSTile tile = getNearest(tiles, t);
			path.add(tile);
			this.path = path.toArray(new RSTile[path.size()]);
			current = tile;
			tiles.clear();
		}
		this.path = path.toArray(new RSTile[path.size()]);
		return this.path;
	}

    public boolean WalkCorrectPath(String SideLoc, String portal, RSTile[] Paths){
    	if(SideLoc=="Left"){
    		if(portal=="West" || portal=="South West"){
    			Paths = reversePath(Paths);
    		}
    	}
    	if(!(SideLoc=="Left")){
    		if(portal=="West" || portal=="South West"){
    			if(getLocation().getX()>portaltw.getX()){
    				if(getLocation().getY()>rocktile.getY()+20)
    					Paths = reversePath(Paths);
    			}
    		}
    	}
    	if(!(walkPathMM(Paths))){
			if(onisland()){
				//if(!(walkPathMM(randomizePath(genPath(path.get(path.size()-1)), 2, 2), 10))){
				if(!(walkPathMM(randomizePath(genPath(Paths[Paths.length-1]), 2, 2), 10))){
					if(onisland()){
						if(!walkPathMM(randomizePath(genPath(portaltw), 2, 2), 12)) {
							log("Please post about a walk SUGGESTION (Not error)");
							log("Suggestion to post: x-"+ (rocktile.getX()-getLocation().getX())+",y-"+(rocktile.getY()-getLocation().getY()+ " P:"+portal));
						}
					}
				}
			}
		}
    	return true;
    }
    
    public void walktoportal(String portal) {
    	 ArrayList<RSTile> path = new ArrayList<RSTile>();
    	 if(path.size()>1){
    		 path.clear();
    	 }
    	if(onisland()){
    		if(portal=="West") {
    			portaltw = new RSTile (rocktile.getX()-31,rocktile.getY()-20);
    			path.add(new RSTile (rocktile.getX()-random(10,12),rocktile.getY()-random(9,11)));
    			path.add(new RSTile (rocktile.getX()-random(17,19),rocktile.getY()-random(13,15))); // Before gate
    			path.add(new RSTile (rocktile.getX()-22,rocktile.getY()-18));//Right before portal
    			path.add(new RSTile (rocktile.getX()-28,rocktile.getY()-17)); 
    		}
    		if(portal=="East"){
    			portaltw = new RSTile (rocktile.getX()+31,rocktile.getY()-20);
    			path.add(new RSTile (rocktile.getX()-12,rocktile.getY()-10));
    			path.add(new RSTile (rocktile.getX()-18,rocktile.getY()-14)); // Before gate
    			path.add(new RSTile (rocktile.getX()-9,rocktile.getY()-30));
    			path.add(new RSTile (rocktile.getX(),rocktile.getY()-30));
    			path.add(new RSTile (rocktile.getX()+random(7,9),rocktile.getY()-28));
    			path.add(new RSTile (rocktile.getX()+random(16,18),rocktile.getY()-24));
    			path.add(new RSTile (rocktile.getX()+random(26,31),rocktile.getY()-random(18,21)));
    		}
    		if(portal=="South East"){
    			portaltw = new RSTile (rocktile.getX()+7,rocktile.getY()-40);
    			path.add(new RSTile (rocktile.getX()-12,rocktile.getY()-10));
    			path.add(new RSTile (rocktile.getX()-18,rocktile.getY()-14)); // Before gate		
    			path.add(new RSTile (rocktile.getX()-9,rocktile.getY()-30));
    			path.add(new RSTile (rocktile.getX(),rocktile.getY()-30));
    			path.add(new RSTile (rocktile.getX()+8,rocktile.getY()-36)); //Right before portal
    		}
    		if(portal=="South West"){
    			portaltw = new RSTile (rocktile.getX()-16,rocktile.getY()-40);
    			path.add(new RSTile (rocktile.getX()-12,rocktile.getY()-10));
    			path.add(new RSTile (rocktile.getX()-18,rocktile.getY()-14)); // Before gate
    			path.add(new RSTile (rocktile.getX()-22,rocktile.getY()-24));
    			path.add(new RSTile (rocktile.getX()-14,rocktile.getY()-33));
    			path.add(new RSTile (rocktile.getX()-12,rocktile.getY()-38)); //Right before portal
    		}
    		//if(gateclosed){
    			//opengate();
    		//}
    		WalkCorrectPath(side(), portal,path.toArray( new RSTile[ path.size() ] ));
    		//walkPathMM(randomizePath(genPath(portaltw), 2, 2), 10);
    	}
    }
    
    public boolean closeportal(String Portalz){
    	int westpi, eastpi, sepi,swpi;
    	westpi = distanceTo(new RSTile (rocktile.getX()-31,rocktile.getY()-20));
    	eastpi = distanceTo(new RSTile (rocktile.getX()+31,rocktile.getY()-20));
    	sepi = distanceTo(new RSTile (rocktile.getX()+7,rocktile.getY()-40));
    	swpi = distanceTo(new RSTile (rocktile.getX()-16,rocktile.getY()-40));
	    if((westpi<eastpi) && (westpi<sepi) && (westpi<swpi)){
	    	 log("Close west");
	    }
		if((eastpi<westpi) && (eastpi<sepi) && (eastpi<swpi)){
			log("Close east");
		}
		if((sepi<eastpi) && (sepi<westpi) && (sepi<swpi)){
			log("Close sep");
		}
		if((swpi<eastpi) && (swpi<sepi) && (swpi<westpi)){
			log("Close swp");
		}
    	
    	if(Portalz=="westp"){
	    	if((westpi<eastpi) && (westpi<sepi) && (westpi<swpi)){
	    		return true;
	    	}
    	}
    	if(Portalz=="eastp"){
			if((eastpi<westpi) && (eastpi<sepi) && (eastpi<swpi)){
				return true;
			}
    	}
		if(Portalz=="sep"){
			if((sepi<eastpi) && (sepi<westpi) && (sepi<swpi)){
				return true;
			}
		}
		if(Portalz=="swp"){
			if((swpi<eastpi) && (swpi<sepi) && (swpi<westpi)){
				return true;
			}
		}
    	return false;
    }
    
    public boolean walktoaportal(boolean realwalk) {
    	if(onisland()){
    		final RSInterface portalface = RSInterface.getInterface(408);
    		if (portalface.isValid()) {
    			westp = Integer.parseInt(RSInterface.getChildInterface(408,13).getText());
    			eastp = Integer.parseInt(RSInterface.getChildInterface(408,14).getText());
    			sep = Integer.parseInt(RSInterface.getChildInterface(408,15).getText());
    			swp = Integer.parseInt(RSInterface.getChildInterface(408,16).getText());
    			
    		}
    		portalname = "null!";
    		//boolean skip = false;
    		//int myrand;
    		if(p4match){
    			//myrand=10;
    		} else {
    			//myrand = random(1,4);
    		}
    		//log("Random portal = "+ myrand);
    		if(eastp>=40){//&& closeportal("eastp")){
    			portalname = "East";
    			//if(myrand==1){
    				//skip = true;
    				//p4match = true;
    				
    			//}
    		}
    		if(sep>=40){ //&& !(skip) && closeportal("sep")){
    			portalname = "South East";
    			//if(myrand==2){
    				//skip = true;
    				//p4match = true;
    			//}
    		}
    		if(swp>=40){ //&& !(skip) && closeportal("swp")){
    			portalname = "South West";
    			//if(myrand==3){
    				//skip = true;
    				//p4match = true;
    			//}
    		}
    		if(westp>=40){ // && !(skip) && closeportal("westp")){
    			//if(myrand==4){
    				//skip = true;
    				//p4match = true;
    			//}
    			portalname = "West";
    		}
    		if(!(portalname=="null!")&&realwalk){
    			walktoportal(portalname);
    		} else if(!(portalname=="null!")){
    			return true;
    		}
    		else return false;
    	}
    	return true;
    }

	public boolean abletoattack() {
      return(getMyPlayer().getInteracting() == null);	
    }
    
    public int getSpec() {
		return getSetting(300)/10;
	}
    
    public boolean prayerenabled() {
		return getSetting(1396)>0;
	}

	boolean specEnabled() {
		return (getSetting(301)) == 1;
	}

	void doSpec() {
		if(onisland()){
			if (getSpec() == 100 && !specEnabled() && usespec) {
				openTab(Constants.TAB_ATTACK);
				clickMouse(645 + random(0, 4), 425 + random(0, 4), true);
				wait(random(500, 1000));
			} else {
				wait(random(10, 50));
			}
		}
	}

    
    public boolean cangetonboat(String boat) {
    	return !(RSInterface.getInterface(243).isValid()) || !(RSInterface.getInterface(211).isValid() || !RSInterface.getInterface(242).isValid()); 	
    }
    
    public boolean notbuyarmour() {
    	if(buytop&&!(topbuy)){
    		return false;
    	}
    	if(buybottom&&!(bottombuy)){
    		return false;
    	}
    	if(buygloves&&!(glovesbuy)){
    		return false;
    	}
    	if(buymace&&!(macebuy)){
    		return false;
    	}
    	return true;
    }
    
    public boolean canaffordanitem() {
    	if(pcpoints>=150){
    		if(buygloves&&!glovesbuy) {
    			return true;
    		}
    	}
    	if(pcpoints==250){
    		if(buybottom&&!bottombuy) {
    			return true;
    		}
    		if(buytop&&!topbuy) {
    			return true;
    		}
    	}
    	return false;
    }
    
    public int gettheskill(String skill) {
    	if(tskill=="Melee"){	
			if(skill=="Att"){
				cons = Constants.STAT_ATTACK; 
			}
			if(skill=="Str"){
				cons = Constants.STAT_STRENGTH;
			}
			if(skill=="Def"){
				cons = Constants.STAT_DEFENSE;
			}
		} else if(skill=="Mage"){
			cons = Constants.STAT_MAGIC;
		} else if(skill=="Range"){
			cons = Constants.STAT_RANGE;
		} 
    	return  skills.getCurrentSkillLevel(cons);
    }
    
    public boolean canbuysomething() {
      if(logfullz&&pcpoints>=250-boatp+1){
    	  log("Have full points, ending script");
    	  stopScript(true);
      }
      if(logfullz) {
    	  return false;
      }
      if(pcpoints>=100&&buyskills&&notbuyarmour()){
    	  return true;
      }
      if(!notbuyarmour()) {
    	if(canaffordanitem()){
    		return true;
    	}
      }
      if(!logfullz &&pcpoints>=250-boatp+1 ){
    	  log.warning("Can not buy because your boat points wont add up to desired item");
    	  stopScript(true);
      }
      return false;
    }
    
    public void DoExchange() {
    	RSNPC knight;
    	if(outsideboat()){
    		for (int i = 0; i < topoints.length; i++) {
    			if(getNearestNPCByName("Void Knight").isOnScreen()){
    				break;
    			}
    			wait(random(1000,2500));
    			flags();
    			walkPathMM(topoints);
    		}
    		knight = getNearestNPCByName("Void Knight");
    		if(!(knight==null)){
    			if(!getNearestNPCByName("Void Knight").isOnScreen()){
    				walkTo(knight.getLocation());
    				waitToMove(2000);
        			flags();
    			}
    			atNPC(getNearestNPCByID(3788), "change");
    			wait(random(500,800));
    			flags();
    			wait(random(5000,8000));
    			SpendingPoints();
    		}
    	}    	
    }
    
    public boolean doslider(){
    	if (RSInterface.getInterface(267).isValid()) {	
    		clickMouse(random(473,483),random(180,195),true);
    		wait(random(4000,5000));
    		return true;
    	}
    	return false;
    }
    
    public void confirms() {
    	if (RSInterface.getInterface(267).isValid()) {	
    		atInterface(RSInterface.getInterface(267).getChild(101));
    		wait(random(4000,5000));
    	}
    }
    
    public void SpendingPoints() {
		if (RSInterface.getInterface(267).isValid()) {				
			if (skilltobuy == "Attack") { 
				atInterface(RSInterface.getInterface(267).getChild(56));								
				wait(random(1000, 2000));								
				confirms();
			} else if (skilltobuy == "Strength") { 
				atInterface(RSInterface.getInterface(267).getChild(57));								
				wait(random(1000, 2000));								
				confirms();
			} else if (skilltobuy == "Defence") { 
				atInterface(RSInterface.getInterface(267).getChild(58));								
				wait(random(1000, 2000));								
				confirms();
			} else if (skilltobuy == "Ranged") { 
				atInterface(RSInterface.getInterface(267).getChild(59));								
				wait(random(1000, 2000));								
				confirms();
			} else if (skilltobuy == "Magic") { 
				atInterface(RSInterface.getInterface(267).getChild(60));								
				wait(random(1000, 2000));								
				confirms();
			} else if (skilltobuy == "Hitpoints") { 
				atInterface(RSInterface.getInterface(267).getChild(61));								
				wait(random(1000, 2000));								
				confirms();
			} else if (skilltobuy == "Prayer") { 
				atInterface(RSInterface.getInterface(267).getChild(62));								
				wait(random(1000, 2000));								
				confirms();
			} else if(!notbuyarmour()) {
		    	if(canaffordanitem()){
		    		if(pcpoints>=150){
		        		if(buygloves&&!glovesbuy) {
		        			atInterface(RSInterface.getInterface(267).getChild(44));
		        			wait(random(1000, 2000));								
		    				confirms();
		    				glovesbuy = true;
		        		}
		        	}
		        	if(pcpoints==250){
		        		if(buybottom&&!bottombuy) {
		        			atInterface(RSInterface.getInterface(267).getChild(43));
		        			wait(random(1000, 2000));								
		    				confirms();
		    				bottombuy = true;
		        		}
		        		if(buytop&&!topbuy) {
		        			atInterface(RSInterface.getInterface(267).getChild(42));
		        			wait(random(1000, 2000));								
		    				confirms();
		    				topbuy = true;
		        		}
		        		if(buymace&&!(macebuy)){
		        			atInterface(RSInterface.getInterface(267).getChild(41));
		        			wait(random(1000, 2000));								
		    				confirms();
		    				macebuy = true;
		            	}
		        	}
		    	}
		      }
		} else {
			atNPC(getNearestNPCByID(3788), "change");
			wait(random(1000, 2000));
		}
	}

    
    public boolean died() {
    	if(inArea(getMyPlayer().getLocation().getX(),getMyPlayer().getLocation().getX(),topleftbb.getX(),topleftbb.getY(),bottomrightbb.getX(),bottomrightbb.getY())){
    		walkd = false;
    		return true;
    	}
    	return false;
    }
    
    public boolean byaportal() {
    	if(onisland()){
    		final RSNPC portal = getNearestNPCByName("Portal");
    		if(!(portal==null)){
    			if(distanceTo(portal.getLocation())>5){
    				return false;	
    			}
    			else return true;
    		}
    	}
    	return false;
    }
    
    public boolean shouldattack(){
    	if(walktoaportal(false) && !gotzealforround()) {
    		return true;
    	}
    	if(walktoaportal(false)){
    		return true; 
    	}
    	return walktoaportal(false) && !gotzealforround(); 
    }
    
    public boolean fights() {
    	if(onisland()){
    		RSNPC Me,Portal = null;
    		String[] me;
    		ArrayList<String> attz = new ArrayList<String>();
    		attz.add("Attack");
    		boolean mee = false;
    		int I;
    		if(!defendk){
    			//Me = getNearestNPCByName("Spinner","Shifter","Brawler","Ravager","Torcher","Defiler","Splatter");
    			Me = getNearestNPCByName(ta);
    		} else {
    			Me = getNearestNPCByName("Shifter","Ravager","Torcher","Defiler");
    		}
    		if(attportals){
    			Portal = getNearestNPCToAttackByName("Portal");	
	    		if(!(Portal==null)){
	    			me =Portal.getActions(); 
	    			for(I=0; I < me.length; I++){
	    				//log(me[I]);
	    				if(attz.contains(me[I])){
	    					mee=true;
	    				}
	    			}
	    		}
	    		if(!mee){
					Portal = null;
				}
    		}
    		
    		if(attportals&&(Portal != null)&&Portal.isOnScreen() && shouldattack()){
    			if(getMyPlayer().getInteracting() == null && (Portal != null) && Portal.isOnScreen()) {
    				try {
    					if(atNPC(Portal, "Attack Por")) {
    						wait(random(500,1000));
    						flags();
    						return true;
    					} else {
    						status = "Doing antiban";
    						antiban2();
    					}
    				} catch (IndexOutOfBoundsException  e) { 
    					log("Ignore the above error! Caused from teleporting while trying to fight.");
    				}
    			} else
    				antiban2();
    		} else {
    			if(getMyPlayer().getInteracting() == null && (Me != null) && Me.isOnScreen() && shouldattack()) {
    				try {
	    				if(atNPC(Me, "Attack " + Me.getName())) {
	    					wait(random(500,1000));
	    					flags();
	    					return true;
	    				} else {
	    					status = "Doing antiban";
	    					antiban2();
	    					if(!defendk){
	    		    			//RSNPC Me = getNearestNPCByName("Spinner","Shifter","Brawler","Ravager","Torcher","Defiler","Splatter");
	    		    			Me = getNearestNPCByName(ta);
	    		    		} else {
	    		    			Me = getNearestNPCByName("Shifter","Ravager","Torcher","Defiler");
	    		    		}
	    					if(!(Me==null)&&Me.isOnScreen()) {
	    						return true;
	    					}
	    				}
    				} catch (IndexOutOfBoundsException  e) { 
    					log("Ignore the above error! Caused from teleporting while trying to fight.");
    				}
    			} else
    				antiban2();
    		}
    	}
    	return false;
    }
     
    public RSInterfaceChild getPrayerInterface() {
		if (Bot.getClient().getRSInterfaceCache() == null) {
			return null;
		}
		final RSInterface iface = RSInterface.getInterface(749);
		final RSInterfaceChild child = iface.getChild(4);
		
		return child;
	}
    
    public boolean DoQuickPrayers() {
    	int prayerp;
    	if(onisland()){
    		prayerp = Integer.parseInt(RSInterface.getChildInterface(749,4).getText());
    		if(!prayerenabled()) {
    			if(prayerp>0&&useqp){
    				final RSInterfaceChild cont = getPrayerInterface();
    				return (atInterface(cont));	
    			}
    		}
    	}
		return false;
    	
    }
    
    public boolean enterboat() {
    	wait(random(2000,4000));
    	final RSInterface IFACE = RSInterface.getInterface(243);
		final RSInterface IFACE2 = RSInterface.getInterface(211);
		if (IFACE.isValid()) {
    		zealgained = zealgained + boatp;
		} else if (IFACE2.isValid()) {
			loz++;
    	}
    	if(!tileOnScreen(laddertile)) {
			if(!tileOnMap(laddertile)&& !getMyPlayer().isMoving()){
				walkPathMM(toboat, 10);
			} else {
				if(!getMyPlayer().isMoving()){
					walkTo(laddertile);
				}
			}
		} else {
			final RSObject ladderid = getNearestObjectByID(ladderd);
			if (ladderid != null && !insideboat() && !canbuysomething()) {
				status = "Entering Boat";
				wait(random(700,2400));
				atObject(ladderid, "Cross");
				wait(random(1000,2000));
				if(!insideboat()){
					wait(random(1000,1500));
					atObject(ladderid, "Cross");
					wait(random(1000,2000));
				}
				if(!insideboat()&& !cangetonboat("novice")){
					return false;
				}	
			} else {
				if(!insideboat()&& !cangetonboat("novice")){
					//log("Failed to board boat");
					return false;
				}	
			}
		}
    	return false;
    }
    
	@Override
	public int loop() {
		if(!firstlogin){
			wait(random(3000,5000));
			firstlogin = true;
		}
		wait(random(400,600));
		setCameraAltitude(true);
		if(startlvl==0){
			if(tskill=="Mage"){
				tskilld = tskill;
			} else if(tskill=="Range"){
				tskilld = tskill;
			}
			startlvl = gettheskill(tskilld);
			
		}		
		if(outsideboat()){
			if(canbuysomething()&&!insideboat()){
				DoExchange();
			}
			walkd = false;
			mappedisland = false;
			setangleisland = false;
			knighttile = new RSTile (0,0);
			toplefttile = new RSTile (0,0);
			bottomrighttile = new RSTile (0,0);
			newround = true;
			p4match = false;
			enterboat();
		}
		if(insideboat()){
			mappedisland = false;
			walkd= false;
			newround = true;
			setangleisland = false;
			p4match = false;
			status = "Waiting on boat.";
			return antiban();
		}
		
		if(onisland()){
			status = "Fighting!!!";
			if(!setangleisland){
				setRun(true);
				setFightMode(dfightm);
				wait(random(200,300));
				setangleisland=true;
			}
			if(!mappedisland){
				mapisland();		
			}
			//if(!walkd || died()) {
				//walktoaportal();
			//}	
			
			DoQuickPrayers();
			doSpec();
			if(defendk){
				if(!getMyPlayer().isInCombat() || getMyPlayer().getInteracting() == null) {
					if(!fights() && (getMyPlayer().getInteracting() == null)){
						if(!byknight()){
							walktoknight();
						}
					  }
					}
				} else if(getMyPlayer().isInCombat()){
					status = "In Fight!";
					antiban2();		
				}
			}
			if(!defendk){
				if(!getMyPlayer().isInCombat() || getMyPlayer().getInteracting() == null) {
					if(!fights() && !byaportal() && (getMyPlayer().getInteracting() == null)){
						if(!getMyPlayer().isMoving()) {
							walktoaportal(true); 
						}
					}
				}else if(getMyPlayer().isInCombat()){
					status = "In Fight!";
					antiban2();		
				}				
			}

		return 200;
	}
		
	



	@Override
	public boolean onStart(final Map<String, String> args) {
		wtbs = args.get("wtbs");
		knighttile = new RSTile (0,0);
		toplefttile = new RSTile (0,0);
		bottomrighttile = new RSTile (0,0);
		final gui gui = new gui();
		gui.setVisible(true);
		try {
			log("Checking for updates");
			// Open the version text file
			URLConnection url = new URL("http://www.zaszmedia.com/scripts/zpc/version.txt").openConnection();
			// Create an input stream for it
			BufferedReader reader = new BufferedReader(new InputStreamReader(url.getInputStream()));
			// Check if the current version is out dated
			if (Double.parseDouble(reader.readLine()) > version){
				outdated = true;
				log("You have an old version of the script!");
				log("You can update by visiting http://www.rsbot.org/vb/showthread.php?t=177106");
			} else {
				outdated = false;
				log("You have the latest version of the script!");
			}
			if (reader != null)
				reader.close();
		} catch (IOException e) {
			Bot.getEventManager().removeListener(PaintListener.class, this);
			log("Problem getting version.");
			stopScript();
		}

		while (!startScript) {
			wait(20);
		}
		return true;
	}

	
	public boolean inAreza(final int x, final int y, final int maxX, final int minY, final int minX,final int maxY) {
		if (x >= minX && x <= maxX && y >= minY && y <= maxY) {
			return true;
		}
		return false;
	}

	
	public int optionpaint() {
		Mouse m = Bot.getClient().getMouse();
		//bottom left then top right
		if (inArea(m.x,m.y,560+50,226-60,560,226-10)) {
            return  1;
        }
        if (inArea(m.x,m.y,560+110,226-60,560+51,226-10)) {
        	return  2;
        }
        if (inArea(m.x,m.y,560+170,226-60,560+111,226-10)) {
        	return  3;
        }
		return 0;
	}
	
	// final int x = 300-50; orig
	//int y = 16+75; orig
	//g.fill3DRect(295-50, 3+75, 222+50, 100+75, true); orig
	//g.draw3DRect(295-50, 3+75, 222+50, 100+75, true); orig
	//g.setColor(new Color(60, 140, 200, 50)); orig
	
	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;
            
            final int x = 560;
			int y = 226;
			
			if(newround && onisland()){
				gamesplayed = gamesplayed + 1;
				newround = false;
			}
			if(!(startlvl==0)){
				gettheskill(tskilld);
				startEXP = skills.getCurrentSkillExp(cons);
			}
			if(optionpaint()==0){
				g.setColor(new Color(0, 0, 0, 175));	//new
				g.fillRoundRect(555, 210-45, 175, 95, 10, 10); //new
				g.drawRoundRect(555, 210-45, 175, 95, 10, 10); //new
				g.setColor(Color.green);
				g.drawString("Game", x, y-40);
				g.drawLine(x+50, y-60, x+50, y-30);
				g.drawString("Skills", x+60, y-40);
				g.drawLine(x+110, y-60, x+110, y-30);
				g.drawString("Misc", x+120, y-40);
				
				
				g.setColor(Color.red);
				g.drawString("	     Zasz's Pest Control!", x, y);
				g.setColor(Color.white);
				y = y + 16;
				g.drawString("Status: " + status, x, y);
				y = y + 16;
				g.drawString("Time running :" + hours + ":" + minutes + ":"+ seconds + "", x, y);
				
			}
			if(optionpaint()==1){	
				
				g.setColor(new Color(0, 0, 0, 175));
				g.fillRoundRect(555, 210-45, 175, 250+45, 10, 10); //new
				g.drawRoundRect(555, 210-45, 175, 250+45, 10, 10); //new
				g.setColor(Color.green);
				g.drawString("Game", x, y-40);
				g.drawLine(x+50, y-60, x+50, y-30);
				g.drawString("Skills", x+60, y-40);
				g.drawLine(x+110, y-60, x+110, y-30);
				g.drawString("Misc", x+120, y-40);
				
				
				g.setColor(Color.red);
				g.drawString("	     Zasz's Pest Control!", x, y);
				g.setColor(Color.white);
				y = y + 16;
				g.drawString("Status: " + status, x, y);
				y = y + 16;
				g.drawString("Time running :" + hours + ":" + minutes + ":"+ seconds + "", x, y);
				y = y + 16;
				if(onisland()){
					g.drawString("Games played:"+ (gamesplayed-1), x, y);
				} else {
					g.drawString("Games played:"+gamesplayed, x, y);
				}
				if(pcpoints>0){
					y = y + 16;
					g.drawString("PCP Gained: "+zealgained+" Total PCP: "+pcpoints, x, y);	
				} else {
					y = y + 16;
					g.drawString("PC Points Gained: "+zealgained, x, y);
				}
				y = y + 16;
				if(onisland()&&gamesplayed>0){
					g.drawString("Wins: "+ zealgained/2+" Losses: "+ ((gamesplayed-1) - (zealgained/2)+ " Lack of Z: " + loz), x, y);
				} else {
					g.drawString("Wins: "+ zealgained/2+" Losses: "+(gamesplayed - (zealgained/2) + " Lack of Z: " + loz), x, y);
				}
			}
			if(optionpaint()==2){
				g.setColor(new Color(0, 0, 0, 175));
				g.fillRoundRect(555, 210-45, 175, 250+45, 10, 10); //new
				g.drawRoundRect(555, 210-45, 175, 250+45, 10, 10); //new
				g.setColor(Color.green);
				g.drawString("Game", x, y-40);
				g.drawLine(x+50, y-60, x+50, y-30);
				g.drawString("Skills", x+60, y-40);
				g.drawLine(x+110, y-60, x+110, y-30);
				g.drawString("Misc", x+120, y-40);
				
				
				g.setColor(Color.red);
				g.drawString("	     Zasz's Pest Control!", x, y);
				g.setColor(Color.white);
				y = y + 16;
				g.drawString("Status: " + status, x, y);
				y = y + 16;
				g.drawString("Time running :" + hours + ":" + minutes + ":"+ seconds + "", x, y);
				y = y +16;
				g.drawString("Using: "+tskill+" Skill: "+tskilld, x, y);
				y = y + 16;
				g.drawString("Start "+tskilld+" lvl: "+startlvl+" Current lvl: "+gettheskill(tskilld), x, y);
			}
				//if(!(knighttile.getX()==0)){
					//y = y + 16;
					//g.drawString("Knight tile: " + knighttile.getX()+","+knighttile.getY(), x, y);
				//}
			if(optionpaint()==3){
				g.setColor(new Color(0, 0, 0, 175));
				g.fillRoundRect(555, 210-45, 175, 250+45, 10, 10); //new
				g.drawRoundRect(555, 210-45, 175, 250+45, 10, 10); //new
				g.setColor(Color.green);
				g.drawString("Game", x, y-40);
				g.drawLine(x+50, y-60, x+50, y-30);
				g.drawString("Skills", x+60, y-40);
				g.drawLine(x+110, y-60, x+110, y-30);
				g.drawString("Misc", x+120, y-40);
				
				
				g.setColor(Color.red);
				g.drawString("	     Zasz's Pest Control!", x, y);
				g.setColor(Color.white);
				y = y + 16;
				g.drawString("Status: " + status, x, y);
				y = y + 16;
				g.drawString("Time running :" + hours + ":" + minutes + ":"+ seconds + "", x, y);
				y = y + 16;
				g.drawString("Boat Kind:"+ boattb , x, y);
				if(!(amode=="Mage")){
					if(usespec){
						y = y + 16;
						g.drawString("Set to use spec when able", x, y);
					}
				}
				if(!(knighttile.getX()==0)){
					y = y + 16;
					g.drawString("Earned Zeal for round "+gotzealforround(), x, y);
					
				}
				if(onisland()){
					y = y + 16;
					g.drawString("By a portal: "+ byaportal(), x, y);
					y = y + 16;
					y = y + 16;
					g.drawString("Island Tile: x-"+ (rocktile.getX()-getLocation().getX())+",y-"+(rocktile.getY()-getLocation().getY()), x, y);
				}
			}
        } 
    }
}

Zasz's PC script, made by a very good script writer.
He has the best auto enchanter out there and Out of 600 games of PC, I've gotten no points 7 times.
 
Status
Not open for further replies.
Runescape Gamblingrunescape gambling
Back
Top