Jump to content

Flawless Path Walking


Divine

Recommended Posts

	public boolean WalkAlongPath(int[][] path, boolean AscendThroughPath, int distanceFromEnd) {
		if (distanceToPoint(AscendThroughPath ? path[path.length - 1][0] : path[0][0],
				AscendThroughPath ? path[path.length - 1][1] : path[0][1]) <= distanceFromEnd)
			return true;
		else {
			WalkAlongPath(path, AscendThroughPath);
			return false;
		}
	}

	public void WalkAlongPath(int[][] path, boolean AscendThroughPath) {
		int destination = 0;
		for (int i = 0; i < path.length; i++)
			if (distanceToPoint(path[i][0], path[i][1]) < distanceToPoint(path[destination][0], path[destination][1]))
				destination = i;
		if (script.client.getMyPlayer().isMoving() && distanceToPoint(path[destination][0], path[destination][1]) > (script.isRunning() ? 3 : 2))
			return;
		if (AscendThroughPath && destination != path.length - 1 || !AscendThroughPath && destination != 0)
			destination += (AscendThroughPath ? 1 : -1);
		try {
			log("Walking to node:" + destination);
			script.walk(new Position(path[destination][0], path[destination][1], 0));
			Thread.sleep(700 + MethodProvider.random(600));
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}

	private int distanceToPoint(int pointX, int pointY) {
		return (int) Math.sqrt(Math.pow(script.client.getMyPlayer().getX() - pointX, 2)
				+ Math.pow(script.client.getMyPlayer().getY() - pointY, 2));
	}

 

This allows you to have your character walk along a path, starting at any point along the path. It will walk like a human, not like a bot.

This is how you'd use it:

private int[][] path1 = new int[][] { { 3206, 3209 }, { 3215, 3211 }, { 3217, 3218 }, { 3225, 3218 },
			{ 3235, 3220 }, { 3242, 3226 }, { 3252, 3226 }, { 3251, 3235 }, };

public void walkToGoblins() {
    WalkAlongPath(path1, true);
}

public void walkToBankFromGoblins() {
    WalkAlongPath(path1, false);
}

public void walkToGoblinsThenAttack() { 
    if(WalkAlongPath(path1, true, 1)) //The 1 is the distance away from destination
       state = State.AttackGoblins;
}

Enjoy.

Edited by Divine
  • Like 9
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...