Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package org.Nixion.fighting;
- import java.awt.Dimension;
- import java.awt.Graphics;
- import java.awt.Point;
- import org.powerbot.concurrent.Runnable;
- import org.powerbot.concurrent.strategy.Condition;
- import org.powerbot.concurrent.strategy.Strategy;
- import org.powerbot.game.api.ActiveScript;
- import org.powerbot.game.api.Manifest;
- import org.powerbot.game.api.methods.Game;
- import org.powerbot.game.api.methods.Tabs;
- import org.powerbot.game.api.methods.Walking;
- import org.powerbot.game.api.methods.input.Mouse;
- import org.powerbot.game.api.methods.interactive.NPCs;
- import org.powerbot.game.api.methods.interactive.Players;
- import org.powerbot.game.api.methods.node.GroundItems;
- import org.powerbot.game.api.methods.tab.Inventory;
- import org.powerbot.game.api.methods.widget.Camera;
- import org.powerbot.game.api.util.Filter;
- import org.powerbot.game.api.util.Random;
- import org.powerbot.game.api.util.Time;
- import org.powerbot.game.api.wrappers.Area;
- import org.powerbot.game.api.wrappers.Tile;
- import org.powerbot.game.api.wrappers.interactive.NPC;
- import org.powerbot.game.api.wrappers.interactive.Player;
- import org.powerbot.game.api.wrappers.node.GroundItem;
- import org.powerbot.game.bot.event.listener.PaintListener;
- @Manifest(authors = { "Nixion" }, name = "Chicken killer", description = "Kill chickens by falador and takes feathers for GP", version = 1.0)
- public class ChickenFight extends ActiveScript implements PaintListener {
- public Area chickenArea = new Area(
- new Tile(3014, 3295, 0),
- new Tile(3020, 3283, 0));
- public final static int FEATHER_ID = 314;
- private Stats stats;
- private StatsPaint paint;
- @Override
- protected void setup() {
- stats = Stats.getInstance();
- paint = new StatsPaint(stats);
- provide(new FightChicken());
- provide(new PickFeather());
- provide(new AntiRandom());
- }
- @Override
- public void onRepaint(Graphics g) {
- paint.draw(g);
- }
- class FightChicken extends Strategy implements Runnable, Condition {
- @Override
- public void run() {
- setSync(true);
- setLock(false);
- NPC npc = NPCs.getNearest(new Filter<NPC>() {
- @Override
- public boolean accept(NPC npc) {
- return npc.getName().toLowerCase().contains("chick")
- && chickenArea.contains(npc);
- }
- });
- if (npc != null && !npc.isInCombat()) {
- stats.setStatus("Found new chick attack");
- npc.interact("Attack");
- Time.sleep(Random.nextGaussian(300, 1500, 65));
- stats.incChickensAttacked();
- }
- }
- @Override
- public boolean validate() {
- Player current = Players.getLocal();
- return current.getAnimation() == -1
- && !current.isInCombat();
- }
- }
- private class AntiRandom extends Strategy implements Runnable, Condition {
- @Override
- public void run() {
- setLock(false);
- setSync(true);
- if (Random.nextBoolean()) return;
- switch (Random.nextGaussian(1, 50, 85)) {
- case 7:
- stats.setStatus("Antirandom camera turn");
- // Turn camera
- Camera.setAngle(Random.nextGaussian(-360, 360, 65));
- break;
- case 8:
- // Camera movement
- stats.setStatus("Antirandom camera up/down");
- Camera.setPitch(Random.nextGaussian(0, 100, 95));
- Time.sleep(Random.nextInt(1000, 2500));
- Camera.setPitch(true);
- break;
- case 11:
- // Random tab looking
- stats.setStatus("Antirandom random tab switching");
- int randomTabIndex = Random.nextInt(0, Tabs.values().length);
- Tabs randomTab = Tabs.values()[randomTabIndex];
- // If the tab is invetory look the feather count
- if (randomTab == Tabs.INVENTORY)
- stats.setFeathers(Inventory.getCount(true, FEATHER_ID));
- randomTab.open();
- Time.sleep(Random.nextInt(1000, 3000));
- break;
- case 15:
- Dimension gameDimension = Game.getDimensions();
- Mouse.move(new Point(
- Random.nextInt(0, (int) gameDimension.getHeight()),
- Random.nextInt(0, (int) gameDimension.getWidth())));
- Time.sleep(Random.nextGaussian(2000, 3500, 65));
- break;
- case 20:
- // Turn running on if have enough energy
- if (!Walking.isRunEnabled()) {
- if (Walking.getEnergy() > Random.nextInt(20, 50)) {
- Walking.setRun(true);
- }
- }
- default:
- }
- }
- @Override
- public boolean validate() {
- return Players.getLocal().getAnimation() == -1;
- }
- }
- class PickFeather extends Strategy implements Runnable, Condition {
- @Override
- public void run() {
- GroundItem feather = findFeather();
- if (feather != null) {
- feather.interact("Take", "Feather");
- stats.setStatus("Get feathers");
- Time.sleep(Random.nextGaussian(100, 300, 65));
- }
- }
- @Override
- public boolean validate() {
- GroundItem feather = findFeather();
- return feather != null
- && feather.isOnScreen()
- && !Players.getLocal().isMoving();
- }
- public GroundItem findFeather() {
- GroundItem feather = GroundItems.getNearest(new Filter<GroundItem>() {
- @Override
- public boolean accept(GroundItem item) {
- return item.getId() == FEATHER_ID && chickenArea.contains(item);
- }
- });
- return feather;
- }
Add Comment
Please, Sign In to add comment