Advertisement
Guest User

Untitled

a guest
Aug 21st, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.48 KB | None | 0 0
  1.  
  2.  
  3. import org.rspeer.runetek.adapter.component.Item;
  4. import org.rspeer.runetek.adapter.scene.Npc;
  5. import org.rspeer.runetek.adapter.scene.Pickable;
  6. import org.rspeer.runetek.adapter.scene.Player;
  7. import org.rspeer.runetek.api.commons.Time;
  8. import org.rspeer.runetek.api.component.Dialog;
  9. import org.rspeer.runetek.api.component.tab.Inventory;
  10. import org.rspeer.runetek.api.local.Health;
  11. import org.rspeer.runetek.api.movement.position.Area;
  12. import org.rspeer.runetek.api.movement.position.Position;
  13. import org.rspeer.runetek.api.scene.Npcs;
  14. import org.rspeer.runetek.api.scene.Pickables;
  15. import org.rspeer.runetek.api.scene.Players;
  16. import org.rspeer.script.Script;
  17. import org.rspeer.script.ScriptCategory;
  18. import org.rspeer.script.ScriptMeta;
  19.  
  20. import java.util.function.Predicate;
  21.  
  22. @ScriptMeta(name = "Chiken Slapper",
  23. desc = "slaps shit out of chickens",
  24. developer = "OSSO",
  25. version = 0.1,
  26. category = ScriptCategory.COMBAT
  27.  
  28.  
  29. )
  30. public class ChickenKiller extends Script {
  31.  
  32. Area cage = Area.polygonal(
  33. new Position[] {
  34. new Position(3184, 3279, 0),
  35. new Position(3184, 3276, 0),
  36. new Position(3193, 3276, 0),
  37. new Position(3193, 3279, 0),
  38. new Position(3193, 3279, 0),
  39. new Position(3191, 3280, 0),
  40. new Position(3186, 3280, 0)
  41. }
  42. );
  43.  
  44. private static final String FOOD = "Salmon";
  45. private static final int MIN_EAT_HEALTH = 60;
  46. private static final String EAT_ACTION = "Eat";
  47. private static final String ATTACK_ACTION = "Attack";
  48. private static final String NPC_NAME = "Chicken";
  49. Player local = Players.getLocal();
  50. @Override
  51. public int loop() {
  52.  
  53. if (local.isAnimating() && !local.isMoving() ) {
  54. Pickable feathers = Pickables.getNearest(
  55. item -> item.getName().equals("Feather") && cage.contains(item));
  56. if (feathers != null) {
  57. //pick feathers
  58. //begin looting feathers
  59. //- we have to walk over to feathers
  60. //- something could interrupt the player as we walk over yea
  61. feathers.interact("Take");
  62. Time.sleepUntil(local::isMoving, 1000L);
  63. }
  64.  
  65. } else {
  66. Predicate<Npc> npcPred = x -> x.getName().equals(NPC_NAME)
  67. && ((x.getTarget() != null && cage.contains(x) && x.getTarget().equals(local)) || x.getTargetIndex() == -1)
  68. && x.getHealthPercent() > 0;
  69. Npc targetNpc = Npcs.getNearest(npcPred); //no bones??!
  70. if (local.getTargetIndex() == -1) {
  71. if (targetNpc != null
  72. && targetNpc.interact(ATTACK_ACTION))
  73. Time.sleepUntil(() -> local.getTargetIndex() != -1, 5000);
  74. }
  75. }
  76.  
  77.  
  78.  
  79. //Item food = Inventory.getFirst(FOOD);
  80.  
  81. //if (food == null) {
  82. // return -1;
  83. //}
  84.  
  85.  
  86. if (Dialog.canContinue()) {
  87. Dialog.processContinue();
  88. }
  89.  
  90. // if (Health.getCurrent() <= MIN_EAT_HEALTH) {
  91. // food.interact(EAT_ACTION);
  92. // }
  93.  
  94.  
  95.  
  96. return 600;
  97. }
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement