GimmieOaks - RSBot Script [2.0]

Posts 115 of 15 · Page 1 of 1
GimmieOaks - RSBot Script [2.0]
GimmieOaks | v0.3.2

Locations:
Draynor

Trees:
Oaks (Only)

Known Bugs:
Banking does not work
Wont walk to trees or bank


Save As: GimmieOaks.java

Code:
/*
 * @Author lolpl0xme
 * Help From YEF
 * Tutorials From PB
 */

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.RenderingHints;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.IOException;
import java.net.URL;
import java.util.Random;

import javax.imageio.ImageIO;

import org.rsbot.event.listeners.PaintListener;
import org.rsbot.script.Script;
import org.rsbot.script.ScriptManifest;
import org.rsbot.script.wrappers.*;

@ScriptManifest(name = "GimmieOaks", authors = { "lolpl0xme", "YouEpicFail", "Dead 4 Real" }, version = 0.3, keywords = "woodcutting", website = "http://pure-k0.youneed.us", description = "Cuts Oaks Only At Draynor ATM")
public class GimmieOaks extends Script implements PaintListener, MouseListener {

	private static final String oak = null;
	public AntiBan antiban;
	public CameraMove moveCameraToTree;
	public int chopAnimation = 867;
	private Point p;
	private RSTile startTile;
	private RSTile draynorBankTile;
	private RSArea atDBank;
	private final int[] hatchetIDs = { 349, 1351, 1353, 1355, 1357, 1359, 1361, 6739 };
	private final int[] bankerIDs = { 495, 494, 2213 };
	private final String oakIDs = "Oak";
	private int xpGained;
	private int startXp;
	private int currentXp;
	private int xpRemain;
	private int levelsGained = 0;
	int logValue = 1;
	int locValue = 1;
	int tab = 1;
	double version = 0.3;
	int percent;
	public long startTime = System.currentTimeMillis();
	long runTime = 0;
	long seconds = 0;
	long minutes = 0;
	long hours = 0;
	boolean settings = false;

	private void openBank(String dontKnowWhyIDidThis) {
		RSObject banker = objects.getNearest(bankerIDs);
		if (banker != null) {
			banker.doAction("Use-quickly Bank booth");//Use-quickly Bank booth
		}
	}

	public int loop() {
		if (settings) {

			chopTree();
			if (inventory.isFull() && locValue == 1 && !atDraynorBank()) {
				if (!players.getMyPlayer().isMoving()) {

					walkToDraynorBank();
				}
			}
			if (inventory.isFull() && locValue == 3 && !atDraynorBank()) {
				if (!players.getMyPlayer().isMoving()) {
					walkToDraynorBank();
				}
			}
			if (inventory.isFull() && locValue == 3 && atDraynorBank()
					&& !bank.isOpen()) {
				openBank("By YEF");
			}
			if (inventory.isFull() && locValue == 3 && atDraynorBank()
					&& bank.isOpen()) {
				bank.depositAllExcept(hatchetIDs);
			}

			if (!inventory.isFull() && locValue == 3 && atDraynorBank()
					&& bank.isOpen()) {
				bank.close();
			}
			if (!inventory.isFull() && locValue == 3 && atDraynorBank()
					&& !bank.isOpen()) {
				if (!players.getMyPlayer().isMoving()) {
					walkToMyTile();
				}
			}
			if (inventory.isFull() && locValue == 6
					&& !players.getMyPlayer().isMoving()) {
			}
		}
		return 500;
	}

	private boolean walkToMyTile() {
		return walking.walkTo(startTile);
	}

	private boolean walkToDraynorBank() {
		return walking.walkTo(draynorBankTile);
	}

	private boolean atDraynorBank() {
		return atDBank.contains(players.getMyPlayer().getLocation());
	}

	private final RenderingHints antialiasing = new RenderingHints(
			RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

	private Image getImage(String url) {
		try {
			return ImageIO.read(new URL(url));
		} catch (IOException e) {
			return null;
		}
	}

	private final Color redColor = new Color(255, 0, 51, 132);
	private final Color blackColor = new Color(0, 0, 0);
	private final Color whiteColor = new Color(255, 255, 255);
	private final Color greenColor = new Color(0, 255, 0, 132);
	private final Color color1 = new Color(51, 204, 255, 50);
	private final Color color2 = new Color(0, 0, 0);
	private final Color color3 = new Color(0, 0, 0);
	private final BasicStroke stroke1 = new BasicStroke(1);
	private final Font font4 = new Font("Arial", 0, 10);
	private final Font font5 = new Font("Arial", 0, 10);
	private final Font font6 = new Font("Arial", 0, 10);
	private final Font font8 = new Font("Arial", 0, 12);
	private final Image img1 = getImage("http://img257.imageshack.us/img257/8861/oaks.png");
	/*
	 * IMGs Made By Lolpl0xme
	 */
	private final Image img2 = getImage("http://img823.imageshack.us/img823/7647/gimmeoaksnewpaint.png");
    //Old Picture: http://img101.imageshack.us/img101/3524/gimmeoaks.png
	public void onRepaint(Graphics g1) {
		if (game.isLoggedIn()) {
			
			for (RSPlayer player : players.getAll()) {
				if (player == null) {
					continue;
				}

			}
			for (RSNPC npc : npcs.getAll()) {
				if (npc == null) {
					continue;
				}

			}
			runTime = System.currentTimeMillis() - startTime;
			seconds = runTime / 1000;
			percent = skills.getPercentToNextLevel(8);
			if (seconds >= 60) {
				minutes = seconds / 60;
				seconds -= (minutes * 60);
			}
			if (minutes >= 60) {
				hours = minutes / 60;
				minutes -= (hours * 60);
			}
		}
		Graphics2D g = (Graphics2D) g1;
		g.setRenderingHints(antialiasing);
		currentXp = skills.getCurrentExp(8);
		xpGained = currentXp - startXp;
		xpRemain = skills.getExpToNextLevel(8);
		if (!settings) {
			g.setColor(blackColor);
			g.fillRect(7, 345, 99, 17);
			g.setColor(whiteColor);
			g.setStroke(stroke1);
			g.drawRect(7, 345, 99, 17);
			g.setColor(blackColor);
			g.fillRect(106, 345, 99, 17);
			g.setColor(whiteColor);
			g.drawRect(106, 345, 99, 17);
			g.setColor(blackColor);
			g.fillRect(rectStart.x, rectStart.y, rectStart.width,
					rectStart.height);
			g.setColor(whiteColor);
			g.drawRect(205, 345, 99, 17);
			g.setFont(font8);
			g.drawString("Tree", 38, 358);
			g.drawString("Location", 127, 359);
			g.drawString("Start!", 237, 359);

			if (tab == 1) {
				if (logValue == 2) {
					g.setColor(greenColor);
					g.drawRect(87, 379, 65, 77);
				} else if (logValue != 2) {
					g.setColor(redColor);
				}
				g.fillRect(rectOak.x, rectOak.y, rectOak.width, rectOak.height);
				g.setColor(blackColor);
				g.drawRect(rectOak.x, rectOak.y, rectOak.width, rectOak.height);
				g.setFont(font8);
				g.drawString("Oak", 107, 447);
				g.drawImage(img1, 93, 389, null);

			} else if (tab == 2) {
				if (locValue == 1) {
					g.setColor(greenColor);
				} else if (locValue != 1) {
					g.setColor(redColor);
				}
				if (locValue == 2) {
					g.setColor(greenColor);
				} else if (locValue != 3) {
					g.setColor(redColor);
				}
				g.fillRect(rectDraynor.x, rectDraynor.y, rectDraynor.width,
						rectDraynor.height);
				g.setColor(blackColor);
				g.drawRect(152, 365, 65, 77);
				if (locValue == 3) {
					g.setColor(greenColor);
				} else if (locValue != 3) {
					g.setColor(redColor);
				}
				g.fillRect(217, 365, 65, 77);
				g.setColor(blackColor);
				g.drawRect(217, 365, 65, 77);
				g.setFont(font8);
				g.drawString("Draynor", 164, 410);

			}
		} else if (settings) {
			/*
			 * Paint By Lolpl0xme & YouEpicFail
			 */
		    g.drawLine(0, (int)(mouse.getLocation().getY()), 800, (int)(mouse.getLocation().getY()));
		    g.drawLine((int)(mouse.getLocation().getX()), 0, (int)(mouse.getLocation().getX()), 800);
			g.setColor(color1);
			g.setColor(color2);
			g.setStroke(stroke1);
			g.drawImage(img2, 300, 3, null);
			g.setFont(font6);
			g.setFont(font4);
			g.setFont(font5);
			g.drawString("Xp gained: " + xpGained, 310, 60);// 15 = Width 365 = Height
			g.drawString("Xp remaining: " + xpRemain, 310, 80);
			g.drawString("Levels gained: " + levelsGained, 310, 100);
			g.drawString("Percent to level: " + percent + "%", 310, 120);
			g.setFont(font5);
			g.setColor(color3);
			g.drawString("Time: " + hours + " Hrs " + minutes + " Mins "
					+ seconds + " Secs! ", 310, 45);

			g.setColor(color2);
			g.drawString("Version: " + version, 310, 140);
		}
	}

	Rectangle rectOak = new Rectangle(87, 379, 65, 77);
	Rectangle rectDraynor = new Rectangle(152, 365, 65, 77);
	Rectangle rectStart = new Rectangle(205, 345, 99, 17);
	Rectangle rectTree = new Rectangle(7, 345, 99, 17);
	Rectangle rectLocation = new Rectangle(106, 345, 99, 17);

	public void mouseClicked(MouseEvent e) {
		p = e.getPoint();
		if (tab == 1) {
			if (rectOak.contains(p)) {
				log("Oak trees selected");
				logValue = 1;
			}
		}
		if (rectStart.contains(p)) {
			log("Reading Data");
			settings = true;
		}
		if (tab == 2) {
			if (rectDraynor.contains(p)) {
				log("Draynor location selected");
				locValue = 2;
			}
		}
		if (rectTree.contains(p)) {
			tab = 1;
		}
		if (rectLocation.contains(p)) {
			tab = 2;
		}
	}

	public void mouseExited(MouseEvent e) {
	}

	public void mouseEntered(MouseEvent e) {
	}

	public void mouseReleased(MouseEvent e) {
	}

	public void mousePressed(MouseEvent e) {
	}

	public boolean onStart() {
		draynorBankTile = new RSTile(3092, 3245);//(3093, 3243)
		atDBank = new RSArea(new RSTile(3090, 3242), new RSTile(3094, 3246));
		startTime = System.currentTimeMillis();
		if (game.isLoggedIn()) {
			startTile = getMyPlayer().getLocation();
			startXp = skills.getCurrentExp(8);
		} else if (!game.isLoggedIn()) {

			log("Start Logged In");

		}
		return true;
	}

	private void chopTree() {
		RSObject treeObj = objects.getNearest(oakIDs);
		if (oak != null && getMyPlayer().getAnimation() != 967 && getMyPlayer().isIdle()) //
		if (players.getMyPlayer().isMoving()) {
			treeObj.doHover();
		}
		if (settings && !players.getMyPlayer().isMoving()) {
			if (players.getMyPlayer().getAnimation() == -1
					&& !inventory.isFull() && treeObj != null) {
				if (logValue == 1) {
					if (!atDraynorBank()) {
						treeObj.doAction("Chop down Oak");
					}
				}
			}
		} else if (settings) {
		}

	}

	class AntiBan extends Thread {

		private GimmieOaks wcAntiBan;
		private Random randomGenerator;

		AntiBan(GimmieOaks wcAntiBan) {
			this.wcAntiBan = wcAntiBan;
		}

		@Override
		public void run() {
			RSObject treeOak = objects.getNearest(oakIDs);
			try {
				while (wcAntiBan.isActive()) {
					if (!wcAntiBan.isPaused()) {
						int randNum = randomGenerator.nextInt(25);
						switch (randNum) {
						case 0:
							wcAntiBan.game.openTab(1);
							sleep(wcAntiBan.random(50, 70));
							mouse.move(708, 364, 2, 2);
							sleep(wcAntiBan.random(50, 90));
							wcAntiBan.game.openTab(4);
							break;
						case 1:
							if (logValue == 1 && treeOak != null) {
								camera.turnToObject(treeOak);
							}
							break;
						case 2:
							camera.moveRandomly(400);
							break;
						case 3:
							camera.moveRandomly(random(100, 900));
						}
					}
					sleep(wcAntiBan
							.random(200, random(900, random(1000, 1500))));
				}
			} catch (InterruptedException e) {
				log(e.getMessage());
			}
		}
	}

	class CameraMove extends Thread {

		private GimmieOaks wcCameraMove;

		CameraMove(GimmieOaks wcCameraMove) {
			this.wcCameraMove = wcCameraMove;
		}

		public boolean OnFinsh;
		{
			log("Thanks For Using GimmieOaks");
		}

		@Override
		public void run() {
			RSObject treeOak = objects.getNearest(oakIDs);
			try {
				while (wcCameraMove.isActive()) {
					if (!wcCameraMove.isPaused()) {
						if (players.getMyPlayer().getAnimation() == -1) {
						} else if (logValue == 1) {
							camera.turnToObject(treeOak);
						}
					}
				}
				sleep(wcCameraMove.random(200, random(900, random(1000, 1500))));
			} catch (InterruptedException e) {
			}
		}
	}
}

Proggys:



Code:
Updates:
New Woodcutting Method
New Paint Update
Remade Paint And Added Mouse Tracker
Code:
Up Comming Updates:
More Oak Tree Locations
Working Banking
Working Walking Method
Thank you for the script, It will help me a lot. Next place to make it work for is at Varrok West.
Alright ill try to have it work there to thanks for suggestion also will work on walking/banking and add powerbotting

Updated Thread also adding a updated version 0.3 also - have not fixed banking/walking method

Update: Added Mouse Tracker & Remade paint
Quote Originally Posted by Dead 4 Real View Post
Alright ill try to have it work there to thanks for suggestion also will work on walking/banking and add powerbotting

Updated Thread also adding a updated version 0.3 also - have not fixed banking/walking method

Update: Added Mouse Tracker & Remade paint
Looks nice.
Thanks still working on the script
Good script . I hope it won't die when next client update comes . :you: shudnt let dat happen .
i wont let that happen also my friends teaching me banking methods now so i hope i can get them to work and yea..

Next update includes:

Multiple Tree Location (Only oaks)
Nest Support
Maybe some walking.
Quote Originally Posted by Dead 4 Real View Post
i wont let that happen also my friends teaching me banking methods now so i hope i can get them to work and yea..

Next update includes:

Multiple Tree Location (Only oaks)
Nest Support
Maybe some walking.
when this gonna be released?
UPDATED SCRIPT ADDING NEW VERSION SOON v0.7 WILL HAVE NEW STUFF


GimmieOaks Version 0.6

Locations: Draynor

Trees: Oaks Anywhere

Code:
Latest Updates:
New Paint
Better Antiban
Better Values (exp per hour)
Known Bugs:
1. Sometimes does not walk back after banking
2. does not walk to trees

Proggy Reports:


Also Start Script Logged in and at the tree's you want to cut
Save As: GimmieOaks.java


Code:
/*
 * @Author lolpl0xme
 * Help From YEF
 * Tutorials From PB
 */

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.RenderingHints;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.IOException;
import java.net.URL;
import java.util.Random;

import javax.imageio.ImageIO;

import org.rsbot.event.events.ServerMessageEvent;
import org.rsbot.event.listeners.PaintListener;
import org.rsbot.script.Script;
import org.rsbot.script.ScriptManifest;
import org.rsbot.script.wrappers.*;

@ScriptManifest(name = "GimmieOaks", authors = { "lolpl0xme", "YouEpicFail", "Dead 4 Real" }, version = 0.6, keywords = "woodcutting", website = "http://pure-k0.youneed.us", description = "Cuts Oaks Flawlessly")
public class GimmieOaks extends Script implements PaintListener, MouseListener {

	private static final String oak = null;
	public AntiBan antiban;
	public CameraMove moveCameraToTree;
	public int chopAnimation = 867;
	private Point p;
	private RSTile startTile;
	private RSTile draynorBankTile;
	private RSArea atDBank;
	private final int[] hatchetIDs = { 349, 1351, 1353, 1355, 1357, 1359, 1361, 6739 };
	private final int[] bankerIDs = { 2213 };
	private final String oakIDs = "Oak";
	private int xpGained;
	private int startXp;
	private int currentXp;
	private int xpRemain;
	private int logsCut = 0;
	private int xpHour;
	private int levelsGained = 0;
	int logValue = 1;
	int locValue = 1;
	int tab = 1;
	double version = 0.6;
	int percent;
	public long startTime = System.currentTimeMillis();
	long runTime = 0;
	long seconds = 0;
	long minutes = 0;
	long hours = 0;
	boolean settings = false;
	private int runEnergy = 0;

	private void running() {
		if (!game.isLoggedIn()) {
			runEnergy = walking.getEnergy();
			if (runEnergy >= 80 && !walking.isRunEnabled()) {
				walking.setRun(true);
			}
			if (runEnergy < 80) {
				sleep(10, 20);
			}
		}
	}

	private void openBank(String dontKnowWhyIDidThis) {
		RSObject banker = objects.getNearest(bankerIDs);
		if (banker != null) {
			banker.doAction("Use-quickly Bank booth");
		}
	}

	
	public int loop() {
		if (settings) {
			
			antiban();
			running();
			chopTree();
			if (inventory.isFull() && locValue == 1 && !atDraynorBank()) {
				if (!players.getMyPlayer().isMoving()) {
					walkToDraynorBank();
				}
			}
			if (inventory.isFull() && locValue == 2 && !atDraynorBank()) {
				if (!players.getMyPlayer().isMoving()) {
					walkToDraynorBank();
				}
			}
			if (inventory.isFull() && locValue == 2 && atDraynorBank()
					&& !bank.isOpen()) {
			}
			if (inventory.isFull() && locValue == 2 && atDraynorBank()
					&& bank.isOpen()) {
				bank.depositAllExcept(hatchetIDs);
			}

			if (!inventory.isFull() && locValue == 2 && atDraynorBank()
					&& bank.isOpen()) {
				bank.close();
			}
			if (!inventory.isFull() && locValue == 2 && atDraynorBank()
					&& !bank.isOpen()) {
				if (!players.getMyPlayer().isMoving()) {
					walkToMyTile();
				}
			}
			if (inventory.isFull() && locValue == 6
					&& !players.getMyPlayer().isMoving()) {
			}
			
		}
		return 500;
	}

	private void antiban() {
		// TODO Auto-generated method stub
		
	}

	private boolean walkToMyTile() {
		return walking.walkTo(startTile);
	}

	private boolean walkToDraynorBank() {
		return walking.walkTo(draynorBankTile);
	}

	private boolean atDraynorBank() {
		return atDBank.contains(players.getMyPlayer().getLocation());
	}

	private final RenderingHints antialiasing = new RenderingHints(
			RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

	private Image getImage(String url) {
		try {
			return ImageIO.read(new URL(url));
		} catch (IOException e) {
			return null;
		}
	}

	private final Color redColor = new Color(255, 0, 51, 132);
	private final Color blackColor = new Color(0, 0, 0);
	private final Color whiteColor = new Color(255, 255, 255);
	private final Color greenColor = new Color(0, 255, 0, 132);
	private final Color color1 = new Color(51, 204, 255, 50);
	private final Color color2 = new Color(0, 0, 0);
	private final Color color3 = new Color(255, 0, 51, 132);
	private final BasicStroke stroke1 = new BasicStroke(1);
	private final Font font4 = new Font("Arial", 0, 15);
	private final Font font5 = new Font("Arial", 0, 15);
	private final Font font6 = new Font("Arial", 0, 15);
	private final Font font8 = new Font("Arial", 0, 12);
	private final Image img1 = getImage("http://img257.imageshack.us/img257/8861/oaks.png");
	/*
	 * IMGs Made By Lolpl0xme
	 */
	private final Image img2 = getImage("http://img233.imageshack.us/img233/622/paintdx.png");
    //Old IMG = http://img248.imageshack.us/img248/7647/gimmeoaksnewpaint.png
	public void onRepaint(Graphics g1) {
		if (game.isLoggedIn()) {

			for (RSPlayer player : players.getAll()) {
				if (player == null) {
					continue;
				}

			}
			for (RSNPC npc : npcs.getAll()) {
				if (npc == null) {
					continue;
				}

			}
			runTime = System.currentTimeMillis() - startTime;
			seconds = runTime / 1000;
			percent = skills.getPercentToNextLevel(8);
			if (seconds >= 60) {
				minutes = seconds / 60;
				seconds -= (minutes * 60);
			}
			if (minutes >= 60) {
				hours = minutes / 60;
				minutes -= (hours * 60);
			}
			xpHour = (int) ((3600000.0 / (double) runTime) * xpGained);
		}
		Graphics2D g = (Graphics2D) g1;
		g.setRenderingHints(antialiasing);
		currentXp = skills.getCurrentExp(8);
		xpGained = currentXp - startXp;
		xpRemain = skills.getExpToNextLevel(8);
		if (!settings) {
			g.setColor(blackColor);
			g.fillRect(7, 345, 99, 17);
			g.setColor(whiteColor);
			g.setStroke(stroke1);
			g.drawRect(7, 345, 99, 17);
			g.setColor(blackColor);
			g.fillRect(106, 345, 99, 17);
			g.setColor(whiteColor);
			g.drawRect(106, 345, 99, 17);
			g.setColor(blackColor);
			g.fillRect(rectStart.x, rectStart.y, rectStart.width,
					rectStart.height);
			g.setColor(whiteColor);
			g.drawRect(205, 345, 99, 17);
			g.setFont(font8);
			g.drawString("Tree", 38, 358);
			g.drawString("Location", 127, 359);
			g.drawString("Start!", 237, 359);

			if (tab == 1) {
				if (logValue == 2) {
					g.setColor(greenColor);
					g.drawRect(87, 379, 65, 77);
				} else if (logValue != 2) {
					g.setColor(redColor);
				}
				g.fillRect(rectOak.x, rectOak.y, rectOak.width, rectOak.height);
				g.setColor(blackColor);
				g.drawRect(rectOak.x, rectOak.y, rectOak.width, rectOak.height);
				g.setFont(font8);
				g.drawString("Oak", 107, 447);
				g.drawImage(img1, 93, 389, null);

			} else if (tab == 2) {
				if (locValue == 1) {
					g.setColor(greenColor);
				} else if (locValue != 1) {
					g.setColor(redColor);
				}
				if (locValue == 2) {
					g.setColor(greenColor);
				} else if (locValue != 3) {
					g.setColor(redColor);
				}
				g.fillRect(rectDraynor.x, rectDraynor.y, rectDraynor.width,
						rectDraynor.height);
				g.setColor(blackColor);
				g.drawRect(152, 365, 65, 77);
				if (locValue == 3) {
					g.setColor(greenColor);
				} else if (locValue != 3) {
					g.setColor(redColor);
				}
				g.setColor(blackColor);
				g.setFont(font8);
				g.drawString("Draynor", 164, 410);

			}
		} else if (settings) {
			/*
			 * Paint By Lolpl0xme & YouEpicFail
			 */
			g.drawLine(0, (int) (mouse.getLocation().getY()), 800, (int) (mouse
					.getLocation().getY()));
			g.drawLine((int) (mouse.getLocation().getX()), 0, (int) (mouse
					.getLocation().getX()), 800);
			g.setColor(color1);
			g.setColor(color2);
			g.setStroke(stroke1);
			g.drawImage(img2, 2, 158, null);
			g.setFont(font6);
			g.setFont(font4);
			g.setFont(font5);
			g.drawString("XP gained: " + xpGained, 12, 307);
			g.drawString("XP remaining: " + xpRemain, 12, 327);
			g.drawString("Levels gained: " + levelsGained, 12, 287);
			g.drawString("Percent to level: " + percent + "%", 12, 267);
			g.drawString("XP per hour: " + xpHour + ".", 12, 357);
			g.drawString("Logs cut: " + logsCut + ".", 12, 247);
			g.setFont(font5);
			g.setColor(color3);

			g.drawString("Runtime: " + hours + " Hours " + minutes + " Minutes "
					+ seconds + " Seconds! ", 12, 227);

			g.setColor(color2);
			g.drawString("Version: " + version, 228, 314);
		}
	}

	Rectangle rectOak = new Rectangle(87, 379, 65, 77);
	Rectangle rectDraynor = new Rectangle(152, 365, 65, 77);
	Rectangle rectStart = new Rectangle(205, 345, 99, 17);
	Rectangle rectTree = new Rectangle(7, 345, 99, 17);
	Rectangle rectLocation = new Rectangle(106, 345, 99, 17);

	public void mouseClicked(MouseEvent e) {
		p = e.getPoint();
		if (tab == 1) {
			if (rectOak.contains(p)) {
				log("Oak trees selected");
				logValue = 1;
			}
		}
		if (rectStart.contains(p)) {
			log("Reading Data");
			settings = true;
		}
		if (tab == 2) {
			if (rectDraynor.contains(p)) {
				log("Draynor location selected");
				locValue = 2;
			}
		}
		if (rectTree.contains(p)) {
			tab = 1;
		}
		if (rectLocation.contains(p)) {
			tab = 2;
		}
	}

	public void mouseExited(MouseEvent e) {
	}

	public void mouseEntered(MouseEvent e) {
	}

	public void mouseReleased(MouseEvent e) {
	}

	public void mousePressed(MouseEvent e) {
	}

	public boolean onStart() {
		draynorBankTile = new RSTile(3093, 3243);
		atDBank = new RSArea(new RSTile(3090, 3242), new RSTile(3094, 3246));
		startTime = System.currentTimeMillis();
		if (game.isLoggedIn()) {
			startTile = getMyPlayer().getLocation();
			startXp = skills.getCurrentExp(8);
		} else if (!game.isLoggedIn()) {

			log("Start Logged In");

		}
		return true;
	}

	private void chopTree() {
		RSObject treeObj = objects.getNearest(oakIDs);
		if (oak != null && getMyPlayer().getAnimation() != 967
				&& getMyPlayer().isIdle()) //
			if (players.getMyPlayer().isMoving()) {
				treeObj.doHover();
			}
		if (settings && !players.getMyPlayer().isMoving()) {
			if (players.getMyPlayer().getAnimation() == -1
					&& !inventory.isFull() && treeObj != null) {
				if (logValue == 1) {
					if (!atDraynorBank()) {
						treeObj.doAction("Chop down Oak");
					}
				}
			}
		} else if (settings) {
		}

	}
	public void serverMessageRecieved(ServerMessageEvent e) {
		if (e.getMessage().contains("Woodcutting level")) {
			levelsGained++;
		}
		if (e.getMessage().contains("get some")) {
			logsCut++;
		}
	}

	class AntiBan extends Thread {

		private GimmieOaks wcAntiBan;
		private Random randomGenerator;

		AntiBan(GimmieOaks wcAntiBan) {
			this.wcAntiBan = wcAntiBan;
		}

		@Override
		public void run() {
			RSObject treeOak = objects.getNearest(oakIDs);
			try {
				while (wcAntiBan.isActive()) {
					if (!wcAntiBan.isPaused()) {
						int randNum = randomGenerator.nextInt(25);
						switch (randNum) {
						case 0:
							wcAntiBan.game.openTab(1);
							sleep(wcAntiBan.random(50, 70));
							mouse.move(708, 364, 2, 2);
							sleep(wcAntiBan.random(50, 90));
							wcAntiBan.game.openTab(4);
							break;
						case 1:
							if (logValue == 1 && treeOak != null) {
								camera.turnToObject(treeOak);
							}
							break;
						case 2:
							camera.moveRandomly(400);
							break;
						case 3:
							camera.moveRandomly(random(100, 900));
						}
					}
					sleep(wcAntiBan
							.random(200, random(900, random(1000, 1500))));
				}
			} catch (InterruptedException e) {
				log(e.getMessage());
			}
		}
	}

	class CameraMove extends Thread {

		private GimmieOaks wcCameraMove;

		CameraMove(GimmieOaks wcCameraMove) {
			this.wcCameraMove = wcCameraMove;
		}

		public boolean OnFinsh;
		{
			log("Thanks For Using GimmieOaks");
		}

		@Override
		public void run() {
			RSObject treeOak = objects.getNearest(oakIDs);
			try {
				while (wcCameraMove.isActive()) {
					if (!wcCameraMove.isPaused()) {
						if (players.getMyPlayer().getAnimation() == -1) {
						} else if (logValue == 1) {
							camera.turnToObject(treeOak);
						}
					}
				}
				sleep(wcCameraMove.random(200, random(900, random(1000, 1500))));
			} catch (InterruptedException e) {
			}
		}
	}
}
Quote Originally Posted by Dead 4 Real View Post
UPDATED SCRIPT ADDING NEW VERSION SOON v0.7 WILL HAVE NEW STUFF


GimmieOaks Version 0.6

Locations: Draynor

Trees: Oaks Anywhere

Code:
Latest Updates:
New Paint
Better Antiban
Better Values (exp per hour)
Known Bugs:
1. Sometimes does not walk back after banking
2. does not walk to trees

Proggy Reports:


Also Start Script Logged in and at the tree's you want to cut
Save As: GimmieOaks.java


Code:
/*
 * @Author lolpl0xme
 * Help From YEF
 * Tutorials From PB
 */

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.RenderingHints;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.IOException;
import java.net.URL;
import java.util.Random;

import javax.imageio.ImageIO;

import org.rsbot.event.events.ServerMessageEvent;
import org.rsbot.event.listeners.PaintListener;
import org.rsbot.script.Script;
import org.rsbot.script.ScriptManifest;
import org.rsbot.script.wrappers.*;

@ScriptManifest(name = "GimmieOaks", authors = { "lolpl0xme", "YouEpicFail", "Dead 4 Real" }, version = 0.6, keywords = "woodcutting", website = "http://pure-k0.youneed.us", description = "Cuts Oaks Flawlessly")
public class GimmieOaks extends Script implements PaintListener, MouseListener {

	private static final String oak = null;
	public AntiBan antiban;
	public CameraMove moveCameraToTree;
	public int chopAnimation = 867;
	private Point p;
	private RSTile startTile;
	private RSTile draynorBankTile;
	private RSArea atDBank;
	private final int[] hatchetIDs = { 349, 1351, 1353, 1355, 1357, 1359, 1361, 6739 };
	private final int[] bankerIDs = { 2213 };
	private final String oakIDs = "Oak";
	private int xpGained;
	private int startXp;
	private int currentXp;
	private int xpRemain;
	private int logsCut = 0;
	private int xpHour;
	private int levelsGained = 0;
	int logValue = 1;
	int locValue = 1;
	int tab = 1;
	double version = 0.6;
	int percent;
	public long startTime = System.currentTimeMillis();
	long runTime = 0;
	long seconds = 0;
	long minutes = 0;
	long hours = 0;
	boolean settings = false;
	private int runEnergy = 0;

	private void running() {
		if (!game.isLoggedIn()) {
			runEnergy = walking.getEnergy();
			if (runEnergy >= 80 && !walking.isRunEnabled()) {
				walking.setRun(true);
			}
			if (runEnergy < 80) {
				sleep(10, 20);
			}
		}
	}

	private void openBank(String dontKnowWhyIDidThis) {
		RSObject banker = objects.getNearest(bankerIDs);
		if (banker != null) {
			banker.doAction("Use-quickly Bank booth");
		}
	}

	
	public int loop() {
		if (settings) {
			
			antiban();
			running();
			chopTree();
			if (inventory.isFull() && locValue == 1 && !atDraynorBank()) {
				if (!players.getMyPlayer().isMoving()) {
					walkToDraynorBank();
				}
			}
			if (inventory.isFull() && locValue == 2 && !atDraynorBank()) {
				if (!players.getMyPlayer().isMoving()) {
					walkToDraynorBank();
				}
			}
			if (inventory.isFull() && locValue == 2 && atDraynorBank()
					&& !bank.isOpen()) {
			}
			if (inventory.isFull() && locValue == 2 && atDraynorBank()
					&& bank.isOpen()) {
				bank.depositAllExcept(hatchetIDs);
			}

			if (!inventory.isFull() && locValue == 2 && atDraynorBank()
					&& bank.isOpen()) {
				bank.close();
			}
			if (!inventory.isFull() && locValue == 2 && atDraynorBank()
					&& !bank.isOpen()) {
				if (!players.getMyPlayer().isMoving()) {
					walkToMyTile();
				}
			}
			if (inventory.isFull() && locValue == 6
					&& !players.getMyPlayer().isMoving()) {
			}
			
		}
		return 500;
	}

