Guest User

Untitled

a guest
Dec 12th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.53 KB | None | 0 0
  1. package org.Nixion.fighting;
  2.  
  3. import java.awt.Dimension;
  4. import java.awt.Graphics;
  5. import java.awt.Point;
  6.  
  7. import org.powerbot.concurrent.Runnable;
  8. import org.powerbot.concurrent.strategy.Condition;
  9. import org.powerbot.concurrent.strategy.Strategy;
  10. import org.powerbot.game.api.ActiveScript;
  11. import org.powerbot.game.api.Manifest;
  12. import org.powerbot.game.api.methods.Game;
  13. import org.powerbot.game.api.methods.Tabs;
  14. import org.powerbot.game.api.methods.Walking;
  15. import org.powerbot.game.api.methods.input.Mouse;
  16. import org.powerbot.game.api.methods.interactive.NPCs;
  17. import org.powerbot.game.api.methods.interactive.Players;
  18. import org.powerbot.game.api.methods.node.GroundItems;
  19. import org.powerbot.game.api.methods.tab.Inventory;
  20. import org.powerbot.game.api.methods.widget.Camera;
  21. import org.powerbot.game.api.util.Filter;
  22. import org.powerbot.game.api.util.Random;
  23. import org.powerbot.game.api.util.Time;
  24. import org.powerbot.game.api.wrappers.Area;
  25. import org.powerbot.game.api.wrappers.Tile;
  26. import org.powerbot.game.api.wrappers.interactive.NPC;
  27. import org.powerbot.game.api.wrappers.interactive.Player;
  28. import org.powerbot.game.api.wrappers.node.GroundItem;
  29. import org.powerbot.game.bot.event.listener.PaintListener;
  30.  
  31. @Manifest(authors = { "Nixion" }, name = "Chicken killer", description = "Kill chickens by falador and takes feathers for GP", version = 1.0)
  32. public class ChickenFight extends ActiveScript implements PaintListener {
  33.  
  34. public Area chickenArea = new Area(
  35. new Tile(3014, 3295, 0),
  36. new Tile(3020, 3283, 0));
  37.  
  38. public final static int FEATHER_ID = 314;
  39.  
  40. private Stats stats;
  41. private StatsPaint paint;
  42.  
  43. @Override
  44. protected void setup() {
  45. stats = Stats.getInstance();
  46. paint = new StatsPaint(stats);
  47.  
  48. provide(new FightChicken());
  49. provide(new PickFeather());
  50. provide(new AntiRandom());
  51. }
  52.  
  53. @Override
  54. public void onRepaint(Graphics g) {
  55. paint.draw(g);
  56. }
  57.  
  58. class FightChicken extends Strategy implements Runnable, Condition {
  59.  
  60. @Override
  61. public void run() {
  62. setSync(true);
  63. setLock(false);
  64.  
  65. NPC npc = NPCs.getNearest(new Filter<NPC>() {
  66. @Override
  67. public boolean accept(NPC npc) {
  68. return npc.getName().toLowerCase().contains("chick")
  69. && chickenArea.contains(npc);
  70. }
  71. });
  72. if (npc != null && !npc.isInCombat()) {
  73. stats.setStatus("Found new chick attack");
  74. npc.interact("Attack");
  75. Time.sleep(Random.nextGaussian(300, 1500, 65));
  76. stats.incChickensAttacked();
  77. }
  78. }
  79.  
  80. @Override
  81. public boolean validate() {
  82. Player current = Players.getLocal();
  83. return current.getAnimation() == -1
  84. && !current.isInCombat();
  85. }
  86. }
  87.  
  88. private class AntiRandom extends Strategy implements Runnable, Condition {
  89.  
  90. @Override
  91. public void run() {
  92. setLock(false);
  93. setSync(true);
  94.  
  95. if (Random.nextBoolean()) return;
  96.  
  97. switch (Random.nextGaussian(1, 50, 85)) {
  98. case 7:
  99. stats.setStatus("Antirandom camera turn");
  100. // Turn camera
  101. Camera.setAngle(Random.nextGaussian(-360, 360, 65));
  102. break;
  103.  
  104. case 8:
  105. // Camera movement
  106. stats.setStatus("Antirandom camera up/down");
  107. Camera.setPitch(Random.nextGaussian(0, 100, 95));
  108. Time.sleep(Random.nextInt(1000, 2500));
  109. Camera.setPitch(true);
  110. break;
  111.  
  112. case 11:
  113. // Random tab looking
  114. stats.setStatus("Antirandom random tab switching");
  115. int randomTabIndex = Random.nextInt(0, Tabs.values().length);
  116. Tabs randomTab = Tabs.values()[randomTabIndex];
  117.  
  118. // If the tab is invetory look the feather count
  119. if (randomTab == Tabs.INVENTORY)
  120. stats.setFeathers(Inventory.getCount(true, FEATHER_ID));
  121.  
  122. randomTab.open();
  123. Time.sleep(Random.nextInt(1000, 3000));
  124. break;
  125.  
  126. case 15:
  127. Dimension gameDimension = Game.getDimensions();
  128. Mouse.move(new Point(
  129. Random.nextInt(0, (int) gameDimension.getHeight()),
  130. Random.nextInt(0, (int) gameDimension.getWidth())));
  131. Time.sleep(Random.nextGaussian(2000, 3500, 65));
  132. break;
  133.  
  134. case 20:
  135. // Turn running on if have enough energy
  136. if (!Walking.isRunEnabled()) {
  137. if (Walking.getEnergy() > Random.nextInt(20, 50)) {
  138. Walking.setRun(true);
  139. }
  140. }
  141.  
  142.  
  143. default:
  144. }
  145. }
  146.  
  147. @Override
  148. public boolean validate() {
  149. return Players.getLocal().getAnimation() == -1;
  150. }
  151.  
  152. }
  153.  
  154. class PickFeather extends Strategy implements Runnable, Condition {
  155.  
  156. @Override
  157. public void run() {
  158. GroundItem feather = findFeather();
  159. if (feather != null) {
  160. feather.interact("Take", "Feather");
  161. stats.setStatus("Get feathers");
  162. Time.sleep(Random.nextGaussian(100, 300, 65));
  163. }
  164. }
  165.  
  166. @Override
  167. public boolean validate() {
  168. GroundItem feather = findFeather();
  169. return feather != null
  170. && feather.isOnScreen()
  171. && !Players.getLocal().isMoving();
  172. }
  173.  
  174.  
  175. public GroundItem findFeather() {
  176.  
  177. GroundItem feather = GroundItems.getNearest(new Filter<GroundItem>() {
  178. @Override
  179. public boolean accept(GroundItem item) {
  180. return item.getId() == FEATHER_ID && chickenArea.contains(item);
  181. }
  182. });
  183. return feather;
  184. }
Add Comment
Please, Sign In to add comment