Sythe.Org Forums     Register     FAQ     Members List     Calendar     Mark Forums Read    
 
Sythe.Org Forums  
   Runescape Gold

Sythe.org — A Virtual Goods Trading Hub

Make real cash! buying and selling in-game items.

We have a no-scam policy.

You can make thousands playing your favourite games here at Sythe.org.

Just sign up an account and follow the rules!


Take me to

Runescape Markets

Other Game Markets

Support Center

Register an Account

Close
RSBot- Tenac's Willow Chopper Please.
 
 
LinkBack Thread Tools Display Modes
  #1  
Old 11-29-2008, 03:59 PM
Newcomer
 
Join Date: Nov 2008
Posts: 5
Default RSBot- Tenac's Willow Chopper Please.

When I got 523 I lost it and now site's down and I need it will someone post it please?
  #2  
Old 11-29-2008, 05:07 PM
Nick Nelson's Avatar
Forum Addict
 
Join Date: Feb 2007
Posts: 374
Default Re: RSBot- Tenac's Willow Chopper Please.

Did Tenac take it down or something?
I don't know if I can post it without his permission.
But if I can't tell me ASAP and I'll take it down, anyway.
Code:
import java.awt.*;
import java.util.*;

import com.speljohan.rsbot.bot.Bot;
import com.speljohan.rsbot.script.*;
import com.speljohan.rsbot.script.wrappers.*;
import com.speljohan.rsbot.accessors.*;
import com.speljohan.rsbot.event.listeners.PaintListener;

public class TenacWillowChopper extends Script implements PaintListener {

	public int[] willowTreeID = { 1308, 5551, 5552, 5553 };
	public int[] banker1ID = { 494 };
	public int[] banker2ID = { 495 };
	public int[] bankBoothID = { 2213 };
	public int[] depositBoxID = { 9398 };
	public int willowLogID = 1519;

	public int[] axeID = { 1351, 1349, 1353, 1355, 1357, 1359, 6739 };
	public int[] brokenAxeID = { 494, 496, 498, 502, 504, 506, 6741 };
	//gems uncut, gems cut, beer, kebab, 
	public int[] otherItems = { 1623, 1621, 1619, 1617, 1607, 1605, 1603, 1601, 1917, 1971 };
	public int goldPiecesID = 995;
	
	public RSTile willowTile1 = new RSTile(3087, 3235);
	public RSTile willowTile2 = new RSTile(3088, 3230);
	public RSTile bankTile = new RSTile(3093, 3243);
	public RSTile lumbridgeTile = new RSTile(3221, 3218);

	public RSTile[] walkBackPath = { new RSTile(3232, 3219), new RSTile(3232, 3230), new RSTile(3221, 3237),
									new RSTile(3216, 3247), new RSTile(3203, 3247), new RSTile(3189, 3246), 
									new RSTile(3175, 3242), new RSTile(3161, 3240), new RSTile(3148, 3235), 
									new RSTile(3134, 3229), new RSTile(3119, 3228), new RSTile(3106, 3234), 
									new RSTile(3095, 3242) };

	public long startTime = System.currentTimeMillis();
	public int logsBanked = 0;
	public int logsDropped = 0;
	public int ranAwayFromCombat = 0;
	public int startingLevel = 0;
	public int startingExperience = 0;
	public int priceOfWillowLog = 18;
	public int entsAvoided = 0;
	public int numObjects = 0;
	public double xpPerWillow = 67.5;
	public boolean powerChopping = false;
	public int invCountToDrop = random(10, 29);
	public boolean dropping = false;

	public boolean lost = false;
	public boolean lumbridge = false;

	public double getVersion() {
		return 1.3;
	}

	public String getName() {
		return "Draynor Willow Chopper";
	}

	public String getAuthor() {
		return "Tenac";
	}

	public String getScriptCategory() {
		return "Woodcutting";
	}

