Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Credits to Atomic for Script
- // Credits to 0x098b4a40 for Dropping Method
- import java.awt.Color;
- import java.awt.Graphics;
- import java.util.Map;
- import com.speljohan.rsbot.bot.Bot;
- import com.speljohan.rsbot.event.events.ServerMessageEvent;
- import com.speljohan.rsbot.event.listeners.PaintListener;
- import com.speljohan.rsbot.event.listeners.ServerMessageListener;
- import com.speljohan.rsbot.script.Constants;
- import com.speljohan.rsbot.script.Script;
- import com.speljohan.rsbot.script.wrappers.RSObject;
- import com.speljohan.rsbot.script.wrappers.RSTile;
- import com.speljohan.rsbot.script.wrappers.*;
- import com.speljohan.rsbot.script.wrappers.RSInterface;
- public class MortalTeaks extends Script implements ServerMessageListener,
- PaintListener {
- int loops = 0;
- int logs = 0;
- int fxp = 0;
- boolean loads = false;
- boolean dropping = false;
- boolean cutting = false;
- boolean adze = false;
- boolean leftToRight = false;
- public final RSTile treetile = new RSTile(2774, 2698);
- public long startTime = System.currentTimeMillis();
- RSObject tree;
- public void antiBan() {
- switch (random(0, 150)) {
- case 0:
- moveMouse(random(0, 600), random(0, 600));
- wait(random(200, 400));
- break;
- case 1:
- moveMouse(random(0, 600), random(0, 600));
- wait(random(200, 400));
- break;
- case 2:
- moveMouse(random(0, 600), random(0, 600));
- wait(random(200, 400));
- break;
- case 3:
- moveMouse(random(0, 600), random(0, 600));
- wait(random(200, 400));
- break;
- case 4:
- setCameraRotation(random(1, 300));
- wait(random(200, 400));
- break;
- case 5:
- setCameraRotation(random(1, 300));
- wait(random(200, 400));
- break;
- case 7:
- setCameraAltitude(true);
- wait(random(200, 400));
- break;
- case 8:
- openTab(Constants.TAB_INVENTORY);
- wait(random(200, 400));
- break;
- case 9:
- openTab(Constants.TAB_STATS);
- wait(random(200, 400));
- break;
- }
- }
- @Override
- public String getAuthor() {
- return "The Immortal";
- }
- @Override
- public String getName() {
- return "Mortal Teaks";
- }
- @Override
- public String getScriptCategory() {
- return "Woodcutting";
- }
- @Override
- public String getScriptDescription() {
- return "<html>\n"
- + "<head></head>\n"
- + "<body bgcolor=\"black\" text=\"green\">\n"
- + "<center>"
- + "<h2>"
- + getName()
- + "</h2>"
- + "</center>\n"
- + "<b> Author:</b> "
- + getAuthor()
- + "<b> Version:</b> "
- + getVersion()
- + "<b><br> Start near teak trees"
- + "<br>"
- + "<br>"
- + "<br>"
- + "<input type=\"checkbox\" name=\"doadze\" value=\"true\"><B>Using Inferno Adze? </b>"
- + "<b><br><br><br> <i>Note: Credits to Atomic for script/0x098b4a40 for drop!</body>\n"
- + "</html>";
- }
- @Override
- public double getVersion() {
- return 1.0;
- }
- @Override
- public int loop() {
- if (dropping) {
- if (getInventoryCount(6333) > 0) {
- dropInventoryExcluding(false, 1349, 1353, 1355, 1357, 1359, 1361, 6739, 13661);
- wait(random(200, 400));
- }
- else if (getInventoryCount(6333) == 0) {
- dropping = false;
- cutting = false;
- }
- }
- else if (!dropping) {
- if (distanceTo(treetile) >= 10) {
- walkTileMM(treetile);
- wait(random(800, 1200));
- }
- else if (distanceTo(treetile) < 10) {
- if (!cutting) {
- //setRun(true);
- tree = getNearestObjectByID(9036);
- if (tree != null) {
- if (!tileOnScreen(tree.getLocation())) {
- turnToTile(tree.getLocation());
- wait(random(200, 400));
- }
- else if (tileOnScreen(tree.getLocation())) {
- atObject(tree, "Chop");
- wait(random(800, 1200));
- }
- }
- }
- else if (cutting) {
- final RSTile interacting = tree.getLocation();
- loops++;
- if (loops < 200) {
- if (getObjectAt(interacting).getID() != 9036) {
- cutting = false;
- loops = 0;
- }
- else if (getObjectAt(interacting).getID() == 9036) {
- antiBan();
- }
- }
- else if (loops > 200) {
- log("Ignore this!");
- cutting = false;
- loops = 0;
- }
- }
- }
- }
- return random(100, 150);
- }
- @Override
- public void onFinish() {
- }
- public void onRepaint(final Graphics g) {
- if (isLoggedIn()) {
- if (fxp == 0) {
- fxp = skills.getCurrentSkillExp(Constants.STAT_FIREMAKING);
- }
- final int xp = skills.getCurrentSkillExp(Constants.STAT_FIREMAKING);
- long millis = System.currentTimeMillis() - startTime;
- final long hours = millis / (1000 * 60 * 60);
- millis -= hours * 1000 * 60 * 60;
- final long minutes = millis / (1000 * 60);
- millis -= minutes * 1000 * 60;
- final long seconds = millis / 1000;
- final int x = 388;
- final int y = 20;
- g.setColor(Color.red);
- g.drawString("Teaks v1.0", x, y);
- g.setColor(Color.white);
- g.drawString("Runtime: " + hours + ":" + minutes + ":" + seconds
- + "", x, y + 15);
- g.drawString("Cut: " + logs / 1, x, y + 30);
- g.drawString("WC Exp: " + logs / 1 * 85 + " ("
- + skills.getPercentToNextLevel(8) + "%)", x, y + 45);
- if (adze) {
- g.drawString("FM Exp: " + (xp - fxp) + " ("
- + skills.getPercentToNextLevel(11) + "%)", x, y + 60);
- }
- }
- }
- @Override
- public boolean onStart(final Map<String, String> args) {
- adze = args.get("doadze") != null ? true : false;
- return true;
- }
- public void dropItem(int col, int row){
- if (getCurrentTab() != TAB_INVENTORY
- && !RSInterface.getInterface(INTERFACE_BANK).isValid()
- && !RSInterface.getInterface(INTERFACE_STORE).isValid())
- openTab(TAB_INVENTORY);
- if(col<0||col>3||row<0||row>6)
- return;
- if(getInventoryArray()[col+row*4] == -1)
- return;
- clickMouse(563+col*42+random(0,32), 213+row*36+random(0,32),false);
- wait(random(100,250));
- atMenu("drop");
- wait(random(100,250));
- }
- public void dropInventoryExcluding(boolean leftToRight, int ... ids){
- if(!leftToRight)
- for(int c = 0; c < 4; c++)
- for(int r = 0; r < 7; r++){
- boolean found = false;
- for(int i = 0; i < ids.length && !found; i++)
- found = ids[i] == getInventoryArray()[c+r*4];
- if(!found)
- dropItem(c, r);
- }
- else
- for(int r = 0; r < 7; r++)
- for(int c = 0; c < 4; c++){
- boolean found = false;
- for(int i = 0; i < ids.length && !found; i++)
- found = ids[i] == getInventoryArray()[c+r*4];
- if(!found)
- dropItem(c, r);
- }
- }
- public void serverMessageRecieved(final ServerMessageEvent e) {
- if (e.getMessage().equalsIgnoreCase(
- "You swing your hatchet at the tree.")) {
- cutting = true;
- }
- if (e.getMessage().equalsIgnoreCase("You get some teak logs.")) {
- logs++;
- }
- if (e.getMessage().equalsIgnoreCase(
- "Your inventory is too full to hold any more logs.")) {
- dropping = true;
- }
- }
- public void setCameraRotation2(int degrees) {
- final char left = 37;
- final char right = 39;
- char whichDir = left;
- int start = getCameraAngle();
- if (start < 180) {
- start += 360;
- }
- if (degrees < 180) {
- degrees += 360;
- }
- if (degrees > start) {
- if (degrees - 180 < start) {
- whichDir = right;
- }
- }
- else if (start > degrees) {
- if (start - 180 >= degrees) {
- whichDir = right;
- }
- }
- degrees %= 360;
- Bot.getInputManager().pressKey(whichDir);
- int timeWaited = 0;
- while (getCameraAngle() > degrees + 5 || getCameraAngle() < degrees - 5) {
- wait(10);
- timeWaited += 10;
- if (timeWaited > 500) {
- final int time = timeWaited - 500;
- if (time == 0) {
- Bot.getInputManager().pressKey(whichDir);
- } else if (time % 40 == 0) {
- Bot.getInputManager().pressKey(whichDir);
- }
- }
- }
- Bot.getInputManager().releaseKey(whichDir);
- }
- @Override
- public void turnToTile(final RSTile tile) { // I can't remember
- int angle = getAngleToCoordinates(tile.getX(), tile.getY()); // where I
- // took
- // this
- angle = angle + random(-20, 20); // from, but credits
- // to whoever made it!
- if (angle < 0) {
- angle = 360 + angle;
- }
- if (angle >= 360) {
- angle -= 360;
- }
- setCameraRotation2(angle);
- }
- }
Add Comment
Please, Sign In to add comment