	private void antiban() {
		// TODO Auto-generated method stub
		
	}

	private boolean walkToMyTile() {
		return walking.walkTo(startTile);
	}

	private boolean walkToDraynorBank() {
		return walking.walkTo(draynorBankTile);
	}

	private boolean atDraynorBank() {
		return atDBank.contains(players.getMyPlayer().getLocation());
	}

	private final RenderingHints antialiasing = new RenderingHints(
			RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

	private Image getImage(String url) {
		try {
			return ImageIO.read(new URL(url));
		} catch (IOException e) {
			return null;
		}
	}

	private final Color redColor = new Color(255, 0, 51, 132);
	private final Color blackColor = new Color(0, 0, 0);
	private final Color whiteColor = new Color(255, 255, 255);
	private final Color greenColor = new Color(0, 255, 0, 132);
	private final Color color1 = new Color(51, 204, 255, 50);
	private final Color color2 = new Color(0, 0, 0);
	private final Color color3 = new Color(255, 0, 51, 132);
	private final BasicStroke stroke1 = new BasicStroke(1);
	private final Font font4 = new Font("Arial", 0, 15);
	private final Font font5 = new Font("Arial", 0, 15);
	private final Font font6 = new Font("Arial", 0, 15);
	private final Font font8 = new Font("Arial", 0, 12);
	private final Image img1 = getImage("http://img257.imageshack.us/img257/8861/oaks.png");
	/*
	 * IMGs Made By Lolpl0xme
	 */
	private final Image img2 = getImage("http://img233.imageshack.us/img233/622/paintdx.png");
    //Old IMG = http://img248.imageshack.us/img248/7647/gimmeoaksnewpaint.png
	public void onRepaint(Graphics g1) {
		if (game.isLoggedIn()) {

			for (RSPlayer player : players.getAll()) {
				if (player == null) {
					continue;
				}

			}
			for (RSNPC npc : npcs.getAll()) {
				if (npc == null) {
					continue;
				}

			}
			runTime = System.currentTimeMillis() - startTime;
			seconds = runTime / 1000;
			percent = skills.getPercentToNextLevel(8);
			if (seconds >= 60) {
				minutes = seconds / 60;
				seconds -= (minutes * 60);
			}
			if (minutes >= 60) {
				hours = minutes / 60;
				minutes -= (hours * 60);
			}
			xpHour = (int) ((3600000.0 / (double) runTime) * xpGained);
		}
		Graphics2D g = (Graphics2D) g1;
		g.setRenderingHints(antialiasing);
		currentXp = skills.getCurrentExp(8);
		xpGained = currentXp - startXp;
		xpRemain = skills.getExpToNextLevel(8);
		if (!settings) {
			g.setColor(blackColor);
			g.fillRect(7, 345, 99, 17);
			g.setColor(whiteColor);
			g.setStroke(stroke1);
			g.drawRect(7, 345, 99, 17);
			g.setColor(blackColor);
			g.fillRect(106, 345, 99, 17);
			g.setColor(whiteColor);
			g.drawRect(106, 345, 99, 17);
			g.setColor(blackColor);
			g.fillRect(rectStart.x, rectStart.y, rectStart.width,
					rectStart.height);
			g.setColor(whiteColor);
			g.drawRect(205, 345, 99, 17);
			g.setFont(font8);
			g.drawString("Tree", 38, 358);
			g.drawString("Location", 127, 359);
			g.drawString("Start!", 237, 359);

			if (tab == 1) {
				if (logValue == 2) {
					g.setColor(greenColor);
					g.drawRect(87, 379, 65, 77);
				} else if (logValue != 2) {
					g.setColor(redColor);
				}
				g.fillRect(rectOak.x, rectOak.y, rectOak.width, rectOak.height);
				g.setColor(blackColor);
				g.drawRect(rectOak.x, rectOak.y, rectOak.width, rectOak.height);
				g.setFont(font8);
				g.drawString("Oak", 107, 447);
				g.drawImage(img1, 93, 389, null);

			} else if (tab == 2) {
				if (locValue == 1) {
					g.setColor(greenColor);
				} else if (locValue != 1) {
					g.setColor(redColor);
				}
				if (locValue == 2) {
					g.setColor(greenColor);
				} else if (locValue != 3) {
					g.setColor(redColor);
				}
				g.fillRect(rectDraynor.x, rectDraynor.y, rectDraynor.width,
						rectDraynor.height);
				g.setColor(blackColor);
				g.drawRect(152, 365, 65, 77);
				if (locValue == 3) {
					g.setColor(greenColor);
				} else if (locValue != 3) {
					g.setColor(redColor);
				}
				g.setColor(blackColor);
				g.setFont(font8);
				g.drawString("Draynor", 164, 410);

			}
		} else if (settings) {
			/*
			 * Paint By Lolpl0xme & YouEpicFail
			 */
			g.drawLine(0, (int) (mouse.getLocation().getY()), 800, (int) (mouse
					.getLocation().getY()));
			g.drawLine((int) (mouse.getLocation().getX()), 0, (int) (mouse
					.getLocation().getX()), 800);
			g.setColor(color1);
			g.setColor(color2);
			g.setStroke(stroke1);
			g.drawImage(img2, 2, 158, null);
			g.setFont(font6);
			g.setFont(font4);
			g.setFont(font5);
			g.drawString("XP gained: " + xpGained, 12, 307);
			g.drawString("XP remaining: " + xpRemain, 12, 327);
			g.drawString("Levels gained: " + levelsGained, 12, 287);
			g.drawString("Percent to level: " + percent + "%", 12, 267);
			g.drawString("XP per hour: " + xpHour + ".", 12, 357);
			g.drawString("Logs cut: " + logsCut + ".", 12, 247);
			g.setFont(font5);
			g.setColor(color3);

			g.drawString("Runtime: " + hours + " Hours " + minutes + " Minutes "
					+ seconds + " Seconds! ", 12, 227);

			g.setColor(color2);
			g.drawString("Version: " + version, 228, 314);
		}
	}

	Rectangle rectOak = new Rectangle(87, 379, 65, 77);
	Rectangle rectDraynor = new Rectangle(152, 365, 65, 77);
	Rectangle rectStart = new Rectangle(205, 345, 99, 17);
	Rectangle rectTree = new Rectangle(7, 345, 99, 17);
	Rectangle rectLocation = new Rectangle(106, 345, 99, 17);

	public void mouseClicked(MouseEvent e) {
		p = e.getPoint();
		if (tab == 1) {
			if (rectOak.contains(p)) {
				log("Oak trees selected");
				logValue = 1;
			}
		}
		if (rectStart.contains(p)) {
			log("Reading Data");
			settings = true;
		}
		if (tab == 2) {
			if (rectDraynor.contains(p)) {
				log("Draynor location selected");
				locValue = 2;
			}
		}
		if (rectTree.contains(p)) {
			tab = 1;
		}
		if (rectLocation.contains(p)) {
			tab = 2;
		}
	}

	public void mouseExited(MouseEvent e) {
	}

	public void mouseEntered(MouseEvent e) {
	}

	public void mouseReleased(MouseEvent e) {
	}

	public void mousePressed(MouseEvent e) {
	}

	public boolean onStart() {
		draynorBankTile = new RSTile(3093, 3243);
		atDBank = new RSArea(new RSTile(3090, 3242), new RSTile(3094, 3246));
		startTime = System.currentTimeMillis();
		if (game.isLoggedIn()) {
			startTile = getMyPlayer().getLocation();
			startXp = skills.getCurrentExp(8);
		} else if (!game.isLoggedIn()) {

			log("Start Logged In");

		}
		return true;
	}

	private void chopTree() {
		RSObject treeObj = objects.getNearest(oakIDs);
		if (oak != null && getMyPlayer().getAnimation() != 967
				&& getMyPlayer().isIdle()) //
			if (players.getMyPlayer().isMoving()) {
				treeObj.doHover();
			}
		if (settings && !players.getMyPlayer().isMoving()) {
			if (players.getMyPlayer().getAnimation() == -1
					&& !inventory.isFull() && treeObj != null) {
				if (logValue == 1) {
					if (!atDraynorBank()) {
						treeObj.doAction("Chop down Oak");
					}
				}
			}
		} else if (settings) {
		}

	}
	public void serverMessageRecieved(ServerMessageEvent e) {
		if (e.getMessage().contains("Woodcutting level")) {
			levelsGained++;
		}
		if (e.getMessage().contains("get some")) {
			logsCut++;
		}
	}

	class AntiBan extends Thread {

		private GimmieOaks wcAntiBan;
		private Random randomGenerator;

		AntiBan(GimmieOaks wcAntiBan) {
			this.wcAntiBan = wcAntiBan;
		}

		@Override
		public void run() {
			RSObject treeOak = objects.getNearest(oakIDs);
			try {
				while (wcAntiBan.isActive()) {
					if (!wcAntiBan.isPaused()) {
						int randNum = randomGenerator.nextInt(25);
						switch (randNum) {
						case 0:
							wcAntiBan.game.openTab(1);
							sleep(wcAntiBan.random(50, 70));
							mouse.move(708, 364, 2, 2);
							sleep(wcAntiBan.random(50, 90));
							wcAntiBan.game.openTab(4);
							break;
						case 1:
							if (logValue == 1 && treeOak != null) {
								camera.turnToObject(treeOak);
							}
							break;
						case 2:
							camera.moveRandomly(400);
							break;
						case 3:
							camera.moveRandomly(random(100, 900));
						}
					}
					sleep(wcAntiBan
							.random(200, random(900, random(1000, 1500))));
				}
			} catch (InterruptedException e) {
				log(e.getMessage());
			}
		}
	}

	class CameraMove extends Thread {

		private GimmieOaks wcCameraMove;

		CameraMove(GimmieOaks wcCameraMove) {
			this.wcCameraMove = wcCameraMove;
		}

		public boolean OnFinsh;
		{
			log("Thanks For Using GimmieOaks");
		}

		@Override
		public void run() {
			RSObject treeOak = objects.getNearest(oakIDs);
			try {
				while (wcCameraMove.isActive()) {
					if (!wcCameraMove.isPaused()) {
						if (players.getMyPlayer().getAnimation() == -1) {
						} else if (logValue == 1) {
							camera.turnToObject(treeOak);
						}
					}
				}
				sleep(wcCameraMove.random(200, random(900, random(1000, 1500))));
			} catch (InterruptedException e) {
			}
		}
	}
}
You might want to open a new topic for new versions.
yes i know lol i saw that i couldnt edit it =P
Quote Originally Posted by Dead 4 Real View Post
yes i know lol i saw that i couldnt edit it =P
hey can u get me a virus free hack for willows or something.
i can make one if you like?

explain what you want: example:

Cuts willows and drops or banks and where to bank them

EDIT: also my scripts dont have viruses. lol
that looks good ;D
Thanks. plan on remaking gimmieoaks. since i know more now.
Posts 115 of 15 · Page 1 of 1
This thread is closed for replies.

Similar Threads

Tags for this Thread

Need help?