Guest User

Untitled

a guest
Sep 22nd, 2014
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.95 KB | None | 0 0
  1. import java.awt.Color;
  2. import java.awt.Graphics2D;
  3. import org.osbot.rs07.script.Script;
  4. import org.osbot.rs07.script.ScriptManifest;
  5. import org.osbot.rs07.api.map.Position;
  6. import org.osbot.rs07.api.model.RS2Object;
  7. import org.osbot.rs07.api.ui.Skill;
  8. import org.osbot.rs07.api.ui.Tab;
  9.  
  10. @ScriptManifest(author = "Pildurass", info = "Collects mort myre fungus", name ="Shrooms", version = 1.0, logo = "http://i.imgur.com/xI60cq3.png")
  11. public class Shrooms extends Script {
  12. public int trips, shroomholder, shroomcount;
  13. private long startTime;
  14. private Color bg;
  15. String state;
  16. @SuppressWarnings("unused")
  17. private Color box;
  18. public int statsX;
  19. public int statsY;
  20. public void onStart() {
  21. trips = (int) getInventory().getAmount(563);
  22. startTime = System.currentTimeMillis();
  23. bg = new Color(69, 53, 15, 125);
  24. box = new Color(0, 0, 0);
  25. statsX = 313;
  26. statsY = 344;
  27. }
  28. public void onPaint(Graphics2D g1) {
  29. long millis = System.currentTimeMillis() - startTime;
  30. Graphics2D g = g1;
  31. g.setColor(bg);
  32. g.fillRect(statsX, statsY, 184, 115);
  33. g.setColor(Color.green);
  34. g.drawRect(statsX, statsY, 184, 115);
  35. g.setColor(Color.white);
  36. g.drawString((new StringBuilder("Fungi Picker v")).append("0.1 | Author : Pildurass").toString(), statsX + 5, statsY + 15);
  37. g.drawString((new StringBuilder("State: ")).append(status).toString(), statsX + 5, statsY + 30);
  38. g.drawString((new StringBuilder("Time ran: ")).append(timeToString((int)millis)).toString(), statsX + 5, statsY + 45);
  39. g.drawString((new StringBuilder("Fungi Gained: ")).append(shroomcount).toString(), statsX + 5, statsY + 60);
  40. g.drawString((new StringBuilder("Fungi/Hour: ")).append(perHour((int)(shroomcount), System.currentTimeMillis() - millis)).toString(), statsX + 5, statsY + 75);
  41. }
  42. public static String perHour(int gained, long startTime)
  43. {
  44. int i = (int)(((double)gained * 3600000D) / (double)(System.currentTimeMillis() - startTime));
  45. return (new StringBuilder()).append(i).toString();
  46. }
  47. public static String timeToString(long time)
  48. {
  49. int seconds = (int)(time / 1000L) % 60;
  50. int minutes = (int)((time / 60000L) % 60L);
  51. int hours = (int)((time / 0x36ee80L));
  52. return (new StringBuilder(String.valueOf(hours))).append(":").append(minutes).append(":").append(seconds).toString();
  53. }
  54. public final Position toGate[] = {
  55. new Position(3497, 3482, 0), new Position(3481, 3476, 0), new Position(3466, 3473, 0), new Position(3453, 3465, 0), new Position(3444, 3458, 0)
  56. };
  57. public final Position toShroomArea[] = {
  58. new Position(3433, 3450, 0), new Position(3424, 3441, 0), new Position(3466, 3473, 0), new Position(3421, 3439, 0)
  59. };
  60. public final Position toBank[] = {
  61. new Position(3494, 3479, 0), new Position(3502, 3489, 0), new Position(3511, 3480, 0)
  62. };
  63. public final Position toSpot[] = {
  64. new Position(3421, 3439, 0)
  65. };
  66. public void walkPath(Position path[]) {
  67. for (int i = 0; i < path.length; i++) {
  68. localWalker.walk(path[i]);
  69. }
  70. }
  71. public void walkBank() {
  72. status = "Walking to Bank";
  73. walkPath(toBank);
  74. while(myPlayer().isMoving()) {
  75. }
  76. }
  77. public void bank() {
  78. status="Banking";
  79. RS2Object banks = objects.closest(new String[] {"Bank booth"});
  80. localWalker.walk(banks.getPosition());
  81. while(myPlayer().isMoving()) {
  82. }
  83. banks.interact("Bank");
  84. }
  85. public void storeitems() {
  86. status = "Storing Items";
  87. shroomholder += 25;
  88. getInventory().getItem(2970).interact("Deposit-All");
  89. if (skills.getDynamic(Skill.HITPOINTS) <= 60) {
  90. getBank().withdraw(379, 3);
  91. }
  92. }
  93. public void openDoor() {
  94. status = "Opening Door";
  95. RS2Object portal = objects.closest(new String[] {"Portal"});
  96. getTabs().open(Tab.INVENTORY);
  97. new Position(portal.getPosition().getX() - 3, portal.getPosition().getY(), portal.getPosition().getZ()).interact(getBot(), "Walk here");
  98. getDoorHandler().handleNextObstacle(new Position(portal.getPosition().getX() - 4, portal.getPosition().getY(), portal.getPosition().getZ()));
  99. }
  100. public void rechargingPrayer() {
  101. status = "Recharging Prayer";
  102. RS2Object altar = objects.closest(new String[] {"Altar"});
  103. altar.interact("Pray");
  104. if (skills.getDynamic(Skill.PRAYER) != skills.getStatic(Skill.PRAYER)) {
  105. altar.interact("Pray");
  106. }
  107. }
  108. public void exiting() {
  109. status = "Exiting House";
  110. RS2Object tpFocus = objects.closest(new String[] {"Teleportation focus"});
  111. RS2Object portal = objects.closest(new String[] {"Kharyrll Portal"});
  112. localWalker.walk(tpFocus.getPosition());
  113. portal.interact("Enter");
  114. }
  115. public void picking() {
  116. status = "Picking Fungi";
  117. shroomcount = (int) getInventory().getAmount(2970) + shroomholder;
  118. RS2Object fungi = objects.closest(new String[] {"Fungi on log"});
  119. fungi.interact("Pick");
  120. }
  121. public void walktologs() {
  122. status = "Walking to logs";
  123. walkPath(toShroomArea);
  124. while(myPlayer().isMoving()) {
  125. }
  126. }
  127. public void opengate() {
  128. status = "Opening Gate";
  129. RS2Object gate = objects.closest(new String[] {"Gate"});
  130. localWalker.walk(gate.getPosition());
  131. while (myPlayer().isMoving()){
  132. }
  133. gate.interact("Open");
  134. }
  135. public void walktobank() {
  136. status = "Walking to bank";
  137. walkPath(toBank);
  138. }
  139. public void teleporttohouse() {
  140. status = "Teleporting to house";
  141. getTabs().open(Tab.MAGIC);
  142. getInterfaces().getChild(192, 23).interact("Cast");
  143. }
  144. public void returntospot() {
  145. status = "Getting Situated";
  146. shroomcount = (int) getInventory().getAmount(2970) + shroomholder;
  147. new Position(3421, 3439, 0).interact(getBot(), "Walk here");
  148. }
  149. public void castbloom(){
  150. status = "Casting bloom";
  151. getTabs().open(Tab.INVENTORY);
  152. getInventory().getItem(2963).interact("Cast Bloom");
  153. }
  154. public void walktogate() {
  155. status = "Walking to gate";
  156. walkPath(toGate);
  157. while (myPlayer().isMoving()) {
  158. }
  159. }
  160. public void eat() {
  161. status = "Eating";
  162. getBank().close();
  163. getTabs().open(Tab.INVENTORY);
  164. getInventory().interact("Eat", 379);
  165. }
  166. public String status = "Initializing...";
  167. public int onLoop() {
  168. RS2Object bankss = objects.closest(new String[] {"Bank booth"});
  169. RS2Object gate = objects.closest(new String[] {"Gate"});
  170. RS2Object logs = objects.closest(new String[] {"Rotting log"});
  171. RS2Object fungi = objects.closest(new String[] {"Fungi on log"});
  172. RS2Object portal = objects.closest(new String[] {"Portal"});
  173. RS2Object door = objects.closest(13103);
  174. if (getColorPicker().isColorAt(573, 133, new Color(175, 176, 162))) {
  175. status = "Toggling Run";
  176. interfaces.getChild(548, 94).interact("Toggle Run");
  177. return 500;
  178. }
  179. if (getInventory().contains(379)) {
  180. eat();
  181. return 500;
  182. }
  183. if (bankss != null) {
  184. if (bankss.isVisible() && getInventory().getAmount(2970) != 0 && !bank.isOpen() && myPosition().getY() > 3473) {
  185. bank();
  186. return 2000;
  187. }
  188. }
  189. if (myPosition().getY() < 3457 && myPosition().getY() > 3430 && getInventory().isFull() && skills.getDynamic(Skill.PRAYER) == skills.getStatic(Skill.PRAYER) || myPosition().getY() >= 3625 && myPosition().getY() <= 3640) {
  190. teleporttohouse();
  191. return 500;
  192. }
  193. if (myPosition().getY() > 3471 && myPosition().getY() <= 3479 && myPosition().getY() >= 3489 && myPosition().getY() <= 3503) {
  194. walkBank();
  195. return 500;
  196. }
  197. if (getInventory().isFull()) {
  198. if (portal != null) {
  199. if (skills.getDynamic(Skill.PRAYER) == skills.getStatic(Skill.PRAYER) && door != null) {
  200. exiting();
  201. return 500;
  202. }
  203. if (skills.getDynamic(Skill.PRAYER) != skills.getStatic(Skill.PRAYER) && door != null && (portal.getPosition().getX() - 3) == myPlayer().getPosition().getX()) {
  204. rechargingPrayer();
  205. return 500;
  206. }
  207. if (skills.getDynamic(Skill.PRAYER) != skills.getStatic(Skill.PRAYER) && door != null) {
  208. rechargingPrayer();
  209. return 500;
  210. }
  211. if (getDoorHandler().canReachOrOpen(new Position(portal.getPosition().getX() - 4, portal.getPosition().getY(), portal.getPosition().getZ()))) {
  212. openDoor();
  213. return 500;
  214. }
  215. }
  216. if (bankss != null && myPosition().getY() > 3473) {
  217. if (!getBank().isOpen()) {
  218. bank();
  219. return 2000;
  220. }
  221. if (getBank().isOpen()) {
  222. storeitems();
  223. return 500;
  224. }
  225. }
  226. }
  227. if (fungi != null && !getInventory().isFull() && skills.getDynamic(Skill.PRAYER) != 0 && fungi.getPosition().getX() <= 3423) {
  228. picking();
  229. return 500;
  230. }
  231. if (myPosition().getY() <= 3457 && myPosition().getY() >= 3443) {
  232. walktologs();
  233. return 500;
  234. }
  235. if (myPosition().getX() >= 3489 && myPosition().getX() <= 3504 && myPosition().getY() >= 3471 && myPosition().getY() <= 3477) {
  236. walktobank();
  237. return 500;
  238. }
  239. if (getInventory().isFull() && myPosition().getY() < 3480) {
  240. teleporttohouse();
  241. return 500;
  242. }
  243. if (gate != null && myPosition().getY() > 3457 && myPosition().getY() <= 3465) {
  244. opengate();
  245. return 500;
  246. }
  247. if (logs != null && myPosition().getY() <= 3457) {
  248. if (myPosition().getY() == 3439 && myPosition().getX() == 3421) {
  249. castbloom();
  250. return 1000;
  251. } else {
  252. returntospot();
  253. return 500;
  254. }
  255. }
  256. if (!getInventory().isFull() && skills.getDynamic(Skill.PRAYER) != 0) {
  257. walktogate();
  258. return 500;
  259. }
  260. if (bank.isOpen()) {
  261. storeitems();
  262. return 500;
  263. }
  264. return 500;
  265. }
  266. public void onExit() {
  267.  
  268. }
  269. }
Add Comment
Please, Sign In to add comment