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

Untitled

By: a guest on Jun 13th, 2012  |  syntax: None  |  size: 10.28 KB  |  hits: 17  |  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 java.awt.Color;
  2. import java.awt.Font;
  3. import java.awt.Graphics;
  4.  
  5. import org.rsbot.event.events.ServerMessageEvent;
  6. import org.rsbot.event.listeners.PaintListener;
  7. import org.rsbot.event.listeners.ServerMessageListener;
  8. import org.rsbot.script.Script;
  9. import org.rsbot.script.ScriptManifest;
  10. import org.rsbot.script.methods.Skills;
  11. import org.rsbot.script.wrappers.RSObject;
  12. import org.rsbot.script.wrappers.RSTile;
  13.  
  14. @SuppressWarnings("deprecation")
  15. @ScriptManifest(authors = {"GreenCowz"}, keywords = "Hunter", version = 1.0, name = "gChins", description = "Hunts chinchompas.")
  16. public class gChins extends Script implements PaintListener, ServerMessageListener {
  17.  
  18.         private final ScriptManifest scriptInfo = getClass().getAnnotation(
  19.                         ScriptManifest.class);
  20.         int numCaught = 0;
  21.         int boxID = 10008;
  22.         int openBoxID = 19187;
  23.         int failedBoxID = 19192;
  24.         int successBoxID = 19190;
  25.         int chinExp = 265;
  26.         int maxTraps = 0;
  27.         int trapsOut = 0;
  28.         RSTile checkTile, centerTile, upLeft, upRight, downLeft, downRight;
  29.         private long startTime;
  30.         private int startExp;
  31.         private int startLevel;
  32.         public long runTime = 0, seconds = 0, minutes = 0, hours = 0;
  33.         public int gainedExp = 0;
  34.         public int expToLevel = 0;
  35.         public long secToLevel = 0;
  36.         public long minutesToLevel = 0;
  37.         public long hoursToLevel = 0;
  38.         public float secExp = 0;
  39.         public float minuteExp = 0;
  40.         public float hourExp = 0;
  41.         RSTile tile1, tile2, tile3, tile4, tile5;
  42.         BoxWatcher x = new BoxWatcher(null);
  43.        
  44.         public boolean onStart() {
  45.                 centerTile = players.getMyPlayer().getLocation();
  46.                 upLeft = new RSTile(centerTile.getX() - 1, centerTile.getY() + 1);
  47.                 upRight = new RSTile(centerTile.getX() + 1, centerTile.getY() + 1);
  48.                 downLeft = new RSTile(centerTile.getX() - 1, centerTile.getY() - 1);
  49.                 downRight = new RSTile(centerTile.getX() + 1, centerTile.getY() - 1);
  50.                 checkMaxTraps();
  51.                 mouse.setSpeed(random(4, 5));
  52.                 x.start();
  53.                 return true;
  54.         }
  55.  
  56.         public void onFinish() {
  57.                 log("Thank you for using gChins!");
  58.         }
  59.  
  60.         public boolean checkMaxTraps() {
  61.                 if (skills.getCurrentLevel(Skills.HUNTER) < 60) {
  62.                         maxTraps = 3;
  63.                 } else if (skills.getCurrentLevel(Skills.HUNTER) < 80) {
  64.                         maxTraps = 4;
  65.                 } else if (skills.getCurrentLevel(Skills.HUNTER) >= 80) {
  66.                         maxTraps = 5;
  67.                 }
  68.                 return true;
  69.         }
  70.         public boolean setupTrap() {
  71.                 if(trapsOut < maxTraps) {
  72.                         if(inventory.getItem(boxID).doAction("Lay")) {
  73.                                 trapsOut++;
  74.                         }
  75.                 }
  76.                 return true;
  77.         }
  78.         public void trapCheck(RSTile x) {
  79.                 if (x != null) {
  80.                         if (objects.getTopAt(x).getID() != openBoxID && x != null) {
  81.                                 int whatIsIt = objects.getTopAt(x).getID();
  82.                                 if (whatIsIt == successBoxID) {
  83.                                         if(tiles.doAction(x, "Check")) {
  84.                                                 x = null;
  85.                                                 trapsOut--;
  86.                                                 sleep(800, 1200);
  87.                                                 while (!players.getMyPlayer().isIdle()) {
  88.                                                         sleep(400, 600);
  89.                                                 }
  90.                                         }
  91.                                 } else if (whatIsIt == failedBoxID) {
  92.                                         if (tiles.doAction(x, "Dismantle")) {
  93.                                                 x = null;
  94.                                                 trapsOut--;
  95.                                                 sleep(800, 1200);
  96.                                                 while (!players.getMyPlayer().isIdle()) {
  97.                                                         sleep(400, 600);
  98.                                                 }
  99.                                         }
  100.                                 } else {
  101.                                         try {
  102.                                                 tiles.doAction(x, "Lay");
  103.                                         } catch (NullPointerException e) {
  104.                                                 x = null;
  105.                                                 trapsOut--;
  106.                                                 sleep(800, 1200);
  107.                                                 while (!players.getMyPlayer().isIdle()) {
  108.                                                         sleep(400, 600);
  109.                                                 }
  110.                                         }
  111.                                 }
  112.                         }
  113.                 }
  114.         }
  115.  
  116.         public boolean walkToOpen() {
  117.                 if (objects.getTopAt(upLeft) == null) {
  118.                         if (players.getMyPlayer().getLocation() != upLeft) {
  119.                                 tiles.doAction(upLeft, "Walk");
  120.                         }
  121.                         return true;
  122.                 } else if (objects.getTopAt(upRight) == null) {
  123.                         if (players.getMyPlayer().getLocation() != upRight) {
  124.                                 tiles.doAction(upRight, "Walk");
  125.                         }
  126.                         return true;
  127.                 } else if (objects.getTopAt(downRight) == null) {
  128.                         if (players.getMyPlayer().getLocation() != downRight) {
  129.                                 tiles.doAction(downRight, "Walk");
  130.                         }
  131.                         return true;
  132.                 } else if (objects.getTopAt(downLeft) == null && maxTraps >= 4) {
  133.                         if (players.getMyPlayer().getLocation() != downLeft) {
  134.                                 tiles.doAction(downLeft, "Walk");
  135.                         }
  136.                         return true;
  137.                 } else if (objects.getTopAt(centerTile) == null && maxTraps == 5) {
  138.                         if (players.getMyPlayer().getLocation() != centerTile) {
  139.                                 tiles.doAction(centerTile, "Walk");
  140.                         }
  141.                         return true;
  142.                 }
  143.                 return false;
  144.         }
  145.        
  146.         public void overTake() {
  147.                 tile1 = tile2;
  148.                 tile2 = tile3;
  149.                 tile3 = tile4;
  150.                 tile4 = tile5;
  151.                 tile5 = null;
  152.         }
  153.         @Override
  154.         public int loop() {
  155.                 checkMaxTraps();
  156.                 if (objects.getTopAt(upLeft) == null
  157.                                 || objects.getTopAt(upRight) == null
  158.                                 || objects.getTopAt(downRight) == null
  159.                                 || objects.getTopAt(downLeft) == null
  160.                                 || objects.getTopAt(centerTile) == null) {
  161.                         if (objects.getTopAt(upLeft) == null
  162.                                         || objects.getTopAt(upRight) == null
  163.                                         || objects.getTopAt(downRight) == null) {
  164.                                 while (!players.getMyPlayer().isIdle()) {
  165.                                         sleep(600, 800);
  166.                                 }
  167.                                 walkToOpen();
  168.                                 while (!players.getMyPlayer().isIdle()) {
  169.                                         sleep(300, 600);
  170.                                 }
  171.                                 sleep(800, 1200);
  172.                                 setupTrap();
  173.                                 sleep(1000, 1400);
  174.                                 while (!players.getMyPlayer().isIdle() && players.getMyPlayer().getAnimation() != -1) {
  175.                                         sleep(600, 800);
  176.                                 }
  177.                         } else if (objects.getTopAt(downLeft) == null && maxTraps >= 4) {
  178.                                 while (!players.getMyPlayer().isIdle()) {
  179.                                         sleep(600, 800);
  180.                                 }
  181.                                 walkToOpen();
  182.                                 while (!players.getMyPlayer().isIdle()) {
  183.                                         sleep(300, 600);
  184.                                 }
  185.                                 sleep(800, 1200);
  186.                                 setupTrap();
  187.                                 sleep(1000, 1400);
  188.                                 while (!players.getMyPlayer().isIdle() && players.getMyPlayer().getAnimation() != -1) {
  189.                                         sleep(600, 800);
  190.                                 }
  191.                         } else if (objects.getTopAt(centerTile) == null && maxTraps == 5) {
  192.                                 while (!players.getMyPlayer().isIdle()) {
  193.                                         sleep(600, 800);
  194.                                 }
  195.                                 walkToOpen();
  196.                                 while (!players.getMyPlayer().isIdle()) {
  197.                                         sleep(300, 600);
  198.                                 }
  199.                                 sleep(800, 1200);
  200.                                 setupTrap();
  201.                                 sleep(1000, 1400);
  202.                                 while (!players.getMyPlayer().isIdle() && players.getMyPlayer().getAnimation() != -1) {
  203.                                         sleep(600, 800);
  204.                                 }
  205.                         }
  206.                 }
  207.                 if (trapsOut == maxTraps) {
  208.                         for (int i = 0; i < 1000; i++) {
  209.                                 if (tile1 != null) {
  210.                                         checkTile = tile1;
  211.                                         overTake();
  212.                                         break;
  213.                                 }
  214.                                 sleep(60);
  215.                         }
  216.                 }
  217.                 if (checkTile != null) {
  218.                         log("About to check for down traps..");
  219.                         trapCheck(checkTile);
  220.                 }
  221.                 return random(200, 400);
  222.         }
  223.  
  224.         @Override
  225.         public void onRepaint(final Graphics g) {
  226.                 final Color BG = new Color(0, 0, 0, 75);
  227.                 final Color RED = new Color(255, 0, 0, 255);
  228.                 final Color GREEN = new Color(0, 255, 0, 255);
  229.                 final Color BLACK = new Color(0, 0, 0, 255);
  230.  
  231.                 if (startTime == 0) {
  232.                         startTime = System.currentTimeMillis();
  233.                 }
  234.  
  235.                 if (startExp == 0) {
  236.                         startExp = skills.getCurrentExp(Skills.HUNTER);
  237.                 }
  238.  
  239.                 if (startLevel == 0) {
  240.                         startLevel = skills.getCurrentLevel(Skills.HUNTER);
  241.                 }
  242.  
  243.                 runTime = System.currentTimeMillis() - startTime;
  244.                 seconds = runTime / 1000;
  245.                 if (seconds >= 60) {
  246.                         minutes = seconds / 60;
  247.                         seconds -= minutes * 60;
  248.                 }
  249.                 if (minutes >= 60) {
  250.                         hours = minutes / 60;
  251.                         minutes -= hours * 60;
  252.                 }
  253.  
  254.                 gainedExp = skills.getCurrentExp(Skills.HUNTER) - startExp;
  255.                 expToLevel = skills.getExpToNextLevel(Skills.HUNTER);
  256.  
  257.                 if ((minutes > 0 || hours > 0 || seconds > 0) && gainedExp > 0) {
  258.                         secExp = (float) gainedExp
  259.                         / (float) (seconds + minutes * 60 + hours * 60 * 60);
  260.                 }
  261.                 minuteExp = secExp * 60;
  262.                 hourExp = minuteExp * 60;
  263.  
  264.                 if (secExp > 0) {
  265.                         secToLevel = (int) (expToLevel / secExp);
  266.                 }
  267.                 if (secToLevel >= 60) {
  268.                         minutesToLevel = secToLevel / 60;
  269.                         secToLevel -= minutesToLevel * 60;
  270.                 } else {
  271.                         minutesToLevel = 0;
  272.                 }
  273.                 if (minutesToLevel >= 60) {
  274.                         hoursToLevel = minutesToLevel / 60;
  275.                         minutesToLevel -= hoursToLevel * 60;
  276.                 } else {
  277.                         hoursToLevel = 0;
  278.                 }
  279.  
  280.                 g.setFont(new Font("Tahoma", Font.PLAIN, 10));
  281.                 g.setColor(BG);
  282.                 g.fill3DRect(345, 10, 160, 140, true);
  283.                 g.setColor(BLACK);
  284.                 g.drawString(scriptInfo.name() + " v" + scriptInfo.version(), 350 + 1,
  285.                                 25 + 1);
  286.                 g.setColor(Color.white);
  287.                 g.drawString(scriptInfo.name() + " v" + scriptInfo.version(), 350, 25);
  288.                 g.drawString("Running for: " + hours + ":" + minutes + ":" + seconds,
  289.                                 350, 40);
  290.                 g
  291.                 .drawString(
  292.                                 "Exp Gained: "
  293.                                 + gainedExp
  294.                                 + " ("
  295.                                 + (skills
  296.                                                 .getCurrentLevel(Skills.HUNTER) - startLevel)
  297.                                                 + ")", 350, 55);
  298.                 g.drawString("Stuff Caught: " + numCaught, 350, 70);
  299.                 g.drawString("Exp per hour: " + (int) hourExp, 350, 85);
  300.                 g.drawString("Exp to level: " + expToLevel + " ("
  301.                                 + (int) (expToLevel / chinExp + 0.5) + " catches)", 350, 100);
  302.                 g.drawString("Time to level: " + hoursToLevel + ":" + minutesToLevel
  303.                                 + ":" + secToLevel, 350, 115);
  304.                 g.drawString("Progress to next level:", 350, 130);
  305.                 g.setColor(RED);
  306.                 g.fill3DRect(350, 135, 100, 11, true);
  307.                 g.setColor(GREEN);
  308.                 g.fill3DRect(350, 135, skills
  309.                                 .getPercentToNextLevel(Skills.HUNTER), 11, true);
  310.                 g.setColor(BLACK);
  311.                 g.drawString(skills.getPercentToNextLevel(Skills.HUNTER)
  312.                                 + "%  to "
  313.                                 + (skills.getCurrentLevel(Skills.HUNTER) + 1),
  314.                                 380, 144);
  315.  
  316.         }
  317.  
  318.         @Override
  319.         public void serverMessageRecieved(ServerMessageEvent e) {
  320.                 final String message = e.getMessage().toLowerCase();
  321.                 if (message.contains("caught")) {
  322.                         numCaught++;
  323.                 }
  324.  
  325.         }
  326.  
  327.  
  328.         class BoxWatcher extends Thread {
  329.  
  330.                 private gChins parent;
  331.  
  332.                 BoxWatcher(gChins parent) {
  333.                         this.parent = parent;
  334.                 }
  335.  
  336.                 public void run() {
  337.                         try {
  338.                                 while(parent.isActive()) {                                     
  339.                                         if(!parent.isPaused()) {
  340.                                                 // caught
  341.                                                 RSObject obj = objects.getNearest(19190);
  342.                                                 RSTile objLoc;
  343.                                                 log("Checking if OBJ = null");
  344.                                                 if (obj != null) {
  345.                                                         log("obj != null");
  346.                                                         objLoc = obj.getLocation();
  347.                                                         if (objLoc != tile1 && objLoc != tile2 && objLoc != tile3
  348.                                                                         && objLoc != tile4 && objLoc != tile5) {
  349.                                                                 if (tile1 == null) {
  350.                                                                         log("found the obj. naming loc to tile1!@!@!");
  351.                                                                         tile1 = objLoc;
  352.                                                                 } else if (tile2 == null) {
  353.                                                                         tile2 = objLoc;
  354.                                                                 } else if (tile3 == null) {
  355.                                                                         tile3 = objLoc;
  356.                                                                 } else if (tile4 == null) {
  357.                                                                         tile4 = objLoc;
  358.                                                                 } else if (tile5 == null) {
  359.                                                                         tile5 = objLoc;
  360.                                                                 }
  361.                                                         }
  362.                                                 }
  363.                                                
  364.                                         }
  365.                                         sleep(parent.random(800, 1200));
  366.                                 }
  367.                         }
  368.                         catch(InterruptedException e) {
  369.                                 log(e.getMessage());
  370.                         }
  371.                 }
  372.         }
  373.  
  374.  
  375. }