/*
* .::Credits::.
* @Author lolpl0xme
*/
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.Dimension;
import javax.swing.JButton;
import java.awt.Rectangle;
import javax.swing.JComboBox;
import org.rsbot.script.Script;
import org.rsbot.script.ScriptManifest;
import org.rsbot.script.methods.Game;
import org.rsbot.script.methods.Magic;
import org.rsbot.script.methods.Skills;
import org.rsbot.event.events.MessageEvent;
import org.rsbot.event.listeners.MessageListener;
import org.rsbot.event.listeners.PaintListener;
import javax.imageio.ImageIO;
import java.io.IOException;
import java.net.URL;
import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.BasicStroke;
import java.awt.Image;
import java.awt.Point;
import java.awt.RenderingHints;
import java.awt.Toolkit;
import java.awt.event.WindowListener;
@ScriptManifest(authors = "Lolpl0xme", keywords = "Magic", name = "iTele", version = 1.3,
description = "Unique | iTele
| AIO")
public class iTele extends Script implements PaintListener, MessageListener {
private iTeleGUI gui = null;
private String location = null;
private String status = "null";
public long startTime = System.currentTimeMillis();
double version = 1.3;
public int expLevel;
private int xpHour;
private int startXp;
public int Teles = 0;
public int startExp;
public int expGained = 0;
public int startLvl;
public int gainedLvls;
public int xpLevel;
private int currentLevel;
private int xpGained;
private int currentXp;
long runTime = 0;
long seconds = 0;
long minutes = 0;
long hours = 0;
public void Antiban(){
switch (random(1, 20)) {
case 1:
camera.setAngle(random(-180,180));
status = "Antiban";
break;
case 2:
mouse.moveSlightly();
status = "Antiban";
break;
case 3:
mouse.moveRandomly(1,2);
status = "Antiban";
break;
case 4:
if (random(1, 18 ) == 1) {
mouse.moveOffScreen();
status = "Antiban";
sleep(random(20000,50000));
break;
}
case 5:
game.openTab(Game.TAB_STATS);
skills.doHover(Skills.INTERFACE_MAGIC);
status = "Antiban";
sleep(random(1000, 2100));
break;
}
}
@Override
public boolean onStart(){
gui = new iTeleGUI();
gui.setVisible(true);
gui.addWindowListener(new WindowListener() {
public void windowClosing(java.awt.event.WindowEvent e) {
log("iTele has been stopped");
stopScript();
}
public void windowOpened(java.awt.event.WindowEvent e) {
}
public void windowClosed(java.awt.event.WindowEvent e) {
}
public void windowIconified(java.awt.event.WindowEvent e) {
}
public void windowDeiconified(java.awt.event.WindowEvent e) {
}
public void windowActivated(java.awt.event.WindowEvent e) {
}
public void windowDeactivated(java.awt.event.WindowEvent e) {
}
});
while (gui.isVisible()) {
sleep(200, 300);
}
if (location.equals("Varrock")) {
magic.castSpell
(Magic.SPELL_VARROCK_TELEPORT);
status = "Teleporting";
Teles++;
Antiban();
status = "Antiban";
sleep(random(2400, 3000));
}
if (location.equals("Camelot")) {
magic.castSpell
(Magic.SPELL_CAMELOT_TELEPORT);
status = "Teleporting";
Teles++;
Antiban();
status = "Antiban";
sleep(random(2400, 3000));
}
if (location.equals("Lumbridge")) {
magic.castSpell
(Magic.SPELL_LUMBRIDGE_TELEPORT);
status = "Teleporting";
Teles++;
Antiban();
status = "Antiban";
sleep(random(2400, 3000));
}
if (location.equals("Falador")) {
magic.castSpell
(Magic.SPELL_FALADOR_TELEPORT);
status = "Teleporting";
Teles++;
Antiban();
status = "Antiban";
sleep(random(2400, 3000));
}
if (location.equals("Watch Tower")) {
magic.castSpell
(Magic.SPELL_WATCHTOWER_TELEPORT);
status = "Teleporting";
Teles++;
Antiban();
status = "Antiban";
sleep(random(2400, 3000));
}
if (location.equals("Trollheim")) {
magic.castSpell
(Magic.SPELL_TROLLHEIM_TELEPORT);
status = "Teleporting";
Teles++;
Antiban();
status = "Antiban";
sleep(random(2400, 3000));
}
if (location.equals("Ardougne")) {
magic.castSpell
(Magic.SPELL_ARDOUGNE_TELEPORT);
status = "Teleporting";
Teles++;
Antiban();
status = "Antiban";
sleep(random(2400, 3000));
}
startXp = skills.getCurrentExp(8);
mouse.setSpeed(10);
log("Start with runes/staff");
startExp = skills.getCurrentExp
(Skills.MAGIC);
startLvl = skills.getRealLevel
(Skills.MAGIC);
startTime = System.currentTimeMillis();
return true;
}
@Override
public void onFinish() {
log("Post progress report saved please.");
env.saveScreenshot(true);
}
public void Teleport(){
if (location.equals("Varrock")) {
magic.castSpell
(Magic.SPELL_VARROCK_TELEPORT);
status = "Teleporting";
Teles++;
Antiban();
status = "Antiban";
sleep(random(2400, 3000));
} else if (location.equals("Camelot")) {
magic.castSpell
(Magic.SPELL_CAMELOT_TELEPORT);
status = "Teleporting";
Teles++;
Antiban();
status = "Antiban";
sleep(random(2400, 3000));
} else if (location.equals("Lumbridge")) {
magic.castSpell
(Magic.SPELL_LUMBRIDGE_TELEPORT);
status = "Teleporting";
Teles++;
Antiban();
status = "Antiban";
sleep(random(2400, 3000));
} else if (location.equals("Falador")) {
magic.castSpell
(Magic.SPELL_FALADOR_TELEPORT);
status = "Teleporting";
Teles++;
Antiban();
status = "Antiban";
sleep(random(2400, 3000));
} else if (location.equals("Watch Tower")) {
magic.castSpell
(Magic.SPELL_WATCHTOWER_TELEPORT);
status = "Teleporting";
Teles++;
Antiban();
status = "Antiban";
sleep(random(2400, 3000));
} else if (location.equals("Trollheim")) {
magic.castSpell
(Magic.SPELL_TROLLHEIM_TELEPORT);
status = "Teleporting";
Teles++;
Antiban();
status = "Antiban";
sleep(random(2400, 3000));
} else if (location.equals("Ardougne")) {
magic.castSpell
(Magic.SPELL_ARDOUGNE_TELEPORT);
status = "Teleporting";
Teles++;
Antiban();
status = "Antiban";
sleep(random(2400, 3000));
}
}
@Override
public void messageReceived(MessageEvent e) {
final String message = e.getMessage();
if (message.contains("You do not have enough Law Runes to cast this spell")) {
stopScript(true);
}
}
private final RenderingHints antialiasing = new RenderingHints(
RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
private Image getImage(String url) {
try {
return ImageIO.read(new URL(url));
} catch (IOException e) {
return null;
}
}
private final Image img1 = getImage ("http://img18.imageshack.us/img18/5553/itele.png");
private final Color color1 = new Color(255, 255, 255);
private final Color color4 = new Color(0, 0, 0);
private final Color color5 = new Color(255, 255, 255);
private final Color color6 = new Color(255, 255, 204);
private final Color Custom = new Color(0, 185, 255);
private final BasicStroke stroke1 = new BasicStroke(2);
private final Font font2 = new Font("Comic Sans MS", 0, 15);
public void onRepaint(Graphics g1) {
if (game.isLoggedIn()) {
runTime = System.currentTimeMillis() - startTime;
seconds = runTime / 1000;
if (seconds >= 60) {
minutes = seconds / 60;
seconds -= (minutes * 60);
}
if (minutes >= 60) {
hours = minutes / 60;
minutes -= (hours * 60);
}
xpHour = (int) ((3600000.0 / runTime) * xpGained);
}
Graphics2D g = (Graphics2D)g1;
g.setRenderingHints(antialiasing);
currentXp = skills.getCurrentExp(Skills.MAGIC);
xpGained = currentXp - startXp;
final int percent = skills.getPercentToNextLevel(Skills.MAGIC);
g.setColor(color5);
g.fillRect(10, 405, 117, 17);
g.setColor(Custom);
g.fillRect(10, 405, percent, 17);
g.setColor(color4);
g.setStroke(stroke1);
g.drawRect(10, 405, 117, 17);
g.setFont(font2);
g.setColor(color6);
g.setColor(Color.black);
g.drawString("" + percent + "%", 65, 420);
// TRACKS MOUSE SO YOU KNOW WHERE IT IS AT ALL TIMES \\
g.setColor(Color.white);
g.drawLine(mouse.getLocation().x - 5, mouse.getLocation().y, mouse.getLocation().x + 5, mouse.getLocation().y);
g.drawLine(mouse.getLocation().x, mouse.getLocation().y - 5, mouse.getLocation().x, mouse.getLocation().y + 5);
currentLevel =
skills.getRealLevel(Skills.MAGIC);
gainedLvls =
skills.getRealLevel(Skills.MAGIC) -
startLvl;
expGained =
skills.getCurrentExp(Skills.MAGIC) -
startExp;
expLevel =
skills.getExpToNextLevel(Skills.MAGIC);
xpLevel =
skills.getExpToNextLevel(Skills.MAGIC);
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;
g.drawImage(img1, 7, 344, null);
g.setFont(font2);
g.setColor(color1);
g.drawString("Runtime: "+ hours + ":" + minutes + ":" + seconds, 204, 355);
g.drawString("Status: " + status + ".", 204, 375);
g.drawString("Teleports: " + Teles, 204, 395);
g.drawString("Current level: " + currentLevel, 204, 415);
g.drawString("Levels gained: " + gainedLvls, 204, 435);
g.drawString("Levels gained: " + gainedLvls, 204, 455);
g.drawString("Exp gained: " + expGained , 350, 375);
g.drawString("Exp till level: " + expLevel, 350, 355);
g.drawString("Exp p/h: " + xpHour, 350, 395);
g.drawString("Version: " + version, 17, 455);
}
@Override
public int loop() {
if (game.getCurrentTab() != Game.TAB_MAGIC) {
game.openTab(Game.TAB_MAGIC);
}
Antiban();
status = "Antiban";
Teleport();
status = "Teleporting";
return 0;
}
private class iTeleGUI extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private JButton StartButton = null;
private JComboBox TeleList = null;
public iTeleGUI() {
super();
initialize();
}
private void initialize() {
this.setSize(195, 124);
this.setContentPane(getJContentPane());
this.setTitle("iTele GUI");
}
private Point getCenteredCorner(Component c) {
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
return new Point((int) ((dim.getWidth() - c.getWidth()) / 2),
(int) ((dim.getHeight() - c.getHeight()) / 2));
}
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(getStartButton(), null);
jContentPane.add(getTeleList(), null);
}
return jContentPane;
}
private JButton getStartButton() {
if (StartButton == null) {
StartButton = new JButton();
StartButton.setBounds(new Rectangle(20, 45, 136, 31));
StartButton.setText("Start iTele");
StartButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
if (((String) TeleList.getSelectedItem()).equals("Select")) {
JOptionPane.showMessageDialog(
iTeleGUI.this, "Please select a location", "Selection error", JOptionPane.ERROR_MESSAGE);
return;
}
dispose();
}
});
}
return StartButton;
}
private JComboBox getTeleList() {
if (TeleList == null) {
TeleList = new JComboBox(new String[] {"Select",
"Lumbridge", "Varrock", "Falador", "Camelot", "Ardougne", "Trollheim",
"Watch Tower"});
TeleList.setBounds(new Rectangle(19, 11, 137, 16));
TeleList.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent e) {
location = (String) TeleList.getSelectedItem();
}
});
}
return TeleList;
}
}
}