Advertisement
Guest User

Untitled

a guest
Jun 26th, 2013
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.16 KB | None | 0 0
  1. package com.gmc;
  2.  
  3. import org.osbot.script.*;
  4. import org.osbot.script.rs2.*;
  5. import org.osbot.script.rs2.map.*;
  6. import org.osbot.script.rs2.model.*;
  7. import org.osbot.script.rs2.randoms.*;
  8. import org.osbot.script.rs2.skill.*;
  9. import org.osbot.script.rs2.ui.*;
  10.  
  11. import java.awt.*;
  12.  
  13. @ScriptManifest(
  14. author = "Dashboard",
  15. version = 1.00,
  16. info = "Mines pure essence at Varrock East.",
  17. name = "Tainted Essence"
  18. )
  19.  
  20. public class TaintedEssence extends Script {
  21.  
  22. Entity aubury, banker;
  23.  
  24. long transitStart;
  25. long startTime;
  26. int startingXp;
  27.  
  28. int lastEssAmount;
  29. long lastEssUpdate;
  30.  
  31. int state = 0;
  32. final int WALKING_MIDWAY_TO_BANK = 0;
  33. final int WALKING_TO_BANK = 1;
  34. final int BANKING = 2;
  35. final int WALKING_MIDWAY_TO_AUBURY = 3;
  36. final int WALKING_TO_AUBURY = 4;
  37. final int MINING_ESSENCE = 5;
  38. final int TELEPORTING = 6;
  39.  
  40. final Position AUBURY_TILE = new Position(3254, 3401, 0);
  41. final Position BANK_TILE = new Position(3254, 3420, 0);
  42. final Position BANKER_POSITION = new Position(3254, 3418, 0);
  43. final Position MIDWAY_TILE = new Position(3260, 3411, 0);
  44.  
  45. final Position UPSTAIRS_TILE = new Position(3254, 3420, 1);
  46. final Position LUMBRIDGE = new Position(3222, 3218, 0);
  47. final Position LOST_AND_FOUND = new Position(2338, 4747, 0);
  48.  
  49. Position[] stepsToVarrock = {new Position(3232, 3218, 0), new Position(3240, 3225, 0), new Position(3250, 3225, 0), new Position(3259, 3232, 0), new Position(3257, 3246, 0), new Position(3251, 3259, 0), new Position(3246, 3273, 0), new Position(3238, 3286, 0), new Position(3238, 3300, 0), new Position(3246, 3312, 0), new Position(3257, 3323, 0), new Position(3268, 3328, 0), new Position(3278, 3333, 0), new Position(3291, 3335, 0), new Position(3298, 3346, 0), new Position(3296, 3361, 0), new Position(3294, 3376, 0), new Position(3291, 3389, 0), new Position(3290, 3404, 0), new Position(3281, 3415, 0), new Position(3274, 3426, 0), new Position(3265, 3424, 0)};
  50.  
  51. int[] portalObjects = {23930, 26254};
  52. int[] portalNpcs = {6265, 6266, 6267};
  53.  
  54. boolean walkingBack = false;
  55. int walkingStage = 0;
  56.  
  57.  
  58. public void onStart() {
  59. log("Started Tainted Essence Miner");
  60. log("Created by Dashboard for GMC");
  61. log("-----");
  62. startTime = System.currentTimeMillis();
  63. startingXp = client.getSkills().getExperience(Skill.MINING);
  64. lastEssUpdate = System.currentTimeMillis();
  65. randomManager.unregisterHook(RandomManager.LOST_AND_FOUND);
  66. }
  67. public int onLoop() {
  68. try {
  69. //Some fail safes
  70. //Goes down from varrock east bank stairs
  71. if(client.getMyPlayer().getPosition().getZ() == 1) {
  72. if(client.getMyPlayer().getPosition().distance(UPSTAIRS_TILE) < 6) {
  73. RS2Object stairs = closestObjectForName(new String[] {"Staircase"});
  74. stairs.interact("Climb-down");
  75. return random(1200, 1800);
  76. }
  77. }
  78. //Continues dialogue if stuck
  79. if(inDialogue())
  80. continueDialogue();
  81. //For walking to Varrock East from Lumbridge
  82. if(!walkingBack && client.getMyPlayer().getPosition().distance(LUMBRIDGE) < 8) {
  83. walkingBack = true;
  84. walkingStage = 0;
  85. transitStart = System.currentTimeMillis();
  86. log("The bot has died or got lost. Commencing transit system!");
  87. }
  88. if(walkingBack) {
  89. walk(stepsToVarrock[walkingStage]);
  90. if(client.getMyPlayer().getPosition().distance(stepsToVarrock[walkingStage]) < 2) {
  91. walkingStage ++;
  92. checkRun();
  93. }
  94. if(walkingStage == stepsToVarrock.length) {
  95. walkingBack = false;
  96. state = 0;
  97. int seconds = (int)((System.currentTimeMillis() - transitStart) / 1000);
  98. log("The bot has safely been returned. Transit time: " + seconds + " seconds.");
  99. }
  100. return random(1200, 1800);
  101. }
  102. //Checks if the bot is innactive and needs to reset location.
  103. checkReset();
  104. switch(state) {
  105. case WALKING_TO_BANK:
  106. if(client.getMyPlayer().getPosition().distance(BANK_TILE) > 2)
  107. walk(BANK_TILE);
  108. else
  109. state = 2;
  110. break;
  111. case BANKING:
  112. if(client.getBank().isOpen()) {
  113. client.getBank().depositAllExcept(new int[]{1265, 1267, 1269, 1271, 1273, 1275});
  114. if(client.getInventory().getEmptySlots() > 25)
  115. state = 3;
  116. } else {
  117. if(getBanker() != null)
  118. selectEntityOption(getBanker(), "Bank", true, false);
  119. }
  120. break;
  121. case WALKING_MIDWAY_TO_BANK:
  122. case WALKING_MIDWAY_TO_AUBURY:
  123. if(client.getMyPlayer().getPosition().getX() > 4000) { //stuck in mine for some reason
  124. state = 5;
  125. break;
  126. }
  127. if(client.getMyPlayer().getPosition().distance(MIDWAY_TILE) > 4)
  128. walk(MIDWAY_TILE);
  129. else {
  130. state ++;
  131. return random(600, 1200); //More fluid
  132. }
  133. break;
  134. case WALKING_TO_AUBURY:
  135. if(client.getMyPlayer().getPosition().getX() > 4000) { //stuck in mine for some reason
  136. state = 5;
  137. break;
  138. }
  139. if(client.getMyPlayer().getPosition().distance(AUBURY_TILE) > 2 && client.getMyPlayer().getPosition().getX() < 4000) {
  140. walk(AUBURY_TILE);
  141. break;
  142. }
  143. if(getAubury() != null)
  144. selectEntityOption(getAubury(), "Teleport", true, false);
  145. else if(client.getMyPlayer().getPosition().getX() > 4000) //In essence mine
  146. state = 5;
  147. break;
  148. case MINING_ESSENCE:
  149. RS2Object essenceMine = closestObjectForName(new String[] {"Rune essence"});
  150. if(!client.getMyPlayer().isAnimating() && client.getInventory().getEmptySlots() != 0)
  151. selectEntityOption(essenceMine, "Mine");
  152. else if(client.getInventory().getEmptySlots() == 0) {
  153. checkRun();
  154. state = 6;
  155. }
  156. break;
  157. case TELEPORTING:
  158. RS2Object portalObject = closestObject(portalObjects);
  159. if(portalObject != null) {
  160. if(!portalObject.interact("Exit"))
  161. portalObject.interact("Use");
  162. }
  163. NPC portalNPC = closestNPC(portalNpcs);
  164. if(portalNPC != null) {
  165. if (!portalNPC.interact("Use"))
  166. portalNPC.interact("Exit");
  167. }
  168. if(client.getMyPlayer().getPosition().getX() < 4000) //outside of mine
  169. state = 0;
  170. break;
  171. }
  172. } catch(Exception e) {
  173. e.printStackTrace();
  174. }
  175. return random(1200, 1800);
  176. }
  177. public Entity getBanker() {
  178. if(banker != null)
  179. return banker;
  180. for (NPC npc : client.getLocalNPCs()) {
  181. if(samePosition(npc.getPosition(), BANKER_POSITION))
  182. banker = npc;
  183. }
  184. return banker;
  185. }
  186. public Entity getAubury() {
  187. if(aubury != null)
  188. return aubury;
  189. for (NPC npc : client.getLocalNPCs()) {
  190. if(npc.getId() == 3359)
  191. aubury = npc;
  192. }
  193. return aubury;
  194. }
  195. public boolean samePosition(Position one, Position two) {
  196. if(one.getX() != two.getX())
  197. return false;
  198. if(one.getY() != two.getY())
  199. return false;
  200. if(one.getZ() != two.getZ())
  201. return false;
  202. return true;
  203. }
  204. public void checkRun() {
  205. try {
  206. if(client.getRunEnergy() == 100) {
  207. selectInterfaceOption(548, 34, "Options");
  208. Thread.sleep(random(1200, 1800));
  209. selectInterfaceOption(261, 0, "Toggle Run");
  210. Thread.sleep(random(1200, 1800));
  211. }
  212. } catch(Exception e) {
  213. e.printStackTrace();
  214. }
  215. }
  216. public void checkReset() {
  217. try {
  218. if((int)(System.currentTimeMillis() - lastEssUpdate) > 600000 && !walkingBack) {
  219. log("Bot innactive, teleporting home.");
  220. selectInterfaceOption(548, 53, "Magic");
  221. Thread.sleep(random(1200, 1800));
  222. selectInterfaceOption(192, 0, "Cast");
  223. Thread.sleep(random(20000, 25000));
  224. }
  225. } catch(Exception e) {
  226. e.printStackTrace();
  227. }
  228. }
  229. public void onPaint(Graphics g) {
  230. int essMined = (client.getSkills().getExperience(Skill.MINING) - startingXp) / 5;
  231. double hoursPassed = ((double)(System.currentTimeMillis() - startTime) / 3600000);
  232. int essPerHour = (int)(essMined / hoursPassed);
  233. g.setColor(new Color(120, 120, 120, 120));
  234. g.fillRect(309, 265, 207, 72);
  235. g.setColor(Color.WHITE);
  236. g.drawRect(309, 265, 207, 72);
  237. g.setFont(new Font("Century Schoolbook", 0, 16));
  238. g.drawString("GMC Tainted Essence", 315, 285);
  239. g.drawString("Esssence mined: " + essMined, 315, 307);
  240. g.drawString("Essence p/h: " + essPerHour, 315, 329);
  241. if(lastEssAmount != essMined) {
  242. lastEssAmount = essMined;
  243. lastEssUpdate = System.currentTimeMillis();
  244. }
  245. }
  246. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement