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.

laniax

AdvancedWalking - next gen navmesh pathfinder/walker. [Source]

61 posts in this topic

 

[15:42:50] [iOExtensions] Error deserializing  object to file: org.tribot.api2007.types.RSTile; local class incompatible: stream classdesc serialVersionUID = 258832497691791796, local class serialVersionUID = 2849236342639440334.
[15:42:50] [AdvancedWalking] Pathfinder failed to initialize, we will use WebWalking instead.
 
can you tell me how to fix this problem?

 

 

As i told you on skype, the current state of AdvancedWalking isn't ready for 'real use'. If you want to try it out, you will have to generate your own mesh. The SampleGeneratorScript does exactly that, just make sure to disable the updater so it won't try to download the other version.

Share this post


Link to post
Share on other sites

I've been really interested in this project as of late and I have been thinking about it a lot. I've been using parts of it too in order to satisfy some needs like for example checking if the next tile has a gate, or wall.

There are a couple questions I wanted to ask you about this project:

  1. How often do you find yourself using AdvancedWalking or parts of it?
  2. WebWalking is independent. AdvancedWalking requires nav-meshes. What is the best method to programmatically build nav-meshes? (You touch on this in the OP about XTEA keys being sent to the client, but I'm looking for you to elaborate)

Share this post


Link to post
Share on other sites

 

I've been really interested in this project as of late and I have been thinking about it a lot. I've been using parts of it too in order to satisfy some needs like for example checking if the next tile has a gate, or wall.

There are a couple questions I wanted to ask you about this project:

  1. How often do you find yourself using AdvancedWalking or parts of it?
  2. WebWalking is independent. AdvancedWalking requires nav-meshes. What is the best method to programmatically build nav-meshes? (You touch on this in the OP about XTEA keys being sent to the client, but I'm looking for you to elaborate)

 

 

Thanks for your interest! I get a lot of messages from people with questions regarding to AdvancedWalking and is a good motivation to not let the project slack :)

To answer your questions;

 

1. I've written a few parts specifically for AdvancedWalking, the Logging comes to mind, i needed a log system allowed me to have multiple outputs and also debug it more precisely even if it is later implemented inside other people's scripts. That code later transferred into my personal API and has been implemented in all of my scripts. In some personal scripts i use AdvancedWalking if the area i am navigating isn't big as well.

 

2. The mesh will make or break this system. And thus generating it takes a lot of care. As you might know, currently a mesh can be generated by running around with a script in-game, but realisticly the 'base' mesh of the entire world could be extracted from the RS cache that jagex leaves on your computer when you play runescape. Jagex caches the world map files in there so it doesn't have to keep sending them from the server. That cache is encrypted though, and requires XTEA keys to decrypt. These keys are normally send to the client (typically in the 'loading please wait' messages) and can be intercepted and used to decrypt the data ourselves. In the private server/modding community this is a common thing to do, but they generally work with older versions of the cache where all the keys are known already. @TRiLeZ extracts these keys to develop tribot, most likely to read other data from the cache (there is more then just map data in there :)). Although there will always be manual work involved, linking the two ends of stairs together or the two ends of a cave entrance etc. That's why i am currently writing a script that will allow everyone to run around in game to map everything, including stairs/shortcuts etc and have that data send back to my servers, i will also be capturing reactions times and moving behaviour so that i will be able to implement that in the walking engine.

Share this post


Link to post
Share on other sites

Thanks for your interest! I get a lot of messages from people with questions regarding to AdvancedWalking and is a good motivation to not let the project slack :)

To answer your questions;

 

1. I've written a few parts specifically for AdvancedWalking, the Logging comes to mind, i needed a log system allowed me to have multiple outputs and also debug it more precisely even if it is later implemented inside other people's scripts. That code later transferred into my personal API and has been implemented in all of my scripts. In some personal scripts i use AdvancedWalking if the area i am navigating isn't big as well.

 

2. The mesh will make or break this system. And thus generating it takes a lot of care. As you might know, currently a mesh can be generated by running around with a script in-game, but realisticly the 'base' mesh of the entire world could be extracted from the RS cache that jagex leaves on your computer when you play runescape. Jagex caches the world map files in there so it doesn't have to keep sending them from the server. That cache is encrypted though, and requires XTEA keys to decrypt. These keys are normally send to the client (typically in the 'loading please wait' messages) and can be intercepted and used to decrypt the data ourselves. In the private server/modding community this is a common thing to do, but they generally work with older versions of the cache where all the keys are known already. @TRiLeZ extracts these keys to develop tribot, most likely to read other data from the cache (there is more then just map data in there :)). Although there will always be manual work involved, linking the two ends of stairs together or the two ends of a cave entrance etc. That's why i am currently writing a script that will allow everyone to run around in game to map everything, including stairs/shortcuts etc and have that data send back to my servers, i will also be capturing reactions times and moving behaviour so that i will be able to implement that in the walking engine.

About #2 that is really cool about having a master store for all of this information from the scripts since right now we don't have a dynamic way to get the data from the XTEA keys. It would be much easier to implement AdvancedWalking if it could dynamically pull the needed mesh from your server as we're encountering new areas-- maybe, if you're not already on your way to doing so, we could bridge the mapping script to the AdvancedWalking engine to allow it to work as a service of the engine itself and communicate with the server in real time to perform checks to see if a server's mesh block needs updated. This would presumably slow things down but I haven't a clue by how much, but if it's done in small enough portions like blocks then maybe it could be manageable?

Keep us updated and let me know if you need an extra hand~

Share this post


Link to post
Share on other sites

Looks like a great idea, can't wait to see the script for allowing everyone to help with the mesh come out.

Share this post


Link to post
Share on other sites
18 hours ago, some0ne said:

is this actually working?

It is not scripter ready. The pathfinding works, but is still being improved upon. Also, no 'mesh' of the world is currently available, since i am still constantly changing the data inside it. But i got a few projects running and have to plan split my attention accordingly :)

1 person likes this

Share this post


Link to post
Share on other sites

The project has been separated into 3 parts. 

 

We now have a main AdvancedWalking repository that scripts can use (when it's done). This contains absolutely no code regarding the creation of the navmesh, since that data will be downloaded and kept up-to-date instead.

https://github.com/Laniax/AdvancedWalking

 

Then we have the Generator. This project takes runescape tile/map data as input, and poops navmesh data as output. This is the data that the main repository will download. As a scripter you do not need this inside your script, hence why it has been separated.

https://github.com/Laniax/AdvancedWalking-Generator

 

Then we have the Collector. This is a script that can run inside the game to collect tile/map data (WIP). In other words, this project will collect the input data for the Generator.
As a scripter you do not need this inside your script, hence why it has been separated.

https://github.com/Laniax/AdvancedWalking-Collector

Edited by laniax

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

  • Recently Browsing   0 members

    No registered users viewing this page.