Welcome to TRiBot Forums

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.

Sign in to follow this  
Followers 0
Baal Zebub

Help whit walkback

3 posts in this topic

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));


 

1 person likes this

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  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.