Advertisement
asciicat

GateStones.java 3.51

Jun 11th, 2011
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 16.97 KB | None | 0 0
  1. import java.awt.Color;
  2. import java.awt.Font;
  3. import java.awt.Graphics;
  4. import java.awt.Graphics2D;
  5. import java.awt.Image;
  6. import java.awt.RenderingHints;
  7. import java.awt.event.KeyEvent;
  8. import java.awt.event.MouseEvent;
  9. import org.rsbot.script.Script;
  10. import org.rsbot.script.ScriptManifest;
  11.  
  12. import org.rsbot.script.methods.Skills;
  13. import org.rsbot.script.wrappers.RSObject;
  14. import org.rsbot.script.wrappers.RSTile;
  15. import org.rsbot.script.wrappers.RSArea;
  16.  
  17. import java.awt.event.MouseListener;
  18. import java.io.BufferedReader;
  19. import java.io.IOException;
  20. import java.io.InputStreamReader;
  21. import java.net.URL;
  22. import java.text.DecimalFormat;
  23. import java.text.DecimalFormatSymbols;
  24. import javax.imageio.ImageIO;
  25. import javax.swing.JOptionPane;
  26. import org.rsbot.event.events.MessageEvent;
  27. import org.rsbot.event.listeners.MessageListener;
  28. import org.rsbot.event.listeners.PaintListener;
  29. import org.rsbot.script.methods.Game;
  30.  
  31. @ScriptManifest(authors = "Maze2234", name = "GateStone Maker", version = 3.51, description = "Creates gatestones within daemonheim for magic experience.")
  32.  
  33. public class GateStones extends Script implements PaintListener, MessageListener, MouseListener {
  34.  
  35. //Variables_______________________________________________________________________
  36.  
  37. private double scriptVersion = GateStones.class.getAnnotation(ScriptManifest.class).version();
  38. private int startExp;
  39. private int gainedExp;
  40. private int startLvl;
  41. private int gainedLvls;
  42. private int currentLevel;
  43. private int mouseSpeed = 1;
  44. private int[] dungLadderID = {51156, 50604, 51704, 54675};
  45. private int ExpHour = 0;
  46. private int cameraAntiBan = 0;
  47. private long startTime;
  48. private long runTime;
  49. private long expLevel;
  50. private boolean hasBall = false;
  51. private boolean startedScript = false;
  52. private boolean showPaint = true;
  53.  
  54. private Font font = new Font("Monospaced", Font.BOLD,  16);
  55. private final Image gateStone = getImage("http://scripters.powerbot.org/240751/GSBG.png");
  56.  
  57. //Voids & Booleans________________________________________________________________
  58.  
  59. //Locations and Walking
  60. private boolean outSide(){
  61.     RSArea area = new RSArea(new RSTile(3445, 3718), new RSTile(3472, 3729));
  62.     return area.contains(getMyPlayer().getLocation());
  63. }
  64.  
  65. //Clicking Objects
  66. private void clickDoor() {
  67.         antiBan();
  68.     if (objects.getNearest(48496) != null) {
  69.             if (!interfaces.get(236).isValid() && !interfaces.get(210).isValid() && !interfaces.get(947).isValid() && !interfaces.get(938).isValid()) {
  70.                     RSObject dungDoor = objects.getNearest(48496);
  71.                     if (!dungDoor.isOnScreen() && dungDoor.getLocation() != null) {
  72.                         walking.walkTileMM(dungDoor.getLocation());
  73.                         sleep(random(1200, 1400));
  74.                     }
  75.                     if (dungDoor.isOnScreen()) {
  76.                         dungDoor.interact("Climb-down");
  77.                         sleep(random(1200, 1600));
  78.                     }
  79.                 }
  80.     }
  81. }
  82.  
  83. private void clickLadder() {
  84.         antiBan();
  85.     if (objects.getNearest(dungLadderID) != null) {
  86.             if (!interfaces.get(236).isValid() && !interfaces.get(211).isValid()) {
  87.                 RSObject dungLadder = objects.getNearest(dungLadderID);
  88.                 if (!dungLadder.isOnScreen() && dungLadder.getLocation() != null) {
  89.                     walking.walkTileMM(dungLadder.getLocation());
  90.                     sleep(random(1200, 1400));
  91.                 }
  92.                 if (dungLadder.isOnScreen()) {
  93.                     dungLadder.interact("Climb-up");
  94.                     sleep(random(1500, 1800));
  95.                 }
  96.             }
  97.         }
  98. }
  99.  
  100. private void clickStairs() {
  101.         antiBan();
  102.     if (objects.getNearest(50552) != null && getMyPlayer().getAnimation() != 13760) {
  103.             RSObject dungStairs = objects.getNearest(50552);
  104.             if  (!dungStairs.isOnScreen() && dungStairs.getLocation() != null) {
  105.                 walking.walkTileMM(dungStairs.getLocation());
  106.                 sleep(random(1200, 1400));
  107.             }
  108.             if (dungStairs.isOnScreen()) {
  109.                 dungStairs.interact("Jump-down");
  110.                 sleep(random(1200, 1600));
  111.             }
  112.     }
  113. }
  114.  
  115. //Tasks
  116. private void formParty() {
  117.     antiBan();
  118.     if (interfaces.get(210).getComponent(2).isValid()) {
  119.         mouse.setSpeed(mouseSpeed + random(0, 5));
  120.         interfaces.get(210).getComponent(2).doClick();
  121.         sleep(random(400, 500));
  122.     }
  123.     if (interfaces.get(236).getComponent(1).isValid()) {
  124.         mouse.setSpeed(mouseSpeed + random(0, 5));
  125.         interfaces.get(236).getComponent(1).doClick();
  126.         sleep(random(600, 800));
  127.     }
  128. }
  129.  
  130. private void setDifficulty() {
  131.     antiBan();
  132.     if (interfaces.get(947).getComponent(761).isValid()) {
  133.         mouse.setSpeed(mouseSpeed + random(0, 5));
  134.         interfaces.get(947).getComponent(761).doClick();//change floor (finish)
  135.         sleep(random(200, 400));
  136.     }
  137.     if (interfaces.get(938).getComponent(39).isValid()) {
  138.         mouse.setSpeed(mouseSpeed + random(0, 5));
  139.         interfaces.get(938).getComponent(39).doClick();//change complexity (finish)
  140.         sleep(random(200, 400));
  141.     }
  142. }
  143.  
  144. private void setSize() {
  145.     antiBan();
  146.     if (interfaces.get(236).getComponent(1).isValid()) {
  147.         mouse.setSpeed(mouseSpeed + random(0, 5));
  148.         interfaces.get(236).getComponent(1).doClick();//size (small)
  149.     }
  150. }
  151.  
  152. private void makeStones() {
  153.         antiBan();
  154.     if (inventory.contains(17489)) {
  155.         mouse.setSpeed(mouseSpeed + random(0, 3));
  156.             inventory.getItem(17489).interact("Drop");
  157.         keyboard.pressKey((char) KeyEvent.VK_F4);
  158.         sleep(random(75, 100));
  159.         keyboard.releaseKey((char) KeyEvent.VK_F4);
  160.         mouse.setSpeed(mouseSpeed + random(0, 3));
  161.             interfaces.get(950).getComponent(38).interact("Quick-cast");//make gatestone
  162.         sleep(random(750, 850));
  163.         keyboard.pressKey((char) KeyEvent.VK_F1);
  164.         sleep(random(75, 100));
  165.         keyboard.releaseKey((char) KeyEvent.VK_F1);
  166.         sleep(75,100);
  167.     } else if (!inventory.contains(17489)) {
  168.         keyboard.pressKey((char) KeyEvent.VK_F4);
  169.         sleep(random(75, 100));
  170.         keyboard.releaseKey((char) KeyEvent.VK_F4);
  171.         mouse.setSpeed(mouseSpeed + random(0, 3));
  172.             interfaces.get(950).getComponent(38).interact("Quick-cast");//make gatestone
  173.                 sleep(random(750, 850));
  174.         keyboard.pressKey((char) KeyEvent.VK_F1);
  175.         sleep(random(75, 100));
  176.         keyboard.releaseKey((char) KeyEvent.VK_F1);
  177.         }  
  178. }
  179.  
  180. private void leaveDung() {
  181.         antiBan();
  182.         clickLadder();
  183.         if (interfaces.get(211).getComponent(3).isValid()) {
  184.         mouse.setSpeed(mouseSpeed + random(0, 5));
  185.             interfaces.get(211).getComponent(3).doClick();//Leave party (Continue)
  186.         sleep(random(800, 1000));
  187.     }
  188.         if (interfaces.get(236).getComponent(1).isValid()) {
  189.         mouse.setSpeed(mouseSpeed + random(0, 5));
  190.             interfaces.get(236).getComponent(1).doClick();//Leave party (Yes)
  191.     }
  192. }
  193.  
  194. private void dropBall() {
  195.     game.openTab(Game.Tab.EQUIPMENT);
  196.     sleep(random(100, 200));
  197.     if (interfaces.get(387).isValid()) {
  198.         mouse.setSpeed(random(8, 11));
  199.         interfaces.get(387).getComponent(17).interact("Remove");  
  200.         sleep (random(400, 500));
  201.     }
  202.     if (inventory.contains(751)) {
  203.         hasBall = false;
  204.         inventory.getItem(751).interact("Drop");
  205.         sleep(random(400, 700));
  206.     }
  207.     else if (!inventory.contains(751)) {
  208.         log(Color.RED, "Please bank all items before running the script.");
  209.         stopScript();
  210.     }
  211. }
  212.  
  213. //Other
  214. @Override
  215. public void messageReceived(MessageEvent me) {
  216.     final String msg = me.getMessage();
  217.     if (msg.contains("cannot be taken into Daemonheim") && me.getID() == MessageEvent.MESSAGE_SERVER) {
  218.         hasBall = true;
  219.     }
  220. }
  221.  
  222. @Override
  223. public boolean onStart(){
  224.         log(Color.BLUE, "Welcome to Maze's GateStone maker.");
  225.     double currver = getCurrentVersion();
  226.     if(currver > scriptVersion) {
  227.         log(Color.GREEN,"GateStones has been updated!");
  228.         log("Your current version is " + scriptVersion + ". The latest version is " + currver);
  229.         log("You can download this update from:");
  230.         log(Color.MAGENTA, "http://www.powerbot.org/vb/showthread.php?t=800493");
  231.     }
  232.         Object[] options = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10"};
  233.         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);
  234.         startedScript = true;
  235.     startExp = -1;
  236.     startLvl = skills.getRealLevel(Skills.MAGIC);
  237.     startTime = System.currentTimeMillis();
  238.         startCamera();
  239.         return true;
  240. }
  241.  
  242. @Override
  243. public void onFinish(){
  244.         startedScript = false;
  245.     log("Thanks for using Maze's Gatestone maker.");
  246.         log("Ran for " + formatTime(runTime));
  247.     log("You gained "+ (gainedExp) +" experiance and "+ gainedLvls +" magic levels.");
  248.     env.saveScreenshot(true);
  249.         stopScript();
  250. }
  251.    
  252. private String formatTime(final long time) {
  253.     final int sec = (int) (time / 1000), h = sec / 3600, m = sec / 60 % 60, s = sec % 60;
  254.     return (h < 10 ? "0" + h : h) + ":" + (m < 10 ? "0" + m : m) + ":"
  255.             + (s < 10 ? "0" + s : s);
  256. }
  257.  
  258. public String insertCommas(double d) {
  259.         DecimalFormat df = new DecimalFormat();
  260.         DecimalFormatSymbols dfs = new DecimalFormatSymbols();
  261.         dfs.setGroupingSeparator(',');
  262.  
  263.         df.setDecimalFormatSymbols(dfs);
  264.         return ((String) df.format((int) d));
  265. }
  266.  
  267.  
  268. public double getCurrentVersion() {
  269.     try {
  270.         BufferedReader r = new BufferedReader(new InputStreamReader(new URL("http://scripters.powerbot.org/240751/ver.txt").openStream()));
  271.         double d = Double.parseDouble(r.readLine());
  272.         r.close();
  273.         return d;
  274.     } catch(Exception e) {
  275.         log("Error checking for latest version.");
  276.     }  
  277.     return scriptVersion;
  278. }
  279.  
  280. private Image getImage(String url) {
  281.     try {
  282.         return ImageIO.read(new URL(url));
  283.     } catch (IOException e) {
  284.         return null;
  285.     }
  286. }
  287.  
  288. //AntiBan
  289. public void startCamera() {
  290.     new Thread() {
  291.         @Override
  292.             public void run() {
  293.                 while (startedScript) {
  294.                     if (!isActive()){return;}
  295.                         if (game.isLoggedIn() && getMyPlayer().isOnScreen()) {
  296.                             switch (cameraAntiBan) {
  297.                                 case 3:
  298.                                     camera.moveRandomly(1000);;
  299.                                     break;
  300.                                 case 5:
  301.                                     camera.setPitch(random(10, 100));
  302.                                     break;
  303.                                 case 7:
  304.                                     camera.setAngle(random(0, 360));
  305.                                     break;
  306.                             }
  307.                         }
  308.                         try {
  309.                             Thread.sleep((random(100, 500)));
  310.                         } catch (Exception e) {
  311.                             log.severe("Error Waiting!");
  312.                         }
  313.                     }
  314.             }
  315.     }.start();
  316.  
  317. }
  318.  
  319. private void antiBan() {
  320.     int antiBan = random(1, 70);
  321.     cameraAntiBan = random(1, 30);
  322.     switch (antiBan) {
  323.         case 3:
  324.             mouse.setSpeed(mouseSpeed + random(3, 7));
  325.             mouse.moveSlightly();
  326.             sleep(random(50, 300));
  327.             break;
  328.         case 5:
  329.             if (random(1, 20) == 2) {
  330.                 mouse.setSpeed(mouseSpeed + random(3, 7));
  331.                 mouse.moveOffScreen();
  332.                 sleep(random(1000, 10000));
  333.             }
  334.             break;
  335.         case 10:
  336.             if (random(1, 20) == 2) {
  337.                 mouse.setSpeed(mouseSpeed + random(3, 7));
  338.                 game.openTab(Game.Tab.STATS);
  339.                 interfaces.get(320).getComponent(87).doHover();
  340.                 sleep(random(3000, 5000));
  341.             }
  342.             break;
  343.         default:
  344.             break;
  345.     }
  346. }
  347.  
  348. //LOOP____________________________________________________________
  349.  
  350. @Override
  351. public int loop() {
  352.     if (game.isLoggedIn() && getMyPlayer().isOnScreen() && isActive() && startedScript) {
  353.             if (startExp < 0) {
  354.                 startExp = skills.getCurrentExp(Skills.MAGIC);
  355.             }
  356. //Starting a party
  357.         if (game.getPlane() == 0 && outSide() && hasBall == false) {
  358.                    clickDoor();
  359.                    formParty();
  360.                    clickDoor();
  361.                    setDifficulty();
  362.                    setSize();
  363.                 } else if (game.getPlane() == 0 && outSide() && hasBall == true) {
  364.                     dropBall();
  365.                 }
  366.  
  367.                 if (!outSide() && game.getPlane() == 0) {
  368. //Making gatestones
  369.             if(inventory.getCount(true, 16100) == 125)
  370.                         {
  371.                                 inventory.dropItem(1,0);
  372.                                 makeStones();                  
  373.                         }
  374.                     if (inventory.getCount(true, 16100) >= 3) makeStones();
  375. //Leaving Dungeon
  376.                     else if (inventory.getCount(true, 16100) <=2 && inventory.getCount(true, 16100) != -1 || inventory.getCount(true, 16100) == -1) leaveDung();
  377.                 }
  378.  
  379.         if (game.getPlane() == 1) {
  380.                     mouse.setSpeed(mouseSpeed + random(0, 6));
  381.                     clickStairs(); 
  382.         }
  383.                
  384.     }
  385.  
  386.     return random(10, 25);
  387.  
  388. }
  389.  
  390.  
  391.  
  392. //Paint____________________________________________________
  393.  
  394. @Override
  395. public void mouseClicked(MouseEvent e) {
  396.     if (e.getPoint().getX() >= 7 && e.getPoint().getX() <= 70 && e.getPoint().getY() >= 456 && e.getPoint().getY() <= 472) {
  397.         showPaint = !showPaint;
  398.     }
  399. }
  400.  
  401. @Override
  402. public void mousePressed(MouseEvent e) {
  403. }
  404. @Override
  405. public void mouseReleased(MouseEvent e) {
  406. }
  407. @Override
  408. public void mouseEntered(MouseEvent e) {
  409. }
  410. @Override
  411. public void mouseExited(MouseEvent e) {
  412. }
  413.  
  414. @Override
  415. public void onRepaint(Graphics g1) {
  416.     if(game.isLoggedIn() && isActive() && startedScript) {
  417.         final Graphics2D g2 = (Graphics2D) g1;
  418.         g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
  419.         RenderingHints.VALUE_ANTIALIAS_ON);
  420.         currentLevel = skills.getRealLevel(Skills.MAGIC);
  421.         gainedLvls = skills.getRealLevel(Skills.MAGIC) - startLvl;
  422.         gainedExp = skills.getCurrentExp(Skills.MAGIC) - startExp;
  423.         expLevel = skills.getExpToNextLevel(Skills.MAGIC);
  424.         ExpHour = (int) ((3600000.0 / (double) runTime) * gainedExp);
  425.         runTime = System.currentTimeMillis() - startTime;
  426.                 if(!showPaint) {
  427.                 g2.drawString("Show Paint", 10, 470);
  428.                 }
  429.                 if (showPaint) {
  430.                 g2.drawImage(gateStone, 5, 300, null);
  431.                 g2.setColor(Color.WHITE);
  432.                 g2.drawString("Hide Paint", 10, 470);
  433.                 g2.setFont(font);
  434.         g2.drawString(currentLevel + " (" + gainedLvls + ")", 445, 376);
  435.         g2.drawString("" + insertCommas(expLevel), 420, 400);
  436.                 if (gainedExp /1000 <= 0) {
  437.                     g2.drawString((gainedExp) + " (" + (ExpHour / 1000) + "K Xp/h)", 353, 425);
  438.                 } else if (gainedExp / 1000 >= 1 && gainedExp /1000000 < 1) {
  439.                     g2.drawString((gainedExp) / 1000 + "K " + " (" + (ExpHour / 1000) + "K Xp/h)", 353, 425);
  440.                 } else if (gainedExp / 1000000 >= 1) {
  441.                     g2.drawString((gainedExp) / 1000000 + "M" + " (" + (ExpHour / 1000) + "K Xp/h)", 353, 425);
  442.                 }
  443.                 if(ExpHour != 0 && gainedExp >= 2000){
  444.                     float timeTNLhour = 0;
  445.                     timeTNLhour = (float) expLevel/(float)ExpHour;
  446.                     float timeTNLmin = timeTNLhour*60;
  447.                     float timeTNLsec = timeTNLmin*60;  
  448.                     int estimatedHour = (int) (timeTNLsec/3600);
  449.                     float tempminutes = timeTNLsec%3600;
  450.                     int estimatedMinutes = (int) (tempminutes/60);
  451.                     int estimatedSeconds = (int) (tempminutes%60);
  452.                     if (estimatedMinutes < 10 && estimatedSeconds < 10) {
  453.                         g2.drawString(estimatedHour + ":0" + estimatedMinutes + ":0" + estimatedSeconds, 320, 454);  
  454.                     } else if (estimatedMinutes > 10 && estimatedSeconds < 10) {
  455.                         g2.drawString(estimatedHour + ":" + estimatedMinutes + ":0" + estimatedSeconds, 320, 454);  
  456.                     } else if (estimatedMinutes < 10 && estimatedSeconds > 10) {
  457.                         g2.drawString(estimatedHour + ":0" + estimatedMinutes + ":" + estimatedSeconds, 320, 454);  
  458.                     } else {
  459.                     g2.drawString(estimatedHour + ":" + estimatedMinutes + ":" + estimatedSeconds, 320, 454);
  460.                     }
  461.         } else if (ExpHour == 0 || gainedExp <= 5000) {
  462.                     g2.drawString("N/A", 320, 454);
  463.                 }
  464.             g2.drawString("Run Time: " + formatTime(runTime), 330, 335);
  465.                 }
  466.                
  467.     }
  468.                    
  469. }
  470.  
  471. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement