Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import org.rspeer.runetek.adapter.component.Item;
- import org.rspeer.runetek.adapter.scene.Npc;
- import org.rspeer.runetek.adapter.scene.Pickable;
- import org.rspeer.runetek.adapter.scene.Player;
- import org.rspeer.runetek.api.commons.Time;
- import org.rspeer.runetek.api.component.Dialog;
- import org.rspeer.runetek.api.component.tab.Inventory;
- import org.rspeer.runetek.api.local.Health;
- import org.rspeer.runetek.api.movement.position.Area;
- import org.rspeer.runetek.api.movement.position.Position;
- import org.rspeer.runetek.api.scene.Npcs;
- import org.rspeer.runetek.api.scene.Pickables;
- import org.rspeer.runetek.api.scene.Players;
- import org.rspeer.script.Script;
- import org.rspeer.script.ScriptCategory;
- import org.rspeer.script.ScriptMeta;
- import java.util.function.Predicate;
- @ScriptMeta(name = "Chiken Slapper",
- desc = "slaps shit out of chickens",
- developer = "OSSO",
- version = 0.1,
- category = ScriptCategory.COMBAT
- )
- public class ChickenKiller extends Script {
- Area cage = Area.polygonal(
- new Position[] {
- new Position(3184, 3279, 0),
- new Position(3184, 3276, 0),
- new Position(3193, 3276, 0),
- new Position(3193, 3279, 0),
- new Position(3193, 3279, 0),
- new Position(3191, 3280, 0),
- new Position(3186, 3280, 0)
- }
- );
- private static final String FOOD = "Salmon";
- private static final int MIN_EAT_HEALTH = 60;
- private static final String EAT_ACTION = "Eat";
- private static final String ATTACK_ACTION = "Attack";
- private static final String NPC_NAME = "Chicken";
- Player local = Players.getLocal();
- @Override
- public int loop() {
- if (local.isAnimating() && !local.isMoving() ) {
- Pickable feathers = Pickables.getNearest(
- item -> item.getName().equals("Feather") && cage.contains(item));
- if (feathers != null) {
- //pick feathers
- //begin looting feathers
- //- we have to walk over to feathers
- //- something could interrupt the player as we walk over yea
- feathers.interact("Take");
- Time.sleepUntil(local::isMoving, 1000L);
- }
- } else {
- Predicate<Npc> npcPred = x -> x.getName().equals(NPC_NAME)
- && ((x.getTarget() != null && cage.contains(x) && x.getTarget().equals(local)) || x.getTargetIndex() == -1)
- && x.getHealthPercent() > 0;
- Npc targetNpc = Npcs.getNearest(npcPred); //no bones??!
- if (local.getTargetIndex() == -1) {
- if (targetNpc != null
- && targetNpc.interact(ATTACK_ACTION))
- Time.sleepUntil(() -> local.getTargetIndex() != -1, 5000);
- }
- }
- //Item food = Inventory.getFirst(FOOD);
- //if (food == null) {
- // return -1;
- //}
- if (Dialog.canContinue()) {
- Dialog.processContinue();
- }
- // if (Health.getCurrent() <= MIN_EAT_HEALTH) {
- // food.interact(EAT_ACTION);
- // }
- return 600;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement