Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package kfc;
- import org.osbot.rs07.api.filter.Filter;
- import org.osbot.rs07.api.model.NPC;
- import org.osbot.rs07.api.model.Player;
- import org.osbot.rs07.api.util.GraphicUtilities;
- import org.osbot.rs07.script.Script;
- import org.osbot.rs07.script.ScriptManifest;
- import org.osbot.rs07.utility.Condition;
- import java.awt.*;
- @ScriptManifest(author = "t", info = "Start at the Falador chicken farm", name = "KFC", logo = "", version = 1.00)
- public class KFC extends Script {
- private static final Filter TARGET_FILTER = new Filter<NPC>() {
- @Override
- public boolean match(NPC npc) {
- return npc.getName().equals(Constants.TARGET_NAME) && npc.isAttackable()
- && Constants.FALADOR_CHICKEN_FARM.contains(npc);
- }
- };
- private NPC target;
- private long lastAttack = System.currentTimeMillis();
- @Override
- public int onLoop() throws InterruptedException {
- final Player player = myPlayer();
- if (target == null) {
- getNewTarget();
- } else {
- if (target.exists() && target.getHealth() > 0 && Constants.FALADOR_CHICKEN_FARM.contains(target)) {
- if (target.isVisible()) {
- if (!player.isInteracting(target)) {
- if (player.isUnderAttack()) {
- getCurrentTarget();
- } else {
- attack();
- }
- } else if (idle()) {
- getNewTarget();
- }
- } else {
- reposition();
- }
- } else {
- getNewTarget();
- }
- }
- return random(10, 15);
- }
- private boolean idle() {
- return System.currentTimeMillis() - lastAttack > random((int) (Constants.FAIL_SAFE_TIMEOUT - (Constants.FAIL_SAFE_TIMEOUT * 0.1)), Constants.FAIL_SAFE_TIMEOUT) * 1000;
- }
- private void attack() {
- lastAttack = System.currentTimeMillis();
- if (!target.isUnderAttack()) {
- if (target.interact("Attack")) {
- dynamicSleep(new Condition() {
- @Override
- public boolean evaluate() {
- return myPlayer().isInteracting(target);
- }
- }, random(800, 1000));
- }
- } else {
- getNewTarget();
- }
- }
- private void reposition() {
- camera.toEntity(target);
- dynamicSleep(new Condition() {
- @Override
- public boolean evaluate() {
- return target.isVisible();
- }
- }, random(4000, 5000));
- if (!target.isVisible()) {
- getLocalWalker().walk(target);
- dynamicSleep(new Condition() {
- @Override
- public boolean evaluate() {
- return myPlayer().isMoving();
- }
- }, random(4000, 5000));
- }
- }
- private void getCurrentTarget() {
- target = npcs.singleFilter(npcs.getAll(), new Filter<NPC>() {
- @Override
- public boolean match(NPC npc) {
- return npc.isInteracting(myPlayer()) && npc.getName().equals(Constants.TARGET_NAME)
- && Constants.FALADOR_CHICKEN_FARM.contains(npc);
- }
- });
- }
- private void getNewTarget() {
- try {
- sleep(random(300, 400));
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- target = npcs.closest(TARGET_FILTER);
- }
- public boolean dynamicSleep(Condition c, long timeout) {
- long start = System.currentTimeMillis();
- while (System.currentTimeMillis() - start < timeout && !c.evaluate()) {
- try {
- sleep(random(100, 110));
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- return c.evaluate();
- }
- @Override
- public void onPaint(Graphics2D g) {
- g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
- if (target != null && target.isVisible()) {
- g.setColor(Color.CYAN);
- g.draw(GraphicUtilities.getModelArea(this.bot, target.getGridX(), target.getGridY(), target.getZ(), target.getModel()));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement