Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.Color;
- import java.awt.Font;
- import java.awt.Graphics;
- import java.awt.Graphics2D;
- import java.awt.Image;
- import java.awt.RenderingHints;
- import java.awt.event.MouseEvent;
- import org.rsbot.script.Script;
- import org.rsbot.script.ScriptManifest;
- import org.rsbot.script.methods.Skills;
- import org.rsbot.script.wrappers.RSObject;
- import org.rsbot.script.wrappers.RSTile;
- import org.rsbot.script.wrappers.RSArea;
- import java.awt.event.KeyEvent;
- import java.awt.event.MouseListener;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.net.URL;
- import javax.imageio.ImageIO;
- import javax.swing.JOptionPane;
- import org.rsbot.event.events.MessageEvent;
- import org.rsbot.event.listeners.MessageListener;
- import org.rsbot.event.listeners.PaintListener;
- import org.rsbot.script.methods.Game;
- @ScriptManifest(authors = "Maze2234", name = "GateStone Maker", version = 3.31, description = "Creates gatestones within daemonheim for magic experience.")
- public class GateStones extends Script implements PaintListener, MessageListener, MouseListener {
- //Variables_______________________________________________________________________
- private double scriptVersion = GateStones.class.getAnnotation(ScriptManifest.class).version();
- private int startExp;
- private int gainedExp;
- private int startLvl;
- private int gainedLvls;
- private int currentLevel;
- private int percentLevel;
- private int mouseSpeed = 1;
- private int[] dungLadderID = {51156, 50604, 51704, 54675};
- private int ExpHour = 0;
- private int cameraAntiBan = 0;
- private long startTime;
- private long runTime;
- private long expLevel;
- private boolean hasBall = false;
- private boolean startedScript = false;
- private boolean showPaint = true;
- private Font font = new Font("Monospaced", Font.BOLD, 16);
- private final Image gateStone = getImage("http://rs2basic.webs.com/Images/GSBG.png");
- //Voids & Booleans________________________________________________________________
- //Locations and Walking
- private boolean outSide(){
- RSArea area = new RSArea(new RSTile(3445, 3718), new RSTile(3472, 3729));
- return area.contains(getMyPlayer().getLocation());
- }
- //Clicking Objects
- private void clickDoor() {
- antiBan();
- if (objects.getNearest(48496) != null) {
- if (!interfaces.get(236).isValid() && !interfaces.get(210).isValid() && !interfaces.get(947).isValid() && !interfaces.get(938).isValid()) {
- RSObject dungDoor = objects.getNearest(48496);
- if (!dungDoor.isOnScreen()) {
- walking.walkTileMM(dungDoor.getLocation());
- sleep(random(1200, 1400));
- }
- if (dungDoor.isOnScreen()) {
- dungDoor.doClick();
- sleep(random(1200, 1600));
- }
- }
- }
- }
- private void clickLadder() {
- antiBan();
- if (objects.getNearest(dungLadderID) != null) {
- if (!interfaces.get(236).isValid() && !interfaces.get(211).isValid()) {
- RSObject dungLadder = objects.getNearest(dungLadderID);
- if (!dungLadder.isOnScreen()) {
- walking.walkTileMM(dungLadder.getLocation());
- sleep(random(1200, 1400));
- }
- if (dungLadder.isOnScreen()) {
- dungLadder.doClick();
- sleep(random(1500, 1800));
- }
- }
- }
- }
- private void clickStairs() {
- antiBan();
- if (objects.getNearest(50552) != null && getMyPlayer().getAnimation() != 13760) {
- RSObject dungStairs = objects.getNearest(50552);
- if (!dungStairs.isOnScreen()) {
- walking.walkTileMM(dungStairs.getLocation());
- sleep(random(1200, 1400));
- }
- if (dungStairs.isOnScreen()) {
- dungStairs.doClick();
- sleep(random(800, 1000));
- }
- }
- }
- //Tasks
- private void formParty() {
- antiBan();
- if (interfaces.get(210).getComponent(2).isValid()) {
- mouse.setSpeed(mouseSpeed + random(0, 5));
- interfaces.get(210).getComponent(2).doClick();
- sleep(random(400, 500));
- }
- if (interfaces.get(236).getComponent(1).isValid()) {
- mouse.setSpeed(mouseSpeed + random(0, 5));
- interfaces.get(236).getComponent(1).doClick();
- sleep(random(300, 400));
- }
- }
- private void setDifficulty() {
- antiBan();
- if (interfaces.get(947).getComponent(761).isValid()) {
- mouse.setSpeed(mouseSpeed + random(0, 5));
- interfaces.get(947).getComponent(761).doClick();//change floor (finish)
- sleep(random(200, 400));
- }
- if (interfaces.get(938).getComponent(39).isValid()) {
- mouse.setSpeed(mouseSpeed + random(0, 5));
- interfaces.get(938).getComponent(39).doClick();//change complexity (finish)
- sleep(random(200, 400));
- }
- }
- private void setSize() {
- antiBan();
- if (interfaces.get(236).getComponent(1).isValid()) {
- mouse.setSpeed(mouseSpeed + random(0, 5));
- interfaces.get(236).getComponent(1).doClick();//size (small)
- }
- }
- private void makeStones() {
- antiBan();
- if (inventory.contains(17489)) {
- mouse.setSpeed(mouseSpeed + random(0, 3));
- inventory.getItem(17489).doAction("Drop");
- keyboard.pressKey((char) KeyEvent.VK_F4);
- sleep(random(75, 100));
- keyboard.releaseKey((char) KeyEvent.VK_F4);
- mouse.setSpeed(mouseSpeed + random(0, 3));
- interfaces.get(950).getComponent(38).doAction("Quick-cast");//make gatestone
- sleep(random(750, 850));
- keyboard.pressKey((char) KeyEvent.VK_F1);
- sleep(random(75, 100));
- keyboard.releaseKey((char) KeyEvent.VK_F1);
- } else if (!inventory.contains(17489)) {
- keyboard.pressKey((char) KeyEvent.VK_F4);
- sleep(random(75, 100));
- keyboard.releaseKey((char) KeyEvent.VK_F4);
- mouse.setSpeed(mouseSpeed + random(0, 3));
- interfaces.get(950).getComponent(38).doAction("Quick-cast");//make gatestone
- sleep(random(750, 850));
- keyboard.pressKey((char) KeyEvent.VK_F1);
- sleep(random(75, 100));
- keyboard.releaseKey((char) KeyEvent.VK_F1);
- }
- }
- private void leaveDung() {
- antiBan();
- clickLadder();
- if (interfaces.get(211).getComponent(3).isValid()) {
- mouse.setSpeed(mouseSpeed + random(0, 5));
- interfaces.get(211).getComponent(3).doClick();//Leave party (Continue)
- sleep(random(800, 1000));
- }
- if (interfaces.get(236).getComponent(1).isValid()) {
- mouse.setSpeed(mouseSpeed + random(0, 5));
- interfaces.get(236).getComponent(1).doClick();//Leave party (Yes)
- }
- }
- private void dropBall() {
- game.openTab(Game.TAB_EQUIPMENT);
- sleep(random(100, 200));
- if (interfaces.get(387).isValid()) {
- mouse.setSpeed(random(8, 11));
- interfaces.get(387).getComponent(17).doAction("Remove");
- sleep (random(400, 500));
- }
- if (inventory.contains(751)) {
- hasBall = false;
- inventory.getItem(751).doAction("Drop");
- sleep(random(400, 700));
- }
- else if (!inventory.contains(751)) {
- log(Color.RED, "Please bank all items before running the script.");
- stopScript();
- }
- }
- //Other
- @Override
- public void messageReceived(MessageEvent me) {
- final String msg = me.getMessage();
- if (msg.contains("cannot be taken into Daemonheim") && me.getID() == MessageEvent.MESSAGE_SERVER) {
- hasBall = true;
- }
- }
- @Override
- public boolean onStart(){
- log(Color.BLUE, "Welcome to Maze's GateStone maker.");
- double currver = getCurrentVersion();
- if(currver > scriptVersion) {
- log(Color.GREEN,"GateStones has been updated!");
- log("Your current version is " + scriptVersion + ". The latest version is " + currver);
- log("You can download this update from:");
- log(Color.MAGENTA, "http://www.powerbot.org/vb/showthread.php?t=800493");
- }
- Object[] options = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10"};
- mouseSpeed = (int)JOptionPane.showOptionDialog(null, "Choose the mouse speed for the script: \n" + "(1 being the fastest)", "GateStones",JOptionPane.DEFAULT_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, 1);
- startedScript = true;
- startExp = -1;
- startLvl = skills.getRealLevel(Skills.MAGIC);
- startTime = System.currentTimeMillis();
- startCamera();
- return true;
- }
- @Override
- public void onFinish(){
- startedScript = false;
- log("Thanks for using Maze's Gatestone maker.");
- log("Ran for " + formatTime(runTime));
- log("You gained "+ (gainedExp) +" experiance and "+ gainedLvls +" magic levels.");
- env.saveScreenshot(true);
- stopScript();
- }
- private String formatTime(final long time) {
- final int sec = (int) (time / 1000), h = sec / 3600, m = sec / 60 % 60, s = sec % 60;
- return (h < 10 ? "0" + h : h) + ":" + (m < 10 ? "0" + m : m) + ":"
- + (s < 10 ? "0" + s : s);
- }
- public double getCurrentVersion() {
- try {
- BufferedReader r = new BufferedReader(new InputStreamReader(new URL("http://scripters.powerbot.org/240751/ver.txt").openStream()));
- double d = Double.parseDouble(r.readLine());
- r.close();
- return d;
- } catch(Exception e) {
- log("Error checking for latest version.");
- }
- return scriptVersion;
- }
- private Image getImage(String url) {
- try {
- return ImageIO.read(new URL(url));
- } catch (IOException e) {
- return null;
- }
- }
- //AntiBan
- public void startCamera() {
- new Thread() {
- @Override
- public void run() {
- while (startedScript) {
- if (!isActive()){return;}
- if (game.isLoggedIn() && getMyPlayer().isOnScreen()) {
- switch (cameraAntiBan) {
- case 3:
- camera.moveRandomly(1000);;
- break;
- case 5:
- camera.setPitch(random(10, 100));
- break;
- case 7:
- camera.setAngle(random(0, 360));
- break;
- }
- }
- try {
- Thread.sleep((random(100, 500)));
- } catch (Exception e) {
- log.severe("Error Waiting!");
- }
- }
- }
- }.start();
- }
- private void antiBan() {
- int antiBan = random(1, 70);
- cameraAntiBan = random(1, 30);
- switch (antiBan) {
- case 3:
- mouse.setSpeed(mouseSpeed + random(3, 7));
- mouse.moveSlightly();
- sleep(random(50, 300));
- break;
- case 5:
- if (random(1, 20) == 2) {
- mouse.setSpeed(mouseSpeed + random(3, 7));
- mouse.moveOffScreen();
- sleep(random(1000, 10000));
- }
- break;
- case 10:
- if (random(1, 20) == 2) {
- mouse.setSpeed(mouseSpeed + random(3, 7));
- game.openTab(Game.TAB_STATS);
- interfaces.get(320).getComponent(87).doHover();
- sleep(random(3000, 5000));
- }
- break;
- default:
- break;
- }
- }
- //LOOP____________________________________________________________
- @Override
- public int loop() {
- if(game.isLoggedIn() && getMyPlayer().isOnScreen() && isActive() && startedScript) {
- if (startExp < 0) {
- startExp = skills.getCurrentExp(Skills.MAGIC);
- }
- //Starting a party
- if (game.getPlane() == 0 && outSide() && hasBall == false) {
- clickDoor();
- formParty();
- clickDoor();
- setDifficulty();
- setSize();
- } else if (game.getPlane() == 0 && outSide() && hasBall == true) {
- dropBall();
- }
- if (!outSide() && game.getPlane() == 0) {
- //Making gatestones
- if (inventory.getCount(true, 16100) >= 3)
- if(inventory.contains(17239) == true)
- {
- mouse.click(580,265,5,1,false);
- sleep(55,75);
- mouse.click(580,342,5,1,true);
- }
- makeStones();
- //Leaving Dungeon
- else if (inventory.getCount(true, 16100) <=2 && inventory.getCount(true, 16100) != -1 || inventory.getCount(true, 16100) == -1) leaveDung();
- }
- if (game.getPlane() == 1) {
- mouse.setSpeed(mouseSpeed + random(0, 6));
- clickStairs();
- }
- }
- return random(10, 25);
- }
- //Paint____________________________________________________
- @Override
- public void mouseClicked(MouseEvent e) {
- if (e.getPoint().getX() >= 7 && e.getPoint().getX() <= 70 && e.getPoint().getY() >= 456 && e.getPoint().getY() <= 472) {
- showPaint = !showPaint;
- }
- }
- @Override
- public void mousePressed(MouseEvent e) {
- }
- @Override
- public void mouseReleased(MouseEvent e) {
- }
- @Override
- public void mouseEntered(MouseEvent e) {
- }
- @Override
- public void mouseExited(MouseEvent e) {
- }
- @Override
- public void onRepaint(Graphics g1) {
- if(game.isLoggedIn() && isActive() && startedScript) {
- final Graphics2D g2 = (Graphics2D) g1;
- g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
- RenderingHints.VALUE_ANTIALIAS_ON);
- currentLevel = skills.getRealLevel(Skills.MAGIC);
- gainedLvls = skills.getRealLevel(Skills.MAGIC) - startLvl;
- gainedExp = skills.getCurrentExp(Skills.MAGIC) - startExp;
- expLevel = skills.getExpToNextLevel(Skills.MAGIC);
- ExpHour = (int) ((3600000.0 / (double) runTime) * gainedExp);
- runTime = System.currentTimeMillis() - startTime;
- percentLevel = skills.getPercentToNextLevel(Skills.MAGIC);
- if(!showPaint) {
- g2.drawString("Show Paint", 10, 470);
- }
- if (showPaint) {
- g2.drawImage(gateStone, 5, 300, null);
- g2.setColor(Color.WHITE);
- g2.drawString("Hide Paint", 10, 470);
- g2.setFont(font);
- g2.drawString(currentLevel + " (" + gainedLvls + ")", 445, 376);
- g2.drawString("" + expLevel, 420, 400);
- if (gainedExp /1000 <= 0) {
- g2.drawString((gainedExp) + " (" + (ExpHour / 1000) + "K Xp/h)", 353, 425);
- } else if (gainedExp / 1000 >= 1 && gainedExp /1000000 < 1) {
- g2.drawString((gainedExp) / 1000 + "K " + " (" + (ExpHour / 1000) + "K Xp/h)", 353, 425);
- } else if (gainedExp / 1000000 >= 1) {
- g2.drawString((gainedExp) / 1000000 + "M" + " (" + (ExpHour / 1000) + "K Xp/h)", 353, 425);
- }
- if(ExpHour != 0 && gainedExp >= 2000){
- float timeTNLhour = 0;
- timeTNLhour = (float) expLevel/(float)ExpHour;
- float timeTNLmin = timeTNLhour*60;
- float timeTNLsec = timeTNLmin*60;
- int estimatedHour = (int) (timeTNLsec/3600);
- float tempminutes = timeTNLsec%3600;
- int estimatedMinutes = (int) (tempminutes/60);
- int estimatedSeconds = (int) (tempminutes%60);
- if (estimatedMinutes < 10 && estimatedSeconds < 10) {
- g2.drawString(estimatedHour + ":0" + estimatedMinutes + ":0" + estimatedSeconds, 320, 454);
- } else if (estimatedMinutes > 10 && estimatedSeconds < 10) {
- g2.drawString(estimatedHour + ":" + estimatedMinutes + ":0" + estimatedSeconds, 320, 454);
- } else if (estimatedMinutes < 10 && estimatedSeconds > 10) {
- g2.drawString(estimatedHour + ":0" + estimatedMinutes + ":" + estimatedSeconds, 320, 454);
- } else {
- g2.drawString(estimatedHour + ":" + estimatedMinutes + ":" + estimatedSeconds, 320, 454);
- }
- } else if (ExpHour == 0 || gainedExp <= 5000) {
- g2.drawString("N/A", 320, 454);
- }
- g2.drawString("Run Time: " + formatTime(runTime), 330, 335);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement