Advertisement
Himekp

CrystalKey.jar

Apr 21st, 2015
645
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.78 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.utility.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 = "Rumb", version = 1.1D, info="Opens Crystal Key Chests", logo = "")
  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(2893, 3452, 2896, 3447);
  24.  
  25. long startTime = System.currentTimeMillis();
  26. public int chestsOpened = 0;
  27. public String status = "Nothing";
  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(!inventory.contains("Teleport to house")) {
  75. bank.withdraw("Teleport to house", 1);
  76. sleep(random(400,500));
  77. }
  78. if(!equipment.isWearingItem(EquipmentSlot.RING)) {
  79. String dueling = "Ring of dueling(";
  80. for(int x = 0; x < 9; x++) {
  81. if(bank.getItem("Ring of dueling(" + x + ")") != null) {
  82. dueling = dueling+x+")";
  83. break;
  84. }
  85. }
  86. bank.withdraw(dueling, 1);
  87. sleep(random(400,500));
  88. }
  89. status = "Closing Bank";
  90. bank.close();
  91. sleep(random(1000,2000));
  92. doBankChecks();
  93. } else {
  94. bank.open();
  95. sleep(random(1000,2000));
  96. bank();
  97. }
  98. }
  99.  
  100. public void doBankChecks() throws InterruptedException {
  101. sleep(random(1000,2000));
  102. if(!bank.isOpen()) {
  103. String dueling = "Ring of dueling(";
  104. for(int x = 0; x < 9; x++) {
  105. if(inventory.getItem("Ring of dueling(" + x + ")") != null) {
  106. dueling = dueling+x+")";
  107. break;
  108. }
  109. }
  110. if(inventory.contains(dueling)) {
  111. status = "Equiping";
  112. inventory.getItem(dueling).interact("Wear");
  113. sleep(random(2000,4000));
  114. }
  115. if(inventory.contains("Crystal key") && inventory.contains("Teleport to house") && equipment.isWearingItem(EquipmentSlot.RING)) {
  116. status = "Teleporting";
  117. inventory.getItem("Teleport to house").interact("Break");
  118. sleep(random(2000,4000));
  119. } else {
  120. bank();
  121. }
  122. } else {
  123. bank.close();
  124. sleep(random(1000,2000));
  125. }
  126. }
  127.  
  128. public void clickPortal() throws InterruptedException {
  129. status = "Exiting House";
  130. Entity portal = getObjects().closest("Portal");
  131. portal.interact("Enter");
  132. log("interacted");
  133. sleep(random(1000,2000));
  134. }
  135.  
  136. public void openChests() throws InterruptedException {
  137. status = "Opening Chests";
  138. Entity chest = getObjects().closest(chestArea, "Closed chest");
  139. inventory.getItem("Crystal key").interact("Use");
  140. sleep(random(500,1000));
  141. chest.interact("Use");
  142. sleep(random(3000,3500));
  143. checkInv();
  144. }
  145.  
  146. public void checkInv() {
  147. if(inventory.contains("Air rune")) {
  148. inventory.drop("Air rune");
  149. }
  150. if(inventory.contains("Body rune")) {
  151. inventory.drop("Body rune");
  152. }
  153. if(inventory.contains("Mind rune")) {
  154. inventory.drop("Mind rune");
  155. }
  156. if(inventory.contains("Earth rune")) {
  157. inventory.drop("Earth rune");
  158. }
  159. if(inventory.contains("Fire rune")) {
  160. inventory.drop("Fire rune");
  161. }
  162. if(inventory.contains("Water rune")) {
  163. inventory.drop("Water rune");
  164. }
  165. if(inventory.contains("Spinach roll")) {
  166. inventory.getItem("Spinach roll").interact("Eat");
  167. }
  168. if(inventory.contains("Raw swordfish")) {
  169. inventory.drop("Raw swordfish");
  170. }
  171. }
  172.  
  173. public void walkToChest() throws InterruptedException {
  174. getLocalWalker().walk(doorArea,true);
  175. while(myPlayer().isMoving()) {
  176. sleep(50);
  177. }
  178. Entity door = getObjects().closest(walkArea, "Door");
  179. if(door.getId() == 7122){
  180. door.interact("Open");
  181. sleep(random(1000,2000));
  182. } else {
  183. getLocalWalker().walk(chestArea,true);
  184. while(myPlayer().isMoving()) {
  185. sleep(50);
  186. }
  187. }
  188. }
  189.  
  190. public void onMessage(Message m) {
  191. String s = m.getMessage();
  192. if(s.contains("unlock the chest")) {
  193. chestsOpened++;
  194. }
  195. }
  196.  
  197. //START: Code generated using Enfilade's Easel
  198. private Image getImage(String url) {
  199. try {
  200. return ImageIO.read(new URL(url));
  201. } catch(IOException e) {
  202. return null;
  203. }
  204. }
  205.  
  206. private final Color color1 = new Color(0, 102, 102, 70);
  207. private final Color color2 = new Color(0, 0, 0);
  208. private final Color color3 = new Color(255, 255, 255);
  209.  
  210. private final BasicStroke stroke1 = new BasicStroke(4);
  211.  
  212. private final Font font1 = new Font("Impact", 0, 22);
  213. private final Font font2 = new Font("Impact", 0, 12);
  214.  
  215. private final Image img1 = getImage("http://i.imgur.com/T43DTZN.png");
  216.  
  217. @Override
  218. public void onPaint(Graphics2D g1) {
  219. Graphics2D g = (Graphics2D)g1;
  220. g.setColor(color1);
  221. g.fillRoundRect(145, 340, 369, 138, 16, 16);
  222. g.setColor(color2);
  223. g.setStroke(stroke1);
  224. g.drawRoundRect(145, 340, 369, 138, 16, 16);
  225. g.setFont(font1);
  226. long runTime = 0;
  227. long seconds = 0;
  228. long minutes = 0;
  229. long hours = 0;
  230. runTime = System.currentTimeMillis() - startTime;
  231. seconds = runTime / 1000;
  232. if (seconds >= 60) {
  233. minutes = seconds / 60;
  234. seconds -= (minutes * 60);
  235. }
  236. if (minutes >= 60) {
  237. hours = minutes / 60;
  238. minutes -= (hours * 60);
  239. }
  240. g.drawString("Time Run: " + hours + ":" + minutes + ":" + seconds, 271, 383);
  241. g.setColor(color3);
  242. g.drawString("Time Run: " + hours + ":" + minutes + ":" + seconds, 269, 381);
  243. g.drawImage(img1, 145, 342, null);
  244. g.setColor(color2);
  245. g.drawString("Opened: " + chestsOpened, 272, 416);
  246. g.setColor(color3);
  247. g.drawString("Opened: " + chestsOpened, 270, 414);
  248. g.setColor(color2);
  249. g.drawString("Task: " + status, 272, 448);
  250. g.setColor(color3);
  251. g.drawString("Task: " + status, 270, 446);
  252. g.setFont(font2);
  253. g.setColor(color2);
  254. g.drawString("Made by Rumb", 407, 472);
  255. g.setColor(color3);
  256. g.drawString("Made by Rumb", 405, 470);
  257. Point p = new Point((int) mouse.getPosition().getX(), (int) mouse.getPosition().getY());
  258. g.setColor(Color.RED);
  259. g.drawLine(0, p.y, 800, p.y);
  260. g.drawLine(p.x, 0, p.x, 800);
  261. g.setColor(Color.BLUE);
  262. }
  263. //END: Code generated using Enfilade's Easel
  264. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement