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 3.95 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. NPC cow = getNpcs().closest("Cow", "Cow calf");
  81. if (cow != null && !combat.isFighting() && !cow.isUnderAttack()) {
  82. cow.interact("Attack");
  83. new ConditionalSleep(5000) {
  84. @Override
  85. public boolean condition() throws InterruptedException {
  86. return myPlayer().isAnimating() || myPlayer().isInteracting(cow);
  87. }
  88. }.sleep();
  89. }
  90. }
  91. if(cowhide != null) {
  92. cowhide.interact("Take");
  93. new ConditionalSleep(5000) {
  94. @Override
  95. public boolean condition() throws InterruptedException {
  96. return !myPlayer().isMoving();
  97. }
  98. }.sleep();
  99. }
  100.  
  101. }
  102. else {
  103. getWalking().webWalk(cowArea);
  104. }
  105.  
  106.  
  107. break;
  108. case WAIT:
  109. break;
  110. }
  111. return random(600, 800); //The amount of time in milliseconds before the loop is called again
  112. }
  113.  
  114.  
  115.  
  116. @Override
  117. public void onStart() {
  118. timeBegan = System.currentTimeMillis();
  119. }
  120.  
  121.  
  122.  
  123. @Override
  124. public void onExit() {
  125. }
  126.  
  127. @Override
  128. public void onPaint(Graphics2D g) {
  129. timeRan = System.currentTimeMillis() - timeBegan;
  130. g.drawString(formatTime(timeRan), 295, 349);
  131. }
  132.  
  133. private String formatTime(long duration) {
  134. String res = "";
  135. long days = TimeUnit.MILLISECONDS.toDays(duration);
  136. long hours = TimeUnit.MILLISECONDS.toHours(duration)
  137. - TimeUnit.DAYS.toHours(TimeUnit.MILLISECONDS.toDays(duration));
  138. long minutes = TimeUnit.MILLISECONDS.toMinutes(duration)
  139. - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS
  140. .toHours(duration));
  141. long seconds = TimeUnit.MILLISECONDS.toSeconds(duration)
  142. - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS
  143. .toMinutes(duration));
  144. if (days == 0) {
  145. res = (hours + ":" + minutes + ":" + seconds);
  146. } else {
  147. res = (days + ":" + hours + ":" + minutes + ":" + seconds);
  148. }
  149. return res;
  150. }
  151.  
  152. }
Advertisement
Add Comment
Please, Sign In to add comment