Jump to content
Sign in to follow this  
Baal Zebub

Help whit walkback

Recommended Posts

Hello 

 

i am new to scripting and just do it for a hobby, and i made a function that i tought that would work but just usses too much CPU that freezes the client.

basicly i just whanted to make the function walk back a already made path. and if needed check the area of the player.

if some one could tell me why this can't be ussed and what would be a better approach to it, i would appreciate it :)

 

my code:

	public void walkback(RSTile[] path,RSArea area, boolean checkarea){
		if(checkarea== false){
			Walking.invertPath(Walking.randomizePath(path, 2, 2));
			while(Player.isMoving()){
				println("Player is moving");
				sleep(750);}
		}else{
		while(inArea(area)!=true && checkarea == true ){
		println("walkBackTo");
		RSTile[] back = Walking.randomizePath(path, 2, 2);
			Walking.invertPath(back);
			while(Player.isMoving()){
				println("Player is moving");
				sleep(750);
			
			}
		}
		}
	}
	public boolean inArea(RSArea a){
		println("inArea()");
		if(a!= null ){
			if( a.contains(Player.getRSPlayer().getPosition())){
				println("Yes it is in Area"+Player.getRSPlayer().getPosition());
				return true;
			}else {
				println("Nop, it is not in Area"+Player.getRSPlayer().getPosition());
				return false;
			}}else{
		  return false;}
		
	}

Thanks ^^

Baal Zebub:cool:

"The Lord Of The Flies" 

Edited by Baal Zebub

Share this post


Link to post
Share on other sites

You need to invert the path and walk through it.
There are walking methods with a stopping condition. You can use that to check if you've reached the destination area.

https://tribot.org/doc/org/tribot/api2007/Walking.html#walkScreenPath-org.tribot.api.interfaces.Positionable:A-org.tribot.api.types.generic.Condition-long-

https://tribot.org/doc/org/tribot/api2007/Walking.html#walkPath-org.tribot.api.interfaces.Positionable:A-org.tribot.api.types.generic.Condition-long-

You can also use antiban to dynamically decide which one to use:

RSTile[] invertedPath = Walking.invertPath(path);
Condition stopCondition = null;
if (checkarea)
      stopCondition = new Condition() {
          public boolean active() {
               General.sleep(time to sleep in ms);
               return area.contains(Player.getPosition());
          }
      };
WalkingPreference walkPref = AntiBan.generateWalkingPreference(distance);    invertedPath.length should be a decent distance estimative
if (walkPref == WalkingPreference.MINIMAP)
     Walking.walkPath(invertedPath, stopCondition, General.random(min time to check condition in ms, max time to check condition in ms));
else 
     Walking.walkScreenPath(invertedPath, stopCondition, General.random(same as above, same as above));


 

  • Like 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×