Advertisement
Guest User

Untitled

a guest
Mar 27th, 2017
428
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.07 KB | None | 0 0
  1. package CrystalKey;
  2.  
  3. import org.osbot.rs07.api.model.Entity;
  4. import org.osbot.rs07.api.ui.EquipmentSlot;
  5. import org.osbot.rs07.api.ui.Message;
  6. import org.osbot.rs07.script.Script;
  7. import org.osbot.rs07.script.ScriptManifest;
  8. import org.osbot.rs07.api.map.Area;
  9.  
  10. import java.awt.*;
  11.  
  12. import javax.imageio.ImageIO;
  13.  
  14. import java.io.IOException;
  15. import java.net.URL;
  16.  
  17. @ScriptManifest(name = "Crystal Key Runner", author = "Unknown", version = 0.4, info="Opens Crystal Key Chests", logo = "http://vignette2.wikia.nocookie.net/runescape2/images/8/82/Crystal_chest.png/revision/latest/scale-to-width-down/200?cb=20130611114449")
  18. public class CrystalKey extends Script{
  19.  
  20. public Area bankArea = new Area(2435, 3100, 2455, 3075);
  21. public Area chestArea = new Area(2912, 3452, 2917, 3448);
  22. public Area walkArea = new Area(2882, 3472, 2932, 3428);
  23. public Area doorArea = new Area(2896, 3450, 2896, 3447);
  24.  
  25. long startTime = System.currentTimeMillis();
  26. public int chestsOpened = 0;
  27. public String status = "Idle";
  28.  
  29. @Override
  30. public int onLoop() throws InterruptedException {
  31. if(bankArea.contains(myPlayer())) {
  32. log("doBankChecks()");
  33. doBankChecks();
  34. }
  35. if(!inventory.contains("Crystal key") && walkArea.contains(myPlayer())) {
  36. log("interacting");
  37. String dueling = "Ring of dueling(";
  38. for(int x = 0; x < 9; x++) {
  39. if(equipment.getItem("Ring of dueling(" + x + ")") != null) {
  40. dueling = dueling+x+")";
  41. break;
  42. }
  43. }
  44. status = "Teleporting";
  45. equipment.getItem(dueling).interact("Castle Wars");
  46. sleep(random(5000,6000));
  47. }
  48. if(getObjects().closest("Portal") != null && !walkArea.contains(myPlayer())) {
  49. log("clickPortal()");
  50. clickPortal();
  51. }
  52. if(chestArea.contains(myPlayer()) && inventory.contains("Crystal key")) {
  53. log("openChests()");
  54. openChests();
  55. }
  56. if(walkArea.contains(myPlayer()) && !chestArea.contains(myPlayer())) {
  57. log("walkToChest()");
  58. walkToChest();
  59. }
  60. return 3;
  61. }
  62.  
  63. public void bank() throws InterruptedException {
  64. if(bank.isOpen()) {
  65. status = "Banking";
  66. if(inventory.contains("Uncut dragonstone")) {
  67. bank.depositAll();
  68. sleep(random(1000,2000));
  69. }
  70. if(!inventory.contains("Crystal key")) {
  71. bank.withdraw("Crystal key", 8);
  72. sleep(random(400,500));
  73. }
  74. if(!bank.contains("Crystal key", "Teleport to house", "Ring of dueling")){
  75. {
  76. stop(true);
  77. }
  78. }
  79. if(!inventory.contains("Teleport to house")) {
  80. bank.withdraw("Teleport to house", 1);
  81. sleep(random(600,700));
  82. }
  83. if(!equipment.isWearingItem(EquipmentSlot.RING)) {
  84. String dueling = "Ring of dueling(";
  85. for(int x = 0; x < 9; x++) {
  86. if(bank.getItem("Ring of dueling(" + x + ")") != null) {
  87. dueling = dueling+x+")";
  88. break;
  89. }
  90. }
  91. bank.withdraw(dueling, 1);
  92. sleep(random(400,500));
  93. }
  94.  
  95. status = "Closing Bank";
  96. bank.close();
  97. sleep(random(1000,2000));
  98. doBankChecks();
  99. } else {
  100. bank.open();
  101. sleep(random(1000,2000));
  102. bank();
  103. }
  104.  
  105. }
  106.  
  107. public void doBankChecks() throws InterruptedException {
  108. sleep(random(1000,2000));
  109. if(!bank.isOpen()) {
  110. String dueling = "Ring of dueling(";
  111. for(int x = 0; x < 9; x++) {
  112. if(inventory.getItem("Ring of dueling(" + x + ")") != null) {
  113. dueling = dueling+x+")";
  114. break;
  115. }
  116. }
  117. if(inventory.contains(dueling)) {
  118. status = "Equiping";
  119. inventory.getItem(dueling).interact("Wear");
  120. sleep(random(2000,4000));
  121. }
  122. if(inventory.contains("Crystal key") && inventory.contains("Teleport to house") && equipment.isWearingItem(EquipmentSlot.RING)) {
  123. status = "Teleporting";
  124. inventory.getItem("Teleport to house").interact("Break");
  125. sleep(random(4000,8000));
  126. } else {
  127. bank();
  128. }
  129.  
  130. } else {
  131. bank.close();
  132. sleep(random(1000,2000));
  133. }
  134. }
  135.  
  136. public void clickPortal() throws InterruptedException {
  137. status = "Exiting House";
  138. Entity portal = getObjects().closest("Portal");
  139. portal.interact("Enter");
  140. log("interacted");
  141. sleep(random(1000,2000));
  142. }
  143.  
  144. public void openChests() throws InterruptedException {
  145. status = "Opening Chests";
  146. Entity chest = getObjects().closest(chestArea, "Closed chest");
  147. inventory.getItem("Crystal key").interact("Use");
  148. sleep(random(500,1000));
  149. chest.interact("Use");
  150. sleep(random(3000,3500));
  151. checkInv();
  152. }
  153.  
  154. public void checkInv() {
  155. if(inventory.contains("Air rune")) {
  156. inventory.drop("Air rune");
  157. }
  158. if(inventory.contains("Body rune")) {
  159. inventory.drop("Body rune");
  160. }
  161. if(inventory.contains("Mind rune")) {
  162. inventory.drop("Mind rune");
  163. }
  164. if(inventory.contains("Earth rune")) {
  165. inventory.drop("Earth rune");
  166. }
  167. if(inventory.contains("Fire rune")) {
  168. inventory.drop("Fire rune");
  169. }
  170. if(inventory.contains("Water rune")) {
  171. inventory.drop("Water rune");
  172. }
  173. if(inventory.contains("Spinach roll")) {
  174. inventory.getItem("Spinach roll").interact("Eat");
  175. }
  176. if(inventory.contains("Raw swordfish")) {
  177. inventory.drop("Raw swordfish");
  178. }
  179. }
  180.  
  181. public void walkToChest() throws InterruptedException {
  182. getWalking().walk(doorArea);
  183. while(myPlayer().isMoving()) {
  184. sleep(50);
  185. }
  186. Entity Door = getObjects().closest(walkArea, "Door");
  187. if(Door.getId() == 1535){
  188. Door.interact("Open");
  189. sleep(random(500,1000));
  190. } else {
  191. getWalking().walk(chestArea);
  192. while(myPlayer().isMoving()) {
  193. sleep(50);
  194. }
  195. }
  196. }
  197.  
  198. public void onMessage(Message m) {
  199. String s = m.getMessage();
  200. if(s.contains("unlock the chest")) {
  201. chestsOpened++;
  202. }
  203. }
  204.  
  205. public void onExit() {
  206. log("Thanks for running my crystal key runner!");
  207. }
  208.  
  209. //START: Code generated using Enfilade's Easel
  210. private Image getImage(String url) {
  211. try {
  212. return ImageIO.read(new URL(url));
  213. } catch(IOException e) {
  214. return null;
  215. }
  216. }
  217.  
  218. private final Color color1 = new Color(0, 102, 102, 70);
  219. private final Color color2 = new Color(0, 0, 0);
  220. private final Color color3 = new Color(255, 255, 255);
  221.  
  222. private final BasicStroke stroke1 = new BasicStroke(4);
  223.  
  224. private final Font font1 = new Font("Arial", 0, 15);
  225. private final Font font2 = new Font("Arial", 0, 10);
  226.  
  227. private final Image img1 = getImage("https://www.runehq.com/image/geitems/c/crystal-key.gif");
  228.  
  229. @Override
  230. public void onPaint(Graphics2D g1) {
  231. Graphics2D g = (Graphics2D)g1;
  232. g.setColor(color1);
  233. g.fillRoundRect(8, 345, 503, 113, 16, 16);
  234. g.setColor(color2);
  235. g.setStroke(stroke1);
  236. g.drawRoundRect(8, 345, 503, 113, 16, 16);
  237. g.setFont(font1);
  238. long runTime = 0;
  239. long seconds = 0;
  240. long minutes = 0;
  241. long hours = 0;
  242. runTime = System.currentTimeMillis() - startTime;
  243. seconds = runTime / 1000;
  244. if (seconds >= 60) {
  245. minutes = seconds / 60;
  246. seconds -= (minutes * 60);
  247. }
  248. if (minutes >= 60) {
  249. hours = minutes / 60;
  250. minutes -= (hours * 60);
  251. }
  252. g.drawString("Time Run: " + hours + ":" + minutes + ":" + seconds, 271, 383);
  253. g.setColor(color3);
  254. g.drawString("Time Run: " + hours + ":" + minutes + ":" + seconds, 269, 381);
  255. g.drawImage(img1, 165, 342, null);
  256. g.setColor(color2);
  257. g.drawString("Opened: " + chestsOpened, 272, 416);
  258. g.setColor(color3);
  259. g.drawString("Opened: " + chestsOpened, 270, 414);
  260. g.setColor(color2);
  261. g.drawString("Task: " + status, 272, 448);
  262. g.setColor(color3);
  263. g.drawString("Task: " + status, 270, 446);
  264. g.setFont(font2);
  265. g.setColor(color2);
  266. g.drawString("Made by Reinier", 407, 472);
  267. g.setColor(color3);
  268. g.drawString("Made by Reinier", 405, 470);
  269. Point mP = getMouse().getPosition();
  270. g.drawRect(mP.x - 10, mP.y - 10, 20, 20);
  271. g.setColor(Color.GREEN);
  272. g.setColor(Color.BLUE);
  273. }
  274. //END: Code generated using Enfilade's Easel
  275. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement