Advertisement
Guest User

Untitled

a guest
Jun 5th, 2015
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.44 KB | None | 0 0
  1. package kfc;
  2.  
  3. import org.osbot.rs07.api.filter.Filter;
  4. import org.osbot.rs07.api.model.NPC;
  5. import org.osbot.rs07.api.model.Player;
  6. import org.osbot.rs07.api.util.GraphicUtilities;
  7. import org.osbot.rs07.script.Script;
  8. import org.osbot.rs07.script.ScriptManifest;
  9. import org.osbot.rs07.utility.Condition;
  10.  
  11. import java.awt.*;
  12.  
  13. @ScriptManifest(author = "t", info = "Start at the Falador chicken farm", name = "KFC", logo = "", version = 1.00)
  14. public class KFC extends Script {
  15.  
  16.     private static final Filter TARGET_FILTER = new Filter<NPC>() {
  17.         @Override
  18.         public boolean match(NPC npc) {
  19.             return npc.getName().equals(Constants.TARGET_NAME) && npc.isAttackable()
  20.                     && Constants.FALADOR_CHICKEN_FARM.contains(npc);
  21.         }
  22.     };
  23.  
  24.     private NPC target;
  25.     private long lastAttack = System.currentTimeMillis();
  26.  
  27.     @Override
  28.     public int onLoop() throws InterruptedException {
  29.         final Player player = myPlayer();
  30.  
  31.         if (target == null) {
  32.             getNewTarget();
  33.         } else {
  34.             if (target.exists() && target.getHealth() > 0 && Constants.FALADOR_CHICKEN_FARM.contains(target)) {
  35.                 if (target.isVisible()) {
  36.                     if (!player.isInteracting(target)) {
  37.                         if (player.isUnderAttack()) {
  38.                             getCurrentTarget();
  39.                         } else {
  40.                             attack();
  41.                         }
  42.                     } else if (idle()) {
  43.                         getNewTarget();
  44.                     }
  45.                 } else {
  46.                     reposition();
  47.                 }
  48.             } else {
  49.                 getNewTarget();
  50.             }
  51.         }
  52.  
  53.         return random(10, 15);
  54.     }
  55.  
  56.     private boolean idle() {
  57.         return System.currentTimeMillis() - lastAttack > random((int) (Constants.FAIL_SAFE_TIMEOUT - (Constants.FAIL_SAFE_TIMEOUT * 0.1)), Constants.FAIL_SAFE_TIMEOUT) * 1000;
  58.     }
  59.  
  60.     private void attack() {
  61.         lastAttack = System.currentTimeMillis();
  62.         if (!target.isUnderAttack()) {
  63.             if (target.interact("Attack")) {
  64.                 dynamicSleep(new Condition() {
  65.                     @Override
  66.                     public boolean evaluate() {
  67.                         return myPlayer().isInteracting(target);
  68.                     }
  69.                 }, random(800, 1000));
  70.             }
  71.         } else {
  72.             getNewTarget();
  73.         }
  74.     }
  75.  
  76.     private void reposition() {
  77.         camera.toEntity(target);
  78.         dynamicSleep(new Condition() {
  79.             @Override
  80.             public boolean evaluate() {
  81.                 return target.isVisible();
  82.             }
  83.         }, random(4000, 5000));
  84.         if (!target.isVisible()) {
  85.             getLocalWalker().walk(target);
  86.             dynamicSleep(new Condition() {
  87.                 @Override
  88.                 public boolean evaluate() {
  89.                     return myPlayer().isMoving();
  90.                 }
  91.             }, random(4000, 5000));
  92.         }
  93.     }
  94.  
  95.     private void getCurrentTarget() {
  96.         target = npcs.singleFilter(npcs.getAll(), new Filter<NPC>() {
  97.             @Override
  98.             public boolean match(NPC npc) {
  99.                 return npc.isInteracting(myPlayer()) && npc.getName().equals(Constants.TARGET_NAME)
  100.                         && Constants.FALADOR_CHICKEN_FARM.contains(npc);
  101.             }
  102.         });
  103.     }
  104.  
  105.     private void getNewTarget() {
  106.         try {
  107.             sleep(random(300, 400));
  108.         } catch (InterruptedException e) {
  109.             e.printStackTrace();
  110.         }
  111.         target = npcs.closest(TARGET_FILTER);
  112.     }
  113.  
  114.     public boolean dynamicSleep(Condition c, long timeout) {
  115.         long start = System.currentTimeMillis();
  116.         while (System.currentTimeMillis() - start < timeout && !c.evaluate()) {
  117.             try {
  118.                 sleep(random(100, 110));
  119.             } catch (InterruptedException e) {
  120.                 e.printStackTrace();
  121.             }
  122.         }
  123.         return c.evaluate();
  124.     }
  125.  
  126.     @Override
  127.     public void onPaint(Graphics2D g) {
  128.         g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
  129.        
  130.         if (target != null && target.isVisible()) {
  131.             g.setColor(Color.CYAN);
  132.             g.draw(GraphicUtilities.getModelArea(this.bot, target.getGridX(), target.getGridY(), target.getZ(), target.getModel()));
  133.         }
  134.     }
  135. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement