Jump to content

AIO Walking Class (doens't glitch on break)


Merccy

Recommended Posts

V1.1 Released!

 

Hello,

 

For all my scripts I require a walking class so I made this class that DOESN'T glitch/pause on breaks.

Example (V1.1):

 

This class/package is able to:

  1. Manage the run energy
  2. Open doors (ONLY closed ones)
  3. Clicks next Position when it is in range for smooth walking
  4. Path randomization which can be turned of for each position
  5. DOESN'T glitch/stop
  6. Easy to use!
  7. Has a debug paint

Requirements/How to implement:

Import the jar first (You can also open the JAR with 7Zip and go to the walker folder for the source)

States makes this alot easier.

First you need to make a new PathTile, a PathTile is a class that extends Position so you can use it as a Position aswell.

By not specifying the randomize boolean it will be true (so randomized)

PathTile tile = new PathTile(Entity ent);
PathTile tile = new PathTile(Entity ent, boolean randomize);
PathTile tile = new PathTile(int x, int y, int z);
PathTile tile = new PathTile(int x, int y, int z, int randomize);

Then you make a PathTile array

PathTile[] pathTiles = new PathTile[] { new PathTile(3186, 3429, 0),
	    new PathTile(3191, 3429, 0), new PathTile(3196, 3429, 0),
	    new PathTile(3196, 3424, 0), new PathTile(3197, 3419, 0, false) };
// By not specifying the randomize boolean it will be true (so randomized)

After that you can make a new Path

Path path = new Path(Script s, PathTile[] pathtiles, int maxRandom);

// For example
Path path = new Path(this, pathTiles, 2);
// This will make a new Path with the Path Tiles we made before and the randomization value is 2. (So the x can vary between -2 and 2) 

Then we need to make our walker class

Walker walker = new Walker(Script s, int doorDistance);
// For example
Walker walker = new Walker(this, 2);

So how do we combine these things?

Because it doesn't glitch on breaks you should use states.

if (State.START_WALK) {
    path.start();
}
if (State.IS_WALKING) {
    walker.walkPath(path);
}

// For the IS_WALKING state you can use path.isWalking();
// For the START_WALK state you could use an area for example.

If you want to draw the debug paint then put this in your onPaint:

//Make walker and your path public/private/protected
public void onPaint(Graphics g) {
    this.walker.drawDebug(g, this.path);
} 

If you want to draw the path on screen then put this in your onPaint:

public void onPaint(Graphics g) {
    this.walker.drawPath(g, this.path, Color.CYAN, Color.RED);
}

If you don't understand it watch this very basic implementation video:

--Updating

 

Changelog;

---------------V1.2---------------
Added Walker.recover();
It will try to find the closest PathTile of the last path and start walking from there.
Useful to put in your Idle state (where nothing happens so your bot is stuck)

---------------V1.1---------------
Added drawPath(Graphics g, Path p, Color c1, Color c2) - Credits to jelknab
Added doorDistance to the Walker constructor: Walker w = new Walker(Script s, int doorDistance) : if doorDistance is 0 then it won't detect doors!
Changed the randomization, the path will be randomized when you use Path.start() and not when getting new points.
Source is now in the Walker folder.

---------------V1.0---------------
Release

Download V1.2: http://uppit.com/8vp0h4o867xc/AIOWalker.jar

Source (Pastebin) V1.2:

Path.java: http://pastebin.com/hcUjnafE

PathTile.java: http://pastebin.com/4FB7nqYk

 

Walker.java: http://pastebin.com/37tjiZ4g

 

Download V1.1: http://uppit.com/vwqn9srba1k1/AIOWalker.jar

Source (Pastebin) V1.1:

Path.java: http://pastebin.com/hcUjnafE

PathTile.java: http://pastebin.com/4FB7nqYk

Walker.java: http://pastebin.com/60M51rcu

 

Download V1.0: http://uppit.com/tlub9ozv2t3o/AIOWalker.jar

Source (Pastebin) V1.0:

Path.java: http://pastebin.com/y7GdDZLG

PathTile.java: http://pastebin.com/VBK0cTnR

Walker.java: http://pastebin.com/FV013cG9

Edited by Merccy
  • Like 3
Link to comment
Share on other sites

Nice walker.

 

Rsbots webwalker, and splinewalk was a snippit. My real walker is soon to come.

Why wasting your time making a walker if you can use OSBot's walker soon enough?

Supports walking over whole map,dungeons,... + obstacle solving.

Also closestobject fnding over the whole map.

kind regards

H0ppy

Edited by H0ppy
Link to comment
Share on other sites

It is opening random doors along the path.

The addition of another parameter to disable the automatic door opening would be great!

 

Thanks,

Warfront1

 

Warfront that is a great idea. I don't have problems with random door opening, just make sure your path is 2 tiles away from a door :). You can also change that value. It is approx. at line 53

Link to comment
Share on other sites

Nice walker.

 

Why wasting your time making a walker if you can use OSBot's walker soon enough?

Supports walking over whole map,dungeons,... + obstacle solving.

Also closestobject fnding over the whole map.

kind regards

H0ppy

iirc an admin said that he was developing the web walker with the help of the admins last month or something

 

Warfront that is a great idea. I don't have problems with random door opening, just make sure your path is 2 tiles away from a door smile.png. You can also change that value. It is approx. at line 53

might be better to make it open/look for door if cant reach Tile it want to walk at the time & the door is near the player. happy.png anyway it's nice

Edited by Cyro
Link to comment
Share on other sites

Thanks for this, will test it out soon! smile.png

 

If you need help implementing then just send me a PM smile.png.

Don't feel like making that tutorial now.

 

But what I do for my scripts is add the AIOWalker.jar as an Referenced library (just like osbot) and then use Fat Jar (Eclipse plugin) to export my project + the jar.

 

Screenshot:

3uOMC.png

Edited by Merccy
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...