Share Pastebin
Guest
Public paste!

SharanganMasterFarmer

By: a guest | Sep 2nd, 2010 | Syntax: None | Size: 6.10 KB | Hits: 23 | Expires: Never
Copy text to clipboard
  1. import org.rsbot.bot.Bot;
  2. import org.rsbot.bot.input.Mouse;
  3. import org.rsbot.event.events.ServerMessageEvent;
  4. import org.rsbot.event.listeners.PaintListener;
  5. import org.rsbot.event.listeners.ServerMessageListener;
  6. import org.rsbot.script.*;
  7.  
  8. import java.awt.Color;
  9. import java.awt.Graphics;
  10. import java.util.Map;
  11. import org.rsbot.script.Script;
  12. import org.rsbot.script.wrappers.RSObject;
  13. import org.rsbot.script.wrappers.RSTile;
  14. import org.rsbot.script.ScriptManifest;
  15. import org.rsbot.script.wrappers.RSNPC;
  16.  
  17. @ScriptManifest(authors = { "Sharangan12" }, category = "Thieving", name = "SharanganMasterFarmer", version = 1.0, description =
  18.     "<html><body bgcolor =\"#808000\"><font color =\"#3333FF\"><center><h2>SharanganMasterFarmer</h2><BR>"
  19.   + "<font size =\"3\">Start in Draynor Bank With some Food<br />"
  20.   + "<font size =\"3\">Have the requirments to steal.<br />"
  21.   + "<font size =\"5\">IDS: Tuna 361 Monkfish 7946 <br />"
  22.   + "<div class=\"main\""
  23.   + "<div class=\"leftcol\">Food ID:</div><div class=\"rightcol\"><input type=\"text\" name=\"foodID\" value=\"\" size=10></b></div><br />"
  24.   + "</div>"
  25.   + "</font><br />"
  26.   + "</font></body></html>")
  27.  
  28. public class SharanganMasterFarmer extends Script implements PaintListener, ServerMessageListener {
  29.  
  30.   public int farmerID = 2234;
  31.   public int foodID;
  32.   public int BankBoothID = 2213;
  33.   public int hp;
  34.  
  35.   int expGained;
  36.   int levelsGained;
  37.   int startXp;
  38.   int startLevel;
  39.   int height;
  40.  
  41.   long startTime;
  42.   long minutes;
  43.   long seconds;
  44.   long hours;
  45.   long runTime;
  46.  
  47.   public RSTile toBank = randomizeTile(new RSTile(3092,3245),2,2);
  48.   public RSTile toFarmer = randomizeTile(new RSTile(3080,3250),2,2);
  49.  
  50.   boolean stunned = false;
  51.  
  52.   @Override
  53.   protected int getMouseSpeed() {
  54.     return random(5, 7);
  55.   }
  56.  
  57.   public boolean onStart(Map<String, String> args) {
  58.     hp = skills.getCurrentSkillLevel(Skills.getStatIndex("hitpoints"));
  59.     startTime = System.currentTimeMillis();
  60.     startXp = skills.getCurrentSkillExp(STAT_THIEVING);
  61.     startLevel = skills.getCurrentSkillLevel(STAT_THIEVING);
  62.     if (!args.get("foodID").equals("")) {
  63.       foodID = Integer.parseInt(args.get("foodID"));
  64.     }
  65.     return true;
  66.   }
  67.  
  68.   public void onFinish() {
  69.   }
  70.  
  71.   public int loop() {
  72.     if (isLoggedIn()) {
  73.     hp = skills.getCurrentSkillLevel(Skills.getStatIndex("hitpoints"));
  74.     setCameraAltitude(true);
  75.       if(hp <= 8 || isInventoryFull())if(Eat() == false){
  76.         if(atBank() && getInventoryCount(foodID) == 0){
  77.           handleBank();  
  78.           return random(800,1600);
  79.         }else{
  80.           walkBank();
  81.         }      
  82.       }
  83.       if(hp >= 8 || getInventoryCount(foodID) != 0){
  84.         if(atFarmer()){
  85.           RSNPC masterFarmer = getNearestNPCByID(farmerID);
  86.           if(masterFarmer != null)
  87.           clickRSNPC(masterFarmer, "Pickpocket");
  88.           return 800;
  89.           }else{
  90.             RSNPC masterFarmer = getNearestNPCByID(farmerID);
  91.             RSTile tile = masterFarmer.getLocation();
  92.             walkTileMM(tile);
  93.             wait(random(1000,2000));
  94.           }
  95.       }
  96.       if (stunned == true){
  97.         wait(random(2500, 3500));
  98.       }
  99.     }
  100.     return 100;
  101.   }
  102.  
  103.   public int walkToFarmer(){
  104.     walkTileMM(toFarmer);
  105.     wait(3000);
  106.     return random(3000,4000);
  107.   }
  108.  
  109.   public boolean handleBank(){
  110.     RSObject bankBooth = getNearestObjectByID(BankBoothID);
  111.     if(bankBooth == null)
  112.       return false;
  113.     if(bank.isOpen()){
  114.       bank.depositAll();
  115.       while(getInventoryCount(foodID) == 0){
  116.       bank.withdraw(foodID, 10);
  117.       wait(1500);
  118.       }
  119.       walkToFarmer();
  120.       }else{
  121.         atObject(bankBooth, "quickly");
  122.       }
  123.     return true;
  124.   }
  125.  
  126.   public boolean atFarmer() {
  127.     RSNPC farmer = getNearestNPCByID(farmerID);
  128.     if(farmer == null)
  129.       return false;
  130.     return tileOnScreen(farmer.getLocation());
  131.   }
  132.  
  133.   public int walkBank(){
  134.     walkTileMM(toBank);
  135.     wait(3000);
  136.     return random(3000,4000);
  137.   }
  138.  
  139.   public boolean Eat(){
  140.     if (getInventoryCount(foodID) != 0) {
  141.       atInventoryItem(foodID,"eat");
  142.       wait(random(1000,1500));
  143.       return true;
  144.     }
  145.     return false;
  146.   }
  147.  
  148.   public boolean atBank() {
  149.     RSObject bank = getNearestObjectByID(BankBoothID);
  150.     if(bank == null)
  151.       return false;
  152.     return tileOnScreen(bank.getLocation());
  153.   }
  154.  
  155.  
  156.  
  157.   @Override
  158.   public void onRepaint(Graphics g) {
  159.         Mouse m = Bot.getClient().getMouse();
  160.       runTime = System.currentTimeMillis( ) - startTime;
  161.       seconds = runTime / 1000;
  162.       if ( seconds >= 60 ) {
  163.         minutes = seconds / 60;
  164.         seconds -= (minutes * 60);
  165.       }
  166.       if ( minutes >= 60 ) {
  167.         hours = minutes / 60;
  168.         minutes -= (hours * 60);
  169.       }
  170.                   int x = 5;
  171.                   int y = 180;
  172.       expGained = skills.getCurrentSkillExp(STAT_THIEVING) - startXp;
  173.       g.setColor( new Color(0, 0, 0, 171) );
  174.       g.fillRoundRect(x, y, 140, height, 5, 5);
  175.  
  176.       // Calculate levels gained
  177.       levelsGained = skills.getCurrentSkillLevel(STAT_THIEVING) - startLevel;
  178.  
  179.       g.setColor( Color.GREEN );
  180.                   if (m.x > x + 155 || m.x < x || m.y > height + 180 || m.y < y) {
  181.         g.drawString("SharanganMasterFarmer", x + 9, y += 16);
  182.         g.drawString(">>More Details<<", x + 9, y += 16);
  183.                   } else {
  184.         g.drawString("SharanganMasterFarmer", x + 9, y += 16);
  185.         g.drawString("1.0", x + 9, y += 16);
  186.         g.drawString("Time Ran " + hours + ":" + minutes + ":" + seconds, x + 9, y += 16);
  187.         g.drawString("Expirence Gained: " + expGained, x + 9, y += 16);
  188.         g.drawString(">>More Details<<", x + 9, y += 16);
  189.         g.drawString("Levels Gained: " + levelsGained, x + 9, y += 16);
  190.         g.drawString("Next Level %: " + skills.getPercentToNextLevel(STAT_THIEVING), x + 9, y += 16);
  191.                   }
  192.                   height = y - 173;
  193.     }
  194.  
  195.   @Override
  196.   public void serverMessageRecieved(ServerMessageEvent e) {
  197.     String message = e.getMessage();
  198.     if (message.contains("You've been stunned")) {
  199.       stunned = true;        
  200.     }
  201.   }
  202. }