- import java.util.Map;
- import org.rsbot.script.Script;
- import org.rsbot.script.ScriptManifest;
- import org.rsbot.script.wrappers.RSObject;
- import org.rsbot.script.wrappers.RSTile;
- import org.rsbot.script.wrappers.RSArea;
- import org.rsbot.script.wrappers.RSNPC;
- import org.rsbot.script.wrappers.RSItem;
- import org.rsbot.script.methods.Skills;
- import org.rsbot.script.util.Filter;
- import java.awt.*;
- import javax.imageio.ImageIO;
- import javax.swing.JFileChooser;
- import javax.swing.JOptionPane;
- import java.io.BufferedReader;
- import java.io.BufferedWriter;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.net.URL;
- import java.net.URLConnection;
- import org.rsbot.event.events.ServerMessageEvent;
- import org.rsbot.event.listeners.PaintListener;
- @ScriptManifest(authors = { "YoshiFue" }, keywords = { "Draynor Willow Chopper" }, name = "YF Draynor Willow Chopper", version = 1.0, description = "Cuts Willow Trees and banks the logs.")
- public class YFPowerChopperDraynor extends Script implements PaintListener {
- private int willowlogsID = (1519);
- RSTile[] banktoTrees = { new RSTile(3092, 3243), new RSTile(3086, 3234),};
- private int bankboothID[] = {2213, 9398};
- private int willowID[] = {5551, 5552, 5553};
- RSTile[] Treestobank = { new RSTile(3086, 3234), new RSTile(3092, 3243),};
- private int hatchetsID[] = {1359, 1351, 1353, 1349, 1355};
- private String status = "Loading...";
- public long startTime = System.currentTimeMillis();
- public boolean onStart() {
- mouse.setSpeed(random(7, 9));
- log("Welcome to YoshiFue's Draynor Willow Chopper v1.0!");
- return true;
- }
- private boolean atTrees(){
- RSArea area = new RSArea(new RSTile(3081, 3239), new RSTile(3091, 3225));
- return area.contains(getMyPlayer().getLocation());
- }
- private boolean atBank(){
- RSArea area = new RSArea(new RSTile(3092, 3246), new RSTile(3095, 3240));
- return area.contains(getMyPlayer().getLocation());
- }
- private boolean walkToTreesFromBank(){
- RSTile[] randompath = walking.randomizePath(banktoTrees, 1, 1);
- return walking.walkPathMM(randompath, 15);
- }
- private boolean walkToBankFromTrees(){
- RSTile[] randompath = walking.randomizePath(Treestobank, 1, 1);
- return walking.walkPathMM(randompath, 15);
- }
- private Image getImage(String url) {
- try {
- return ImageIO.read(new URL(url));
- } catch(IOException e) {
- return null;
- }
- }
- private final Color color1 = new Color(0, 0, 255, 152);
- private final Color color2 = new Color(255, 255, 0);
- private final BasicStroke stroke1 = new BasicStroke(3);
- private final Font font1 = new Font("Comic Sans MS", 1, 12);
- private final Font font2 = new Font("Comic Sans MS", 0, 13);
- private final Image img1 = getImage("http://runescape.siteguides.net/database/item/images/1519.gif");
- private final Image img2 = getImage("http://i87.photobucket.com/albums/k145/widdleguy10/RuneaddictGuideImages/WillowTree.gif");
- public void onRepaint(Graphics g1) {
- long millis = System.currentTimeMillis() - startTime;
- long hours = millis / (1000 * 60 * 60);
- millis -= hours * (1000 * 60 * 60);
- long minutes = millis / (1000 * 60);
- millis -= minutes * (1000 * 60);
- long seconds = millis / 1000;
- Graphics2D g = (Graphics2D)g1;
- g.setColor(color1);
- g.fillRoundRect(544, 336, 196, 130, 16, 16);
- g.setColor(color2);
- g.setStroke(stroke1);
- g.drawRoundRect(544, 336, 196, 130, 16, 16);
- g.setFont(font1);
- g.drawString("YF Draynor Willow Chopper v1.0", 549, 352);
- g.setFont(font2);
- g.drawString("Status: " + status, 548, 368);
- g.drawString("Running Time: " + hours + ":" + minutes + ":" + seconds, 548, 382);
- g.drawString("Logs Chopped:", 548, 398);
- g.drawString("Levels Gained:", 549, 414);
- g.drawImage(img1, 424, 254, null);
- g.drawImage(img2, -5, 190, null);}
- public void antiban(){
- int b = random(0, 10);
- switch (b) {
- case 1:
- if(random (0, 10) == 5) {
- log("[Antiban] move mouse");
- mouse.moveSlightly();
- sleep(200, 600);
- mouse.moveRandomly(200, 450);
- }
- break;
- case 2:
- if (random (0, 8) == 4) {
- log("[Antiban] turn screen");
- status = "Antiban";
- camera.setAngle (random (30, 70));
- sleep(400, 1200);
- }
- break;
- case 3:
- if (random (0, 12) == 7) {
- log("[Antiban] mouse off screen");
- status = "Antiban";
- mouse.moveOffScreen();
- sleep(random(600, random(1200, 2000)));
- }
- break;
- case 4:
- if (random (0, 10) == 3) {
- log("[Antiban] checking experience");
- status = "Antiban";
- game.openTab(1);
- skills.doHover(Skills.INTERFACE_WOODCUTTING);
- sleep(random(3000, 4500));
- }
- break;
- case 5:
- if (random (1, 18) == 15) {
- log("[Antiban] checking experience");
- status = "Antiban";
- game.openTab(1);
- skills.doHover(Skills.INTERFACE_FIREMAKING);
- sleep(random(3000, 4500));
- }
- break;
- case 6:
- if (random (0, 9) == 3) {
- log("[Antiban] checking experience");
- status = "Antiban";
- game.openTab(1);
- skills.doHover(Skills.INTERFACE_COOKING);
- sleep(random(3000, 4500));
- }
- break;
- default:
- break;
- }
- }
- private void useBank(){
- RSObject bankBooth = objects.getNearest(bankboothID);
- if(bankBooth != null && inventory.contains(willowlogsID)){
- bankBooth.doAction("Use-quickly");
- sleep(800, 1000);
- }
- }
- private void depositWillowLogs(){
- if(bank.isOpen()){
- bank.deposit(willowlogsID, 0);
- sleep(300, 600);
- }
- }
- private void closeBank(){
- if(bank.isOpen()){
- mouse.move(490, 36, 3, 3);
- sleep(300, 600);
- mouse.click(true);
- }
- }
- private void Bank(){
- useBank();
- status = "Banking...";
- depositWillowLogs();
- closeBank();
- }
- private void Chop(){
- if (getMyPlayer().getAnimation() != 867){
- RSObject tree = objects.getNearest(willowID);
- if(tree != null);
- tree.doAction("Chop");}
- }
- public void onFinish(){
- log("Finished YF Draynor Willow Chopper v1.0");
- }
- @Override
- public int loop() {
- if(atTrees() && inventory.isFull()){
- walkToBankFromTrees();
- }else if(atBank() && inventory.contains(willowlogsID)){
- Bank();
- }else if(atTrees() && !inventory.isFull()){
- Chop();
- }else if(atBank() && !inventory.contains(willowlogsID)){
- walkToTreesFromBank();
- }
- return random(500, 1300);
- }
- }