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

Untitled

By: a guest on May 7th, 2012  |  syntax: None  |  size: 24.43 KB  |  hits: 13  |  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.BorderLayout;
  2. import java.awt.Color;
  3. import java.awt.Font;
  4. import java.awt.Graphics;
  5. import java.awt.Graphics2D;
  6. import java.awt.RenderingHints;
  7. import java.awt.Point;
  8. import java.awt.event.ActionEvent;
  9. import java.awt.event.ActionListener;
  10. import java.awt.event.WindowAdapter;
  11. import java.awt.event.WindowEvent;
  12. import java.io.BufferedReader;
  13. import java.io.BufferedWriter;
  14. import java.io.File;
  15. import java.io.FileNotFoundException;
  16. import java.io.FileReader;
  17. import java.io.FileWriter;
  18. import java.io.IOException;
  19. import java.io.InputStreamReader;
  20. import java.net.URISyntaxException;
  21. import java.net.URL;
  22. import java.util.Map;
  23.  
  24. import javax.swing.ComboBoxModel;
  25. import javax.swing.DefaultComboBoxModel;
  26. import javax.swing.JButton;
  27. import javax.swing.JCheckBox;
  28. import javax.swing.JComboBox;
  29. import javax.swing.JFrame;
  30. import javax.swing.JLabel;
  31. import javax.swing.JPanel;
  32. import javax.swing.JScrollPane;
  33. import javax.swing.JTabbedPane;
  34. import javax.swing.JTextArea;
  35. import javax.swing.WindowConstants;
  36.  
  37. import org.rsbot.bot.Bot;
  38. import org.rsbot.bot.input.Mouse;
  39. import org.rsbot.event.listeners.PaintListener;
  40. import org.rsbot.script.Calculations;
  41. import org.rsbot.script.Constants;
  42. import org.rsbot.script.GEItemInfo;
  43. import org.rsbot.script.Methods;
  44. import org.rsbot.script.Script;
  45. import org.rsbot.script.ScriptManifest;
  46. import org.rsbot.script.wrappers.RSInterface;
  47. import org.rsbot.script.wrappers.RSItemTile;
  48. import org.rsbot.script.wrappers.RSNPC;
  49. import org.rsbot.script.wrappers.RSObject;
  50. import org.rsbot.script.wrappers.RSPlayer;
  51. import org.rsbot.script.wrappers.RSTile;
  52. import org.rsbot.util.GlobalConfiguration;
  53.  
  54. @ScriptManifest(authors = { "Colton77" }, category = "Money", name = "ColtSwampToads", version = 1.0, description =
  55.     "<html><head>" +
  56.     "</head><body>" +
  57.     "<center><strong><h2>Colton's Swamp Toad Picker </h2></strong></center>" +
  58.     "<center>Start in the Grand Tree Bank. This script will not start properly anywhere else.</center>" +
  59.     "<br /><center><b>First script, hopefully no flaws, please post a 1 hour proggy</b></center>" +
  60.     "</body></html>")
  61.     //*******************************************************//
  62.  
  63.     //*******************************************************//
  64. public class ColtSwampToads extends Script implements PaintListener{
  65.     //*******************************************************//
  66.     // OTHER VARIABLES
  67.     //*******************************************************//
  68.     private final double version = 1.0;
  69.     private long scriptStartTime;
  70.     private int stuck = 0;
  71.     private int failCount = 0;
  72.     private int runEnergy = random(35, 70);
  73.     private int toadsGained;
  74.     private int toadPrice;
  75.     protected int getMouseSpeed() {
  76.     return random(4,5); }
  77.     //*******************************************************//
  78.     // TILES
  79.     //*******************************************************//
  80.     private final int swampMinX = 2407;
  81.     private final int swampMaxX = 2430;
  82.     private final int swampMinY = 3506;
  83.     private final int swampMaxY = 3519;
  84.     private final int treeMinX = 2462;
  85.     private final int treeMaxX = 2469;
  86.     private final int treeMinY = 3492;
  87.     private final int treeMaxY = 3499;
  88.     private final RSTile ladder = new RSTile (2466,3495);
  89.     private final RSTile bankTile = new RSTile (2450,3481);
  90.     private final RSTile doorTile = new RSTile (2465,3492);
  91.     //*******************************************************//
  92.     // PATHS
  93.     //*******************************************************//
  94.     private final RSTile[] bankToSwamp1 = { new RSTile (2449,3482), new RSTile (2457 + random(-1, 1),3495), new RSTile (2466,3494) }; // This is the path for walking from the bank to the ladder
  95.     private final RSTile[] bankToSwamp2 = { new RSTile (2465 + random(-1, 1),3491), new RSTile (2452 + random(-2, 2),3497), new RSTile (2444 + random(-2, 2),3509), new RSTile (2433 + random(-2, 2),3511), new RSTile (2421 + random(-2, 2),3509) };// This is the path that walks from the tree to the swamp
  96.     //*******************************************************//
  97.     // OBJECTS
  98.     //*******************************************************//
  99.     private final int doorID = 1967;
  100.     private final int[] toadID = { 2150 };
  101.     //*******************************************************//
  102.     // ENUM
  103.     //*******************************************************//
  104.     private final int WALKTOSWAMP1 = 1;
  105.     private final int OPENDOOR1 = 2;
  106.     private final int WALKTOSWAMP2 = 3;
  107.     private final int PICKUPTOADS = 4;
  108.     private final int WALKTOBANK1 = 5;
  109.     private final int OPENDOOR2 = 6;
  110.     private final int WALKTOBANK2 = 7;
  111.     private final int OPENBANK = 8;
  112.     private final int BANK = 9;
  113.     private int ACTION = WALKTOSWAMP1;
  114.  
  115.     //*******************************************************//
  116.     // ON START
  117.     //*******************************************************//
  118.     @SuppressWarnings("deprecation")
  119.     public boolean onStart(Map<String, String> args) {
  120.         scriptStartTime = System.currentTimeMillis();
  121.         Bot.getEventManager().addListener(PaintListener.class, this);
  122.         final GEItemInfo stringGE = grandExchange.loadItemInfo(toadID[0]);
  123.         toadPrice = stringGE.getMarketPrice();
  124.         log.info("Each Swamp Toad will be valued at the current GE market price of " + toadPrice + " coins.");
  125.         log.info("Setting Camera Altitude");
  126.         setCameraAltitude(true);
  127.         log.info("Script Started Successfully");
  128.         return true;
  129.     }
  130.     //*******************************************************//
  131.     // ON FINISH
  132.     //*******************************************************//
  133.     public void onFinish(){
  134.         Bot.getEventManager().removeListener(PaintListener.class, this);
  135.         return;
  136.     }
  137.     //*******************************************************//
  138.     // MAIN LOOP
  139.     //*******************************************************//
  140.     public int loop() {
  141.         //***********************//
  142.         // Walk Out Of Bank
  143.         //***********************//
  144.         try {
  145.         if (ACTION == WALKTOSWAMP1) {
  146.             if (getPlane() == 1) {
  147.                 if (!tileOnScreen(ladder)) {
  148.                     if (needToWalk()) {
  149.                         walkPathMM(bankToSwamp1);
  150.                         startRunning(runEnergy);
  151.                         log.info("Walking to ladder");
  152.                         return random(100,200);
  153.                     }
  154.                     else { antiBanlow(); return random(100,150); }
  155.                 }
  156.                 else {
  157.                     atTile(ladder,"Climb-down");
  158.                     log.info("Clicking ladder");
  159.                     return random(80,120);
  160.                 }
  161.             }
  162.             if (getPlane() == 0) {
  163.                 if (inTree()) {
  164.                     ACTION = OPENDOOR1;
  165.                     return random (50,150);
  166.                 }
  167.             }
  168.             if (getPlane() == 2) {
  169.                 unstuck();
  170.                 return random (90,120);
  171.             }
  172.         }
  173.         //***********************//
  174.         // Leave The Tree
  175.         //***********************//
  176.         if (ACTION == OPENDOOR1) {
  177.             if (!inTree()) { ACTION = WALKTOSWAMP2; return random (30,50); }
  178.             RSObject door = getNearestObjectByID(doorID);
  179.             if (door == null) { return random (30,50); }
  180.             if (!tileOnScreen(doorTile)) { setCameraRotation(random(1,36)); return random (30,60); }
  181.             if (getMyPlayer().isMoving()) { return random (300,600); }
  182.             if (!atObject(door, "Open")) { setCameraRotation(random(1,36)); antiBan(); return random (30,60); }
  183.         }
  184.         //***********************//
  185.         // Walk To The Swamp
  186.         //***********************//
  187.         if (ACTION == WALKTOSWAMP2) {
  188.             if (!inSwamp()) {
  189.                 if (!inTree()) {
  190.                     if (needToWalk()) {
  191.                         walkPathMM(bankToSwamp2);
  192.                         startRunning(runEnergy);
  193.                         return random(10,15);
  194.                     }
  195.                     else { antiBanlow(); return random(10,15); }
  196.                 }
  197.                 else { ACTION = OPENDOOR1; return random(10,15); }
  198.             }
  199.             else {
  200.                 ACTION = PICKUPTOADS;
  201.                 log.info("Picking up toads");
  202.                 return random(40,70);
  203.             }
  204.         }
  205.         //***********************//
  206.         // Pick Up Toads
  207.         //***********************//
  208.         if (ACTION == PICKUPTOADS) {
  209.             if (isInventoryFull()) { toadsGained = toadsGained + getInventoryCount(toadID); ACTION = WALKTOBANK1; return random(15,25); }
  210.             else {
  211.                 startRunning(runEnergy);
  212.                 RSItemTile swampToadTile = getNearestGroundItemByID(toadID);
  213.                 if (swampToadTile != null) {
  214.                     if (tileOnScreen(swampToadTile)) {
  215.                         if (getMyPlayer().isMoving() == false) {
  216.                             atTile(swampToadTile, "toad");
  217.                             return random(30,60);
  218.                         }
  219.                     }
  220.                     else {
  221.                         if (getMyPlayer().isMoving() == false) {
  222.                             walkTileMM(swampToadTile);
  223.                             return random(40,60);
  224.                         }
  225.                     }
  226.                 }
  227.             }
  228.         }
  229.         //***********************//
  230.         // Walk To Tree
  231.         //***********************//
  232.         if (ACTION == WALKTOBANK1) {
  233.             RSObject door = getNearestObjectByID(doorID);
  234.             if (door != null) {
  235.                 if (distanceTo(door) <= 7) {
  236.                     ACTION = OPENDOOR2;
  237.                     log.info("Changed action to OPENDOOR2");
  238.                     return random(25,35);
  239.                 }
  240.             }
  241.             if (needToWalk()) {
  242.                 walkPathMM(reversePath(bankToSwamp2));
  243.                 startRunning(runEnergy);
  244.                 return random(10,15);
  245.             }
  246.             else { antiBanlow(); return random(10,15); }
  247.         }
  248.         //***********************//
  249.         // Enter The Tree
  250.         //***********************//
  251.         if (ACTION == OPENDOOR2) {
  252.             if (inTree()) { ACTION = WALKTOBANK2; return random (30,500); }
  253.             RSObject door = getNearestObjectByID(doorID);
  254.             if (door == null) { return random (30,50); }
  255.             if (!tileOnScreen(doorTile)) { setCameraRotation(random(1,36)); return random (30,60); }
  256.             if (getMyPlayer().isMoving()) { return random (30,60); }
  257.             if (!atObject(door, "Open")) { setCameraRotation(random(1,36)); antiBan(); return random (30,60); }
  258.         }
  259.         //***********************//
  260.         // Walk Back To The Bank
  261.         //***********************//
  262.         if (ACTION == WALKTOBANK2) {
  263.             if (getPlane() == 0) {
  264.                 if (inTree()){
  265.                     if (!getMyPlayer().isMoving()) {
  266.                         atTile(ladder,"Climb-up");
  267.                         log.info("Clicking ladder");
  268.                         return random(80,120);
  269.                     }
  270.                 }
  271.                 else {
  272.                     ACTION = OPENDOOR2;
  273.                 }
  274.             }
  275.             if (getPlane() == 1) {
  276.                 if (distanceTo(bankTile) < 3) {
  277.                     ACTION = OPENBANK;
  278.                 }
  279.                 else {
  280.                     if (needToWalk()) {
  281.                         walkPathMM(reversePath(bankToSwamp1));
  282.                         log.info("Walking to bank");
  283.                         return random(10,20);
  284.                     }
  285.                     else { antiBanlow(); return random(10,20); }
  286.                 }
  287.             }
  288.             if (getPlane() == 2) {
  289.                 unstuck();
  290.                 return random(90,120);
  291.             }
  292.         }
  293.         //***********************//
  294.         // Open The Bank
  295.         //***********************//
  296.         if (ACTION == OPENBANK) {
  297.             if (!bank.isOpen()) {
  298.                 atTile(bankTile,"Use-quickly");
  299.                 return random(800,1200);
  300.             }
  301.             else { ACTION = BANK; return random(15,25); }
  302.         }
  303.         //***********************//
  304.         // Deposit Toads
  305.         //***********************//
  306.         if (ACTION == BANK) {
  307.             if (bank.isOpen()) {
  308.                 if (isInventoryFull()){
  309.                     bank.depositAll();
  310.                     return random(15,25);
  311.                 }
  312.                 else {
  313.                     ACTION = WALKTOSWAMP1;
  314.                 }
  315.             }
  316.             else {
  317.                 if (isInventoryFull()) {
  318.                     ACTION = OPENBANK;
  319.                     return random(15,25);
  320.                 }
  321.                 else ACTION = WALKTOSWAMP1;
  322.             }
  323.         }
  324.         } catch( Exception e ) { }
  325.         return random(50,150);
  326.     }
  327.     //*******************************************************//
  328.     // OTHER METHODS
  329.     //*******************************************************//
  330.     public boolean needToWalk() {
  331.         if ((getMyPlayer().isMoving() == false) ||
  332.            (distanceTo(getDestination()) <= random(3,6))) return true;
  333.         return false;
  334.     }
  335.     public boolean inTree() {
  336.         RSTile playerLoc = getMyPlayer().getLocation();
  337.         if ((playerLoc.getX() >= treeMinX) &&
  338.             (playerLoc.getX() <= treeMaxX) &&
  339.             (playerLoc.getY() >= treeMinY) &&
  340.             (playerLoc.getY() <= treeMaxY)) return true;
  341.         else return false;
  342.  
  343.     }
  344.     public boolean inSwamp() {
  345.         RSTile playerLoc = getMyPlayer().getLocation();
  346.         if ((playerLoc.getX() >= swampMinX) &&
  347.             (playerLoc.getX() <= swampMaxX) &&
  348.             (playerLoc.getY() >= swampMinY) &&
  349.             (playerLoc.getY() <= swampMaxY)) return true;
  350.         else return false;
  351.     }
  352.     private void startRunning(final int energy) { // Method by Garrett - Used with permission. Thanks Garrett
  353.         if (getEnergy() >= energy && !isRunning()) {
  354.             runEnergy = random(35, 70);
  355.             setRun(true);
  356.             wait(random(50, 75));
  357.         }
  358.     }
  359.     private void unstuck() {
  360.         if (ladder != null) {
  361.             if (distanceTo(ladder) <= 7) {
  362.                 atTile(ladder, "Climb-down");
  363.                 log.info("Climbing down ladder");
  364.                 failCount++;
  365.                 return;
  366.             }
  367.             else {
  368.                 walkTileMM(ladder);
  369.                 failCount++;
  370.                 return;
  371.             }
  372.         }
  373.         return;
  374.     }
  375.     public void antiBan(){
  376.         int randomNumber = random(1, 13);
  377.         if (randomNumber <= 13) {
  378.             if (randomNumber == 1) {
  379.                 wait(random(100, 300));
  380.                 moveMouse(631, 254, random(40, 200));
  381.                 wait(random(20, 60));
  382.             }
  383.             if (randomNumber == 2) {
  384.                 moveMouse(random(50, 70), random(5, 45), 2, 2);
  385.                 wait(random(20, 50));
  386.                 moveMouse(random(50, 70), random(5, 45), 2, 2);
  387.                 setCameraRotation(random(1,36));
  388.             }
  389.             if (randomNumber == 3) {
  390.                 wait(random(10, 20));
  391.                 setCameraRotation(random(1,36));
  392.                 wait(random(100, 200));
  393.                 moveMouse(random(50, 70), random(5, 45), 2, 2);
  394.                 }      
  395.                 if (randomNumber == 4) {
  396.                     wait(random(10, 200));
  397.                     moveMouse(random(50, 70), random(50, 45), 2, 2);
  398.                     wait(random(20, 50));
  399.                     setCameraRotation(random(1,36));
  400.                     wait(random(10, 20));
  401.                     moveMouse(random(50, 70), random(0, 45), 2, 2);
  402.                     }            
  403.                             if (randomNumber == 6) {
  404.                                 setCameraRotation(random(1,36));
  405.                             }
  406.                             if (randomNumber == 7) {
  407.                                 moveMouse(random(50, 70), random(5, 45), 2, 2);
  408.                             }
  409.                                 if (randomNumber == 8) {
  410.                                     wait(random(100, 200));
  411.                                         moveMouse(631, 278);
  412.                                         wait(random(50, 300));
  413.                                         moveMouse(random(50, 70), random(5, 45), 2, 2);
  414.                                         wait(random(100, 300));
  415.                                         if (randomNumber == 9) {
  416.                                             wait(random(100, 200));
  417.                                                 moveMouse(random(50, 70), random(5, 450), 2, 2);
  418.                                                 wait(random(20, 40));
  419.                                     setCameraRotation(random(1,36));
  420.                                                 if (randomNumber == 10) {
  421.                                                     moveMouse(random(50, 70), random(50, 450), 2, 2);
  422.                                                 }
  423.                                                 if (randomNumber == 11) {
  424.                                                     moveMouse(random(50, 70), random(50, 450), 2, 2);
  425.                                                 }
  426.                                                 if (randomNumber == 12) {
  427.                                                     moveMouse(random(50, 70), random(50, 450), 2, 2);
  428.                             setCameraRotation(random(1,360));
  429.                                                 }
  430.                                                 if (randomNumber == 13) {
  431.                                                     moveMouse(random(50, 700), random(50, 450), 2, 2);
  432.                                                     wait(random(100, 300));
  433.                                                     setCameraRotation(random(1,360));
  434.                                                 }
  435.                                
  436.                         }}}}
  437.  
  438.     public void antiBanlow(){
  439.         int randomNumber = random(1, 26);
  440.         if (randomNumber <= 13) {
  441.             if (randomNumber == 2) {
  442.                 wait(random(100, 300));
  443.                 moveMouse(631, 254, random(40, 200));
  444.                 wait(random(200, 600));
  445.             }
  446.             if (randomNumber == 4) {
  447.                 moveMouse(random(50, 700), random(50, 450), 2, 2);
  448.                 wait(random(200, 500));
  449.                 moveMouse(random(50, 700), random(50, 450), 2, 2);
  450.                 setCameraRotation(random(1,360));
  451.             }
  452.             if (randomNumber == 6) {
  453.                 wait(random(100, 200));
  454.                 setCameraRotation(random(1,360));
  455.                 wait(random(100, 200));
  456.                 moveMouse(random(50, 700), random(50, 450), 2, 2);
  457.                 }      
  458.                 if (randomNumber == 10) {
  459.                     wait(random(100, 200));
  460.                     moveMouse(random(50, 700), random(50, 450), 2, 2);
  461.                     wait(random(200, 500));
  462.                     setCameraRotation(random(1,360));
  463.                     wait(random(100, 200));
  464.                     moveMouse(random(50, 700), random(50, 450), 2, 2);
  465.                     }            
  466.                             if (randomNumber == 12) {
  467.                                 setCameraRotation(random(1,360));
  468.                             }
  469.                             if (randomNumber == 14) {
  470.                                 moveMouse(random(50, 700), random(50, 450), 2, 2);
  471.                             }
  472.                                 if (randomNumber == 16) {
  473.                                     wait(random(100, 200));
  474.                                         moveMouse(631, 278);
  475.                                         wait(random(50, 300));
  476.                                         moveMouse(random(50, 700), random(50, 450), 2, 2);
  477.                                         wait(random(100, 300));
  478.                                         if (randomNumber == 18) {
  479.                                             wait(random(100, 200));
  480.                                                 moveMouse(random(50, 700), random(50, 450), 2, 2);
  481.                                                 wait(random(200, 400));
  482.                                     setCameraRotation(random(1,360));
  483.                                                 if (randomNumber == 20) {
  484.                                                     moveMouse(random(50, 700), random(50, 450), 2, 2);
  485.                                                 }
  486.                                                 if (randomNumber == 22) {
  487.                                                     moveMouse(random(50, 700), random(50, 450), 2, 2);
  488.                                                 }
  489.                                                 if (randomNumber == 24) {
  490.                                                     moveMouse(random(50, 700), random(50, 450), 2, 2);
  491.                             setCameraRotation(random(1,360));
  492.                                                 }
  493.                                                 if (randomNumber == 26) {
  494.                                                     moveMouse(random(50, 700), random(50, 450), 2, 2);
  495.                                                     wait(random(100, 300));
  496.                                                     setCameraRotation(random(1,360));
  497.                                                 }
  498.                                
  499.                         }}}}
  500.  
  501.     private String getStatus() {
  502.         if (ACTION == WALKTOSWAMP1) return "Leaving the bank...";
  503.         if (ACTION == OPENDOOR1) return "Leaving the tree...";
  504.         if (ACTION == WALKTOSWAMP2) return "Walking to the swamp...";
  505.         if (ACTION == PICKUPTOADS) return "Picking up toads...";
  506.         if (ACTION == WALKTOBANK1) return "Walking to the tree...";
  507.         if (ACTION == OPENDOOR2) return "Entering the tree...";
  508.         if (ACTION == WALKTOBANK2) return "Walking to the bank...";
  509.         if (ACTION == OPENBANK) return "Opening the bank...";
  510.         if (ACTION == BANK) return "Banking...";
  511.         return "None";
  512.     }
  513.     public void onRepaint(Graphics g) {
  514.                ((Graphics2D)g).setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
  515.                        ((Graphics2D)g).setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
  516.                        ((Graphics2D)g).setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
  517.         long runTime = 0;
  518.         long seconds = 0;
  519.         long minutes = 0;
  520.         long hours = 0;
  521.         int toadsPerHour = 0;
  522.         int moneyGained = 0;
  523.         int moneyPerHour = 0;
  524.         runTime = System.currentTimeMillis() - scriptStartTime;
  525.         seconds = runTime / 1000;
  526.         if ( seconds >= 60 ) {
  527.             minutes = seconds / 60;
  528.             seconds -= (minutes * 60);
  529.         }
  530.         if ( minutes >= 60 ) {
  531.             hours = minutes / 60;
  532.             minutes -= (hours * 60);
  533.         }
  534.         if ((runTime / 1000) > 0) {
  535.             toadsPerHour = (int) ((3600000.0 / (double) runTime) * toadsGained);
  536.         }
  537.         moneyGained = toadsGained * toadPrice;
  538.         moneyPerHour = toadsPerHour * toadPrice;
  539.         if(getCurrentTab() == TAB_INVENTORY) {
  540.             g.setColor(new Color(0, 0, 0, 175));
  541.             g.fillRoundRect(555, 210, 175, 250, 10, 10);
  542.             g.setColor(Color.WHITE);
  543.  
  544.             int[] coords = new int[] {225, 240, 255, 270, 285, 300, 315, 330, 345, 360, 375, 390, 405, 420, 435, 450};
  545.             g.setFont(new Font("Calibri", Font.BOLD, 14));
  546.             g.drawString("Colton's Swamp Toad Picker", 561, coords[0]);
  547.             g.setFont(new Font("Calibri", Font.PLAIN, 12));
  548.             g.drawString("Version: " + version, 561, coords[2]);
  549.             g.drawString("Run Time: " + hours + ":" + minutes + ":" + seconds, 561, coords[3]);
  550.             g.drawString("Toads Picked: " + toadsGained, 561, coords[5]);
  551.             g.drawString("Money Earned: " + moneyGained, 561, coords[6]);
  552.             g.drawString("Toads/Hour: " + toadsPerHour, 561, coords[8]);
  553.             g.drawString("Money/Hour: " + moneyPerHour, 561, coords[9]);
  554.             g.drawString("Status: " + getStatus(), 561, coords[11]);
  555.             g.drawString("Times Stuck: " + stuck, 561, coords[13]);
  556.         }
  557.     }
  558. }