	public String getScriptDescription( ) {
		String html = "";

		html += "<html>\n";
		html += "<body>\n";

		html += "<font size=\"6\">";
		html += "<center><h2>" + getName() + "</h2></center>\n";
		html += "</font>";

		html += "<b>Author:</b>" + getAuthor() + "<br/>";
		html += "<b>Version:</b>" + getVersion() + "<br/><br>";

		html += "Chops and banks willow logs in Draynor bank.<br>\n<br>";
		
		html += "<input type=\"checkbox\" name=\"powerchop\" value=\"yes\">Drop logs?\n";
		
		html += "</body>\n";
		html += "</html\n";

		return html;
	}

	public boolean onStart(Map<String, String> args) {
		startTime = System.currentTimeMillis();
		if(isLoggedIn()) {
			startingLevel = skills.getCurrentSkillLevel(STAT_WOODCUTTING);
			startingExperience = skills.getCurrentSkillExp(STAT_WOODCUTTING);
			setCameraAltitude(true);
			setCameraRotation(random(1, 359));
			setRun(true);
		}

		if(args.get("powerchop") != null)
			powerChopping = true;

		Bot.getEventManager().addListener(PaintListener.class, this);
		return true;
	}

	public void onFinish() {
		Bot.getEventManager().removeListener(PaintListener.class, this);
	}

	public void onRepaint(Graphics g) {
		if(isLoggedIn()) {
			if(startTime == 0)
				startTime = System.currentTimeMillis();

			if(startingLevel == 0 || startingExperience == 0) {
				startingLevel = skills.getCurrentSkillLevel(STAT_WOODCUTTING);
				startingExperience = skills.getCurrentSkillExp(STAT_WOODCUTTING);
			}

			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;

			g.setColor(new Color(33, 46, 207, 100));
			//window is (0, 0) (337, 515)
			//my box is (515 - 260, 0) (337, 200)
			int x = 515 - 230;
			int y = 4;
			g.fillRoundRect(x, y, 230, 155, 20, 20);
			g.setColor(new Color(26, 36, 162, 255));
			g.drawRoundRect(x, y, 230, 155, 20, 20);
			
			g.setColor(new Color(255, 255, 255, 255));
			g.drawString(getAuthor() + "'s " + getName() + " v" + getVersion(), x + 10, y += 15);
			g.drawString("Running for " + hours + ":" + minutes + ":" + seconds, x + 10, y += 15);
			if(powerChopping)
				g.drawString("Dropped " + logsDropped + " willow logs", x + 10, y += 15);
			else
				g.drawString("Banked " + logsBanked + " willow logs", x + 10, y += 15);
			g.drawString("Gained " + (logsBanked * priceOfWillowLog) + "gp", x + 10, y += 15);
			g.drawString("Currently level " + skills.getCurrentSkillLevel(STAT_WOODCUTTING) + " and " + skills.getPercentToNextLevel(STAT_WOODCUTTING) + "% to next level", x + 10, y += 15);
			g.drawString("Gained " + (skills.getCurrentSkillLevel(STAT_WOODCUTTING) - startingLevel) + " levels", x + 10, y += 15);
			g.drawString("Gained " + (skills.getCurrentSkillExp(STAT_WOODCUTTING) - startingExperience) + " experience", x + 10, y += 15);
			g.drawString("Ran from combat " + ranAwayFromCombat + " times", x + 10, y += 15);
			g.drawString("Avoided " + entsAvoided + " ents", x + 10, y += 15);
			g.drawString("" + (int)(skills.getXPToNextLevel(STAT_WOODCUTTING) / xpPerWillow + 1) + " more logs until next level", x + 10, y += 15);
/*
			XpPerMin = skills.getCurrentSkillExp(WOODCUTTING_STAT) - startingExperience / (Minutes here);
			skills.getXPToNextLevel(WOODCUTTING_STAT) / XpPerMin
*/
		}
	}
	
	public void printProgressReport() {
		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;

		log(getAuthor() + "'s " + getName() + " v" + getVersion());
		log("Running for " + hours + ":" + minutes + ":" + seconds);
		if(powerChopping)
			log("Dropped " + logsDropped + " willow logs");
		else
			log("Banked " + logsBanked + " willow logs");
		log("Gained " + (logsBanked * priceOfWillowLog) + "gp");
		log("Currently level " + skills.getCurrentSkillLevel(STAT_WOODCUTTING) + " and " + skills.getPercentToNextLevel(STAT_WOODCUTTING) + "% to next level");
		log("Gained " + (skills.getCurrentSkillLevel(STAT_WOODCUTTING) - startingLevel) + " levels");
		log("Gained " + (skills.getCurrentSkillExp(STAT_WOODCUTTING) - startingExperience) + " experience");
		log("Ran from combat " + ranAwayFromCombat + " times");
		log("Avoided " + entsAvoided + " ents");
		log("" + (int)(skills.getXPToNextLevel(STAT_WOODCUTTING) / xpPerWillow + 1) + " more logs until next level");
	}

	public int loop() {
		if(!isLoggedIn())
			return random(200, 400);

		if(getMyPlayer().isInCombat())
			return runAway();

		if(checkForEnt())
			return random(100, 200);

		if(distanceTo(lumbridgeTile) <= 17) {
			lumbridge = true;
			lost = false;
		}

		if(!lumbridge && distanceTo(willowTile1) > 17 && distanceTo(willowTile2) > 17  && distanceTo(bankTile) > 17)
			lost = true;

		if(lost)
			return teleportToLumbridge();
		
		if(lumbridge) {
			if(myWalkPath(walkBackPath, 1)) {
				lumbridge = false;
			}
			return random(50, 200);
		}

		//if(isCarryingItem(brokenAxeID) || !isCarryingItem(axeID)) //broken for some reason
		if(isCarryingItem(brokenAxeID))
			return getNewAxe();

		if(powerChopping && (getInventoryCount() >= invCountToDrop || isInventoryFull()))
			dropping = true;

		if(dropping)
			return dropLogs();

		if(isInventoryFull() && !powerChopping)
			return depositInventory();

		return chopWillow();
	}

	public boolean checkForEnt() {
		//taken and modified from dontpanic
		if(getMyPlayer().getInteracting() != null) {
			int count = Bot.getClient().getNPCCount();
			NPC[] npcs = Bot.getClient().getNPCArray();
			int[] ints = Bot.getClient().getNPCIndexArray();
			for (int i = 0; i < count; i++) {
				RSNPC npc = new RSNPC(npcs[ints[i]]);
				if(getMyPlayer().getInteracting().equals(npc) && Arrays.asList("Willow").contains(npc.getName())) {
					atTile(getMyPlayer().getLocation(), "alk here");
					entsAvoided++;
					return true;
				} 
			}
		}
		return false;
	}

	public int runAway() {
		setRun(true);
		RSTile curentTile = getMyPlayer().getLocation();
		int xRand = random(-16, 16);
		int yRand = 16 - xRand;
		RSTile runawayTile = new RSTile(curentTile.getX() + xRand, curentTile.getY() + yRand);
		myWalkTile(runawayTile, 0);
		waitUntilNotMoving();
		wait(random(2200, 3800));
		myWalkTile(curentTile, 1);
		wait(random(50, 400));
		moveMouse(random(0, 515), random(0, 337));
		waitUntilNearTile(curentTile, 1);
		ranAwayFromCombat++;
		return random(50, 100);
	}
	
	public int getNumObjectAroundPlayer(int... ids) {
		int num = 0;
		for(int y = 1; y >= -1; y--) {
			for(int x = -1; x <= 1; x++) {
				RSObject obj = getObjectAt(getMyPlayer().getLocation().getX() + x, getMyPlayer().getLocation().getY() + y);
				if(obj != null) {
					for(int i = 0; i < ids.length; i++) {
						if(obj.getID() == ids[i]) {
							num++;
							break;
						}
					}
				}
			}
		}
		return num;
	}

	public boolean atTree(int[] ids, String action) {
		RSObject obj = findObject(ids);
		if(obj == null)
			return false;
		/*
			0  1
			2  3
		*/
		Point[] point = new Point[4];
		RSObject[] objs = new RSObject[4];
		for(int i = 0; i < 4; i++) {
			point[i] = Calculations.tileToScreen(obj.getLocation());
			objs[i] = obj;
		}
		boolean done = false;
		for(int y = 1; y >= -2; y--) {
			for(int x = -1; x <= 2; x++) {
				objs[0] = getObjectAt(obj.getLocation().getX() + x, obj.getLocation().getY() + y);
				objs[1] = getObjectAt(obj.getLocation().getX() + x + 1, obj.getLocation().getY() + y);
				objs[2] = getObjectAt(obj.getLocation().getX() + x, obj.getLocation().getY() + y - 1);
				objs[3] = getObjectAt(obj.getLocation().getX() + x + 1, obj.getLocation().getY() + y - 1);
				if(objs[0] != null && objs[1] != null && objs[2] != null && objs[3] != null) {
					if(objs[0].getID() == obj.getID() && objs[1].getID() == obj.getID() && 
					   objs[2].getID() == obj.getID() && objs[3].getID() == obj.getID()) {
						point[0] = Calculations.tileToScreen(new RSTile(obj.getLocation().getX() + x, obj.getLocation().getY() + y));
						point[1] = Calculations.tileToScreen(new RSTile(obj.getLocation().getX() + x + 1, obj.getLocation().getY() + y));
						point[2] = Calculations.tileToScreen(new RSTile(obj.getLocation().getX() + x, obj.getLocation().getY() + y - 1));
						point[3] = Calculations.tileToScreen(new RSTile(obj.getLocation().getX() + x + 1, obj.getLocation().getY() + y - 1));
						done = true;
						break;
					}
				}
			}
			if(done)
				break;
		}
		for(int i = 0; i < 4; i++)
			if(point[i].x == -1 || point[i].y == -1)
				point[i] = Calculations.tileToScreen(obj.getLocation());

		//find all the midpoints
		Point one = new Point((point[0].x + point[3].x) / 2, (point[0].y + point[3].y) / 2);
		Point two = new Point((point[1].x + point[2].x) / 2, (point[1].y + point[2].y) / 2);
		Point finalPoint = new Point((one.x + two.x) / 2, (one.y + two.y) / 2);
		finalPoint.y -= random(21, 27);

		moveMouse(finalPoint, 4, 4);
		if(getMenuItems().get(0).toLowerCase().contains(action.toLowerCase())) {
			clickMouse(true);
			waitUntilNotMoving();
			numObjects = getNumObjectAroundPlayer(willowTreeID);
			return true;
		} else {
			clickMouse(false);
			if(atMenu(action)) {
				numObjects = getNumObjectAroundPlayer(willowTreeID);
				return true;
			}
			setCameraRotation(random(1, 359));
			setCameraAltitude(true);
		}
		waitUntilNotMoving();
		return true;
	}

	public int chopWillow() {
		if(distanceTo(bankTile) < 6) {
			myWalkTile(willowTile1, 2);
			wait(random(50, 400));
			moveMouse(random(0, 515), random(0, 337));
			if(random(0, 2) == 0)
				setRun(true);
			waitUntilNotMoving();
			return random(25, 75);
		}
		//is the nearest tree is visible on the screen?
		RSObject obj = findObject(willowTreeID);
		if(obj != null) {
			if(!Calculations.onScreen(Calculations.tileToScreen(obj.getLocation()))) {
				if(distanceTo(willowTile1) < distanceTo(willowTile2))
					myWalkTile(willowTile2, 1);
				else
					myWalkTile(willowTile1, 1);
				wait(random(50, 400));
				moveMouse(random(0, 515), random(0, 337));
				waitUntilNotMoving();
				return random(500, 150);
			}
		}
		wait(random(80, 100));
		if(numObjects < getNumObjectAroundPlayer(willowTreeID)) {
			numObjects = getNumObjectAroundPlayer(willowTreeID);
			int r = random(0, 3);
			if(r == 0 || r == 1)
				atTree(willowTreeID, "own Will");
			return random(200, 400);
		}
		
		if(getMyPlayer().getAnimation() != -1) {
			return antiBan();
		}
		if(atTree(willowTreeID, "own Will")) {
			return random(200, 400);
		}
		return random(30, 60);
	}

	public int antiBan() {
		switch(random(0, 400)) {
			case 0: setCameraRotation(random(1, 359)); break;
			case 1: setCameraRotation(random(1, 359)); break;
			case 2: setCameraRotation(random(1, 359)); break;
			case 3: setCameraRotation(random(1, 359)); break;
			case 4: setCameraRotation(random(1, 359)); break;
			case 5: setCameraRotation(random(1, 359)); break;

			case 6: setCameraAltitude(true); break;
			case 7: setCameraAltitude(true); break;

			case 8: setRun(true); break;

			case 9: moveMouse(random(0, 515), random(0, 337)); break;
			case 10: moveMouse(random(0, 515), random(0, 337)); break;
			case 11: moveMouse(random(0, 515), random(0, 337)); break;
			case 12: moveMouse(random(0, 515), random(0, 337)); break;
			case 13: moveMouse(random(0, 515), random(0, 337)); break;
			case 14: moveMouse(random(0, 515), random(0, 337)); break;
			case 15: moveMouse(random(0, 764), random(0, 502)); break;
			case 16: moveMouse(random(0, 764), random(0, 502)); break;
			case 17: moveMouse(random(0, 764), random(0, 502)); break;

			case 18: openTab(TAB_INVENTORY); break;
			case 19: openTab(TAB_INVENTORY); break;
			case 20: openTab(TAB_STATS); break;
			case 21: openTab(TAB_STATS); break;
			case 22: openTab(random(0, 13)); break;
			case 23: openTab(random(0, 13)); break;
			case 24: openTab(random(0, 13)); break;

			case 25: atTree(willowTreeID, "own Will"); break;

			default: break;

		}
		return random(300, 500);
	}

	public int dropLogs() {
		if(!inventoryContainsOneOf(willowLogID) && !inventoryContainsOneOf(otherItems)) {
			RSItem item = getInventoryItemByID(goldPiecesID);
			if(item == null) {
				dropping = false;
				invCountToDrop = random(10, 29);
				return random(50, 75);
			}
			if(item != null) {
				if(item.getStackSize() > 5000) {
					dropping = false;
					invCountToDrop = random(10, 29);
					return random(50, 75);
				}
			}
		}
		if(atInventoryItem(willowLogID, "Drop")) {
			logsDropped++;
			wait(random(500, 700));
			return random(50, 75);
		}
		for(int i = 0; i < otherItems.length; i++) {
			if(inventoryContainsOneOf(otherItems[i])) {
				if(atInventoryItem(otherItems[i], "Drop")) {
					wait(random(500, 700));
					return random(50, 75);
				}
			}
		}
		RSItem item = getInventoryItemByID(goldPiecesID);
		if(item != null) {
			if(item.getStackSize() <= 5000) {
				atInventoryItem(goldPiecesID, "Drop");
				wait(random(500, 700));
			}
		}
		return random(50, 75);
	}
	
	public int depositInventory() {
		if(distanceTo(bankTile) > 17) {
			myWalkTile(willowTile1, 1);
			waitUntilNearTile(willowTile1, 2);
			return random(10, 50);
		}
		if(distanceTo(bankTile) > 6) {
			myWalkTile(bankTile, 1);
			wait(random(50, 300));
			if(random(0, 2) == 0)
				setRun(true);
			wait(random(50, 300));
			moveMouse(random(0, 515), random(0, 337));
			waitUntilNotMoving();
			return random(10, 50);
		}
		if(!RSInterface.getInterface(INTERFACE_BANK).isValid()) {
			switch(random(0, 2)) {
				case 0: atObject(findObject(bankBoothID), "uickl"); break;
				case 1: if(random(0, 2) == 0)
							atNPC(getNearestNPCByID(banker1ID), "ank Ba");
						else
							atNPC(getNearestNPCByID(banker2ID), "ank Ba");
						break;
				//case 2: atObject(findObject(depositBoxID), "sit Ban"); break;
				default: atObject(findObject(bankBoothID), "uickl"); break;
			}
			waitUntilNotMoving();
			return random(600, 150);
		}
		if(RSInterface.getInterface(INTERFACE_BANK).isValid()) {
			logsBanked += getInventoryCount(willowLogID);
			bank.depositAllExcept(axeID);
			if(random(0, 5) == 0)
				bank.close();
		}
		return random(50, 100);
	}

	public void unequipWeapon() {
		openTab(TAB_EQUIPMENT);
		RSInterface equip = RSInterface.getInterface(INTERFACE_TAB_EQUIPMENT);
		RSInterfaceChild weapon = equip.getChild(16);
		atInterface(weapon);
		wait(random(400, 800));
		openTab(TAB_INVENTORY);
	}

	public int getNewAxe() {
		if(equipmentContains(brokenAxeID)) {
			unequipWeapon();
			return random(50, 150);
		}
		if(distanceTo(bankTile) > 17) {
			myWalkTile(willowTile1, 2);
			waitUntilNotMoving();
			return random(50, 150);
		}
		if(distanceTo(bankTile) > 6) {
			myWalkTile(bankTile, 1);
			wait(random(50, 400));
			moveMouse(random(0, 515), random(0, 337));
			waitUntilNotMoving();
			return random(50, 150);
		}
		if(!RSInterface.getInterface(INTERFACE_BANK).isValid()) {
			switch(random(0, 2)) {
				case 0: atObject(findObject(bankBoothID), "uickl"); break;
				case 1: if(random(0, 2) == 0)
					atNPC(getNearestNPCByID(banker1ID), "ank Ba");
				else
					atNPC(getNearestNPCByID(banker2ID), "ank Ba");
				break;
				//case 2: atObject(findObject(depositBoxID), "sit Ban"); break;
				default: atObject(findObject(bankBoothID), "uickl"); break;
			}
			return random(300, 600);
		}
		waitUntilNotMoving();
		wait(random(500, 800));
		if(RSInterface.getInterface(INTERFACE_BANK).isValid()) {
			logsBanked += getInventoryCount(willowLogID);
			bank.depositAll();

			//broken since the bank methods are broken
			/*
			bank.setWithdrawModeToItem();
			int skillWC = skills.getCurrentSkillLevel(STAT_WOODCUTTING);
			for(int i = axeID.length - 1; i >= 0; i--) {
				if((skillWC >= 61 && i == 6) || 
				   (skillWC >= 41 && i == 5) || 
				   (skillWC >= 31 && i == 4) || 
				   (skillWC >= 21 && i == 3) || 
				   (skillWC >= 6 && i == 2)  || 
				   (skillWC >= 1 && i == 1)  || 
				   (skillWC >= 1 && i == 0)) {
					bank.atItem(axeID[i], "hdraw 1");
					break;
				}
			}
			wait(random(400, 900));
			if(skills.getCurrentSkillLevel(STAT_ATTACK) >= 61 && inventoryContainsOneOf(axeID[6]))
				atInventoryItem(axeID[5], "ield");
			else if(skills.getCurrentSkillLevel(STAT_ATTACK) >= 41 && inventoryContainsOneOf(axeID[5]))
				atInventoryItem(axeID[5], "ield");
			else if(skills.getCurrentSkillLevel(STAT_ATTACK) >= 31 && inventoryContainsOneOf(axeID[4]))
				atInventoryItem(axeID[4], "ield");
			else if(skills.getCurrentSkillLevel(STAT_ATTACK) >= 21 && inventoryContainsOneOf(axeID[3]))
				atInventoryItem(axeID[3], "ield");
			else if(skills.getCurrentSkillLevel(STAT_ATTACK) >= 6 && inventoryContainsOneOf(axeID[2]))
				atInventoryItem(axeID[2], "ield");
			else if(skills.getCurrentSkillLevel(STAT_ATTACK) >= 1 && inventoryContainsOneOf(axeID[1]))
				atInventoryItem(axeID[1], "ield");
			else if(skills.getCurrentSkillLevel(STAT_ATTACK) >= 1 && inventoryContainsOneOf(axeID[0]))
				atInventoryItem(axeID[0], "ield");
			*/
			bank.close();
		}
		log("No useable woodcutting axe, ending script =(");
		printProgressReport();
		stopAllScripts();
		return random(200, 400);
		
	}

	int tries = 0;
	public int teleportToLumbridge() {
		if(distanceTo(lumbridgeTile) > 17) {
			openTab(Script.TAB_MAGIC);
			castSpell(1);
			wait(random(1500, 2400));
			if(getMyPlayer().getAnimation() != -1) {
				wait(random(12500,14000));
				lost = false;
				lumbridge = true;
			} else {
 				tries++;
 				if(tries >= 4) {
 					log("Unable to teleport home, stopping script");
 					printProgressReport();
 					stopAllScripts();
 				}
			}
		}
		myWalkTile(lumbridgeTile, 1);
		setRun(true);
		waitUntilNearTile(lumbridgeTile, 2);
		return random(100, 600);
	}

	public void waitUntilNotMoving() {
		wait(random(600, 700));
		while(getMyPlayer().isMoving())
			wait(random(25, 100));
	}

	public void waitUntilNearTile(RSTile tile, int dist) {
		wait(random(600, 700));
		while(distanceTo(tile) > dist && getMyPlayer().isMoving())
			wait(random(25, 100));
	}

	public boolean myWalkTile(RSTile theTile, int randomness) {
		if((distanceTo(theTile)) <= 17) {
			RSTile newTile;
			if(randomness == 0)
				newTile = new RSTile(theTile.getX(), theTile.getY());
			else
				newTile = new RSTile(theTile.getX() + random(-randomness, randomness), theTile.getY() + random(-randomness, randomness));

			if(random(0, 4) == 0)
				turnToTile(newTile, 15);

			if(tileOnScreen(newTile) && random(0, 8) == 0) {
				if(!atTile(newTile, "Walk")) {
					if(!walkTileMM(newTile)) {
						log("Failed walking to tile: (" + theTile.getX() + ", " + theTile.getY() + ")");
						return false;
					} else {
						return true;
					}
				} else {
					return true;
				}
			} else {
				if(!walkTileMM(newTile)) {
					log("Failed walking to tile: (" + theTile.getX() + ", " + theTile.getY() + ")");
					return false;
				} else {
					return true;
				}
			}
		} else {
			log("Tile out of reach: (" + theTile.getX() + ", " + theTile.getY() + ")");
			return false;
		}
	}

	public RSTile myGetNextTile(RSTile[] path) {
		for(int i = path.length - 1; i >= 0; i--) {
			if(distanceTo(path[i]) <= 17) {
				return path[i];
			}
		}
		return null;
	}

	public boolean myWalkPath(RSTile[] path, int randomness) {
		if(distanceTo(path[path.length - 1]) <= 4) {
			return true;
		} else {
			RSTile theTile = myGetNextTile(path);
			if(theTile != null) {
				myWalkTile(theTile, randomness);
				waitUntilNearTile(theTile, 2);
			}
			return false;
		}
	}
}
100% credit to Tenac, it's the best woodcutter out there.
  #3  
Old 11-29-2008, 05:10 PM
rivgen's Avatar
Forum Addict
 
Join Date: Jul 2008
Posts: 536
Default Re: RSBot- Tenac's Willow Chopper Please.

He had PMed me and I sent him the tenac's willow chopper at 06:01 PM.
Well read this -> http://208.122.30.121/pbb/viewtopic.php?id=947
__________________
Click here to see my vouch thread!
~Rivgen
  #4  
Old 11-29-2008, 05:58 PM
Member
 
Join Date: Nov 2008
Posts: 29
Default Re: RSBot- Tenac's Willow Chopper Please.

rsbot's down again......
__________________
  #5  
Old 11-29-2008, 08:48 PM
Newcomer
 
Join Date: Jul 2008
Posts: 8
Send a message via MSN to tutudragon3
Default Re: RSBot- Tenac's Willow Chopper Please.

Quote:
Originally Posted by bigbenxxxx37 View Post
rsbot's down again......
umm what r u talking about...rsbot hasn't been down in the last 2 days
yes the website was down yesterday but its back up now
  #6  
Old 11-30-2008, 08:04 AM
perc's Avatar
Apprentice
 
Join Date: Feb 2007
Location: Aperture Science Enrichment Center
Posts: 830
Default Re: RSBot- Tenac's Willow Chopper Please.

http://www.rsbot.org/pbb/index.php
__________________
For the good of all of us.
Except the ones who are dead.
 



Cheap RS Gold Store  Runescape Gold

Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off

All times are GMT +1. The time now is 10:24 AM.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.6.1