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);
http://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);
http://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, ;
jPanel4.add(jRadioButton10, 9);
jPanel4.add(jRadioButton11, 10);
http://jPanel4.add(, 4);
http://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&¬buyarmour()){
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
http://g.fill3DRect(295-50, 3+75, 222+50, 100+75, true); orig
http://g.draw3DRect(295-50, 3+75, 222+50, 100+75, true); orig
http://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;
http://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);
}
}
}
}
}
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);
http://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);
http://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, ;
jPanel4.add(jRadioButton10, 9);
jPanel4.add(jRadioButton11, 10);
http://jPanel4.add(, 4);
http://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&¬buyarmour()){
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
http://g.fill3DRect(295-50, 3+75, 222+50, 100+75, true); orig
http://g.draw3DRect(295-50, 3+75, 222+50, 100+75, true); orig
http://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;
http://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);
}
}
}
}
}