Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 27th, 2012  |  syntax: None  |  size: 3.02 KB  |  hits: 11  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. import org.rsbot.script.Script;
  2. import org.rsbot.script.ScriptManifest;
  3. import org.rsbot.script.wrappers.*;
  4.  
  5. @ScriptManifest(authors = "Juro", name = "JuroCook", keywords = "Cooking", version = 1.0, description = "A bot that Cooks lobsters at Al-Kharid")
  6. public class JuroCook extends Script {
  7.  
  8.         int RAW_LOBSTER = 377;
  9.         int COOKED_LOBSTER = 379;
  10.         int RANGE = 25730;
  11.         int BANKBOOTHID = 35647;
  12.  
  13.         RSTile[] bankToRange = { new RSTile(3273, 3180) };
  14.         RSTile[] rangeToBank = { new RSTile(3270, 3167) };
  15.  
  16.         public boolean onStart() {
  17.                 log("Welcome to JuroCook");
  18.                 return true;
  19.         }
  20.  
  21.         private boolean atRange() {
  22.                 RSArea area = new RSArea(new RSTile(3275, 3179), new RSTile(3272, 3183));
  23.                 return area.contains(getMyPlayer().getLocation());
  24.         }
  25.  
  26.         private boolean atBank() {
  27.                 RSArea area = new RSArea(new RSTile(3272, 3165), new RSTile(3261, 3171));
  28.                 return area.contains(getMyPlayer().getLocation());
  29.         }
  30.  
  31.         private enum State {
  32.                 OPENBANK, DEPOSIT, WITHDRAW, CLOSEBANK, WALK_TO_RANGE, COOK, WALK_TO_BANK
  33.         }
  34.  
  35.         private State getState() {
  36.                 if (bank.isOpen() && !inventory.contains(RAW_LOBSTER)
  37.                                 && inventory.getCount() != 0) {
  38.                         return State.DEPOSIT;
  39.                 } else if (bank.isOpen() && inventory.getCount() == 0) {
  40.                         return State.WITHDRAW;
  41.                 } else if (bank.isOpen() && inventory.contains(RAW_LOBSTER)) {
  42.                         return State.CLOSEBANK;
  43.                 } else if (!bank.isOpen() && inventory.contains(RAW_LOBSTER)
  44.                                 && !atRange()) {
  45.                         return State.WALK_TO_RANGE;
  46.                 } else if (inventory.contains(RAW_LOBSTER) && atRange()) {
  47.                         return State.COOK;
  48.                 } else if (!inventory.contains(RAW_LOBSTER) && atRange()) {
  49.                         return State.WALK_TO_BANK;
  50.                 } else if (!bank.isOpen() && !inventory.contains(RAW_LOBSTER)
  51.                                 && atBank()) {
  52.                         return State.OPENBANK;
  53.                 }
  54.                 return null;
  55.         }
  56.  
  57.         public void onFinish() {
  58.                 log("Thank's for using JuroCook!");
  59.         }
  60.  
  61.         public int loop() {
  62.                 switch (getState()) {
  63.                 case OPENBANK:
  64.                         bank.open();
  65.                         sleep(1100, 1000);
  66.                         break;
  67.                 case DEPOSIT:
  68.                         bank.deposit(COOKED_LOBSTER, 0);
  69.                         sleep(700, 900);
  70.                         break;
  71.                 case WITHDRAW:
  72.                         bank.withdraw(RAW_LOBSTER, 0);
  73.                         sleep(700, 900);
  74.                         break;
  75.                 case CLOSEBANK:
  76.                         bank.close();
  77.                         sleep(700, 500);
  78.                         break;
  79.                 case WALK_TO_RANGE:
  80.                         walking.walkPathMM(bankToRange);
  81.                 case COOK:
  82.                         RSItem lobster = inventory.getItem(RAW_LOBSTER);
  83.                         RSObject range = objects.getNearest(RANGE);
  84.                         if (lobster != null && range != null) {
  85.                                 inventory.useItem(lobster, range);
  86.                                 sleep(500, 200);
  87.                                 mouse.move(254, 423, 15, 15);
  88.                                 mouse.click(true);
  89.                                 sleep(500, 200);
  90.                                 while (waitForAnimation(random(750, 1500)) == 896) {
  91.                                         sleep(123, 456);
  92.                                 }
  93.                         }
  94.                 case WALK_TO_BANK:
  95.                         walking.walkPathMM(rangeToBank);
  96.                 }
  97.                 return random(400, 700);
  98.         }
  99.  
  100.         private int waitForAnimation(int timeout) {
  101.                 int myAnim = -1;
  102.                 long endTime = System.currentTimeMillis() + timeout;
  103.                 while (System.currentTimeMillis() < endTime) {
  104.                         myAnim = getMyPlayer().getAnimation();
  105.                         if (myAnim != -1)
  106.                                 return myAnim;
  107.                         sleep(5, 15);
  108.                 }
  109.                 return myAnim;
  110.         }
  111.  
  112. }