Guest User

Untitled

a guest
Oct 30th, 2016
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.55 KB | None | 0 0
  1. import java.awt.Graphics2D;
  2. import java.util.concurrent.TimeUnit;
  3. import org.osbot.rs07.api.map.Area;
  4. import org.osbot.rs07.api.map.Position;
  5. import org.osbot.rs07.api.model.GroundItem;
  6. import org.osbot.rs07.api.model.NPC;
  7. import org.osbot.rs07.script.Script;
  8. import org.osbot.rs07.script.ScriptManifest;
  9. import org.osbot.rs07.utility.ConditionalSleep;
  10.  
  11.  
  12.  
  13. @ScriptManifest(author = "Annointed/PuppyLover101", info = "Kills cows & loots cowhide", name = "LumbridgeCowKiller", version = 1.0, logo = "")
  14. public class LumbridgeCowKiller extends Script {
  15.  
  16. Area bankPosition = new Area(new Position(3205, 3225, 2), new Position(3211, 3207, 2));
  17. Area cowArea = new Area(
  18. new int[][]{
  19. {3241, 3298},
  20. {3265, 3298},
  21. {3265, 3255},
  22. {3253, 3255},
  23. {3254, 3271},
  24. {3248, 3278},
  25. {3241, 3284}
  26. }
  27. );
  28.  
  29.  
  30. private long timeBegan;
  31. private long timeRan;
  32.  
  33.  
  34.  
  35. private enum State {
  36. BANK_INVENTORY, KILL, WAIT
  37. };
  38.  
  39. private State getState() {
  40. if(inventory.isFull()) {
  41. return State.BANK_INVENTORY;
  42. }
  43. if (myPlayer().getInteracting() != null) {
  44. return State.WAIT;
  45. }
  46.  
  47. return State.KILL;
  48.  
  49. }
  50.  
  51. @Override
  52. public int onLoop() throws InterruptedException {
  53. State state = getState();
  54. log(state);
  55. switch (state) {
  56. case BANK_INVENTORY:
  57. if(bankPosition.contains(myPlayer())) {
  58. if(!getBank().isOpen()) {
  59. getBank().open();
  60. new ConditionalSleep(10000) {
  61. @Override
  62.  
  63. public boolean condition() throws InterruptedException {
  64. return bank.isOpen();
  65. }
  66. }.sleep();
  67. }
  68. if (bank.isOpen()) {
  69. bank.depositAll();
  70. }
  71. }
  72. else {
  73. getWalking().webWalk(bankPosition);
  74. }
  75. break;
  76. case KILL:
  77. if(cowArea.contains(myPlayer())) {
  78. GroundItem cowhide = groundItems.closest("Cowhide");
  79. if (cowhide != null) {
  80. if (cowhide.interact("Take")) {
  81. new ConditionalSleep(5000) {
  82. @Override
  83. public boolean condition() throws InterruptedException {
  84. return !cowhide.exists();
  85. }
  86. }.sleep();
  87. }
  88. }
  89. else {
  90. @SuppressWarnings("unchecked")
  91. NPC cow = getNpcs().closest(
  92. npc -> (npc.getName().equals("Cow") || npc.getName().equals(
  93. "Cow calf"))
  94. && npc.isAttackable()
  95. && map.canReach(npc)
  96. && npc.getHealthPercent() > 0
  97. && cowArea.contains(npc));
  98. if (cow != null) {
  99. if (cow.interact("Attack")){
  100. new ConditionalSleep(5000) {
  101. @Override
  102. public boolean condition() throws InterruptedException {
  103. return myPlayer().getInteracting() != null;
  104. }
  105. }.sleep();
  106. }
  107. }
  108. }
  109. }
  110. else {
  111. getWalking().webWalk(cowArea);
  112. }
  113.  
  114.  
  115. break;
  116. case WAIT:
  117. break;
  118. }
  119. return random(600, 800); //The amount of time in milliseconds before the loop is called again
  120. }
  121.  
  122.  
  123.  
  124. @Override
  125. public void onStart() {
  126. timeBegan = System.currentTimeMillis();
  127. }
  128.  
  129.  
  130.  
  131. @Override
  132. public void onExit() {
  133. }
  134.  
  135. @Override
  136. public void onPaint(Graphics2D g) {
  137. timeRan = System.currentTimeMillis() - timeBegan;
  138. g.drawString(formatTime(timeRan), 295, 349);
  139. }
  140.  
  141. private String formatTime(long duration) {
  142. String res = "";
  143. long days = TimeUnit.MILLISECONDS.toDays(duration);
  144. long hours = TimeUnit.MILLISECONDS.toHours(duration)
  145. - TimeUnit.DAYS.toHours(TimeUnit.MILLISECONDS.toDays(duration));
  146. long minutes = TimeUnit.MILLISECONDS.toMinutes(duration)
  147. - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS
  148. .toHours(duration));
  149. long seconds = TimeUnit.MILLISECONDS.toSeconds(duration)
  150. - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS
  151. .toMinutes(duration));
  152. if (days == 0) {
  153. res = (hours + ":" + minutes + ":" + seconds);
  154. } else {
  155. res = (days + ":" + hours + ":" + minutes + ":" + seconds);
  156. }
  157. return res;
  158. }
  159.  
  160. }
Advertisement
Add Comment
Please, Sign In to add comment