Code:
/*
* @Author lolpl0xme
* Swell - Tutorial
* mak001, bluefirecorp, ConnectQ - clicking
* Electricity - STAT Antiban
* Enfilade - Paint Base
*/
import java.awt.BasicStroke;
import java.aw*****lor;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.RenderingHints;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;
import org.rsbot.event.events.ServerMessageEvent;
import org.rsbot.event.listeners.PaintListener;
import org.rsbot.event.listeners.ServerMessageListener;
import org.rsbot.script.ScriptManifest;
import org.rsbot.script.Script;
import org.rsbot.script.methods.Game;
import org.rsbot.script.methods.Skills;
import org.rsbot.script.wrappers.RSObject;
@ScriptManifest(authors = { "lolpl0xme" }, keywords = { "Woodcutting" }, name = "KillinWillows", version = 0.2, description = "PowerChops Willows Anywhere!")
public class KillinWillows extends Script implements PaintListener,
ServerMessageListener {
private final int[] hatchetIDs = { 349, 1351, 1353, 1355, 1357, 1359, 1361,
6739 };
private final int[] treeIDs = { 5552, 5554, 5551 };
double version = 0.2;
private int xpGained;
private int currentXp;
private int startXp;
private int logsCut = 0;
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);
}
}
}
public void serverMessageRecieved(ServerMessageEvent e) {
if (e.getMessage().contains("Woodcutting level")) {
}
if (e.getMessage().contains("get some")) {
logsCut++;
}
}
public void antiban() {
switch (random(1, 30)) {
case 5:
game.openTab(Game.TAB_STATS);
skills.doHover(Skills.WOODCUTTING);
sleep(random(1000, 1245));
game.openTab(Game.TAB_INVENTORY);
break;
case 6:
game.openTab(Game.TAB_FRIENDS);
sleep(random(1300, 1375));
game.openTab(Game.TAB_INVENTORY);
}
}
public boolean onStart() {
log("Start at trees");
startXp = skills.getCurrentExp(8);
mouse.setSpeed(10);
return true;
}
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 color1 = new Color(51, 204, 255, 50);
private final Color color2 = new Color(51, 204, 255, 50);
private final BasicStroke stroke1 = new BasicStroke(1);
private final Font font1 = new Font("Arial", 0, 15);
private final Image img1 = getImage("https://img833.imageshack.us/img833/428/woodcutting.png");
public void onRepaint(Graphics g1) {
Graphics2D g = (Graphics2D) g1;
xpGained = currentXp - startXp;
g.setRenderingHints(antialiasing);
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(img1, 2, 158, null);
g.setFont(font1);
g.setColor(color1);
g.setColor(color2);
g.drawString(" " + logsCut + ".", 72, 230);
g.drawString(" " + xpGained, 120, 263);
g.drawString(" " + version, 388, 311);
}
public int loop() {
antiban();
running();
if (inventory.isFull()) {
inventory.dropAllExcept(hatchetIDs);
} else {
if (getMyPlayer().getAnimation() != 2846) {
RSObject tree = objects.getNearest(treeIDs);
if (tree != null) {
tree.doAction("Chop");
sleep(random(1000, 1245));
while (getMyPlayer().getAnimation() != -1)
sleep(500);
}
}
}
return random(100, 200);
}
public void onFinish() {
log("Thanks for using.");
}
}