Advertisement
asciicat

GateStones.java 3.31

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