Jump to content
Laniax

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

Recommended Posts

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

  • Like 1

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

@laniax is this project still in development? This is a revolutionary approach to walking which is the weakest point in almost any OSRS bot currently. Having a walking tool as dynamic as this could really improve the banrate on many scripts and give Tribot an even bigger lead over other clients.

  • 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

  • Our picks

    • Please welcome our new developers, @JoeDezzy1, @erickho123, @Encoded, and @wastedbro.

      These members will be responsible for working on, maintaining, and improving TRiBot.

      This means that bug fixes and improvements will now come at a much faster pace! We're committed to providing users with the best botting experience possible!
        • Thanks
        • Like
      • 30 replies
    • This release includes:

      More 3rd party libraries for script writers to use


      Apache Commons Codec


      Apache Commons Collections


      Apache Commons Configuration


      Apache Commons IO


      Apache Commons Lang


      Apache Commons Math


      GSON


      Guava


      JFoenix




      Hint arrow API


      Game#getHintArrowX


      Game#getHintArrowY




      Fix player hooks including Player#getSkullIcon and Prayer#getPrayerIcon
        • Thanks
        • Like
      • 43 replies
    • This update includes:

      Fix broken hooks


      Fix login bot for the message "No reply from login server. Please wait 1 minute and try again."


      Fix bug relating to which bot tab is sent human input


      General#randomLong bug fix involving negative numbers


      Fix GE API



      Please note: There are still some issues with the login bot due to a change in the game mechanisms handling the login screen. We're working on a fix and will upload it when ready.
        • Thanks
        • Like
      • 37 replies
    • This release will:

      Fix key event handling issue


      Fix other event handling issue


      Fix RSServer hook


      Update world hopper to have it use OCR, thanks to Todd


      Use proper disposal of old Graphics objects


      Reformat code


      Rearrange code


      Organize code imports


      Apply around 8000 automated code refactorings


      Make preparations for Java 9


      Fix 11 various bugs


      Add more reliable debugging support


      Fix mouseEntered/Exited event dispatching bug


      Fix minimap walking bug where it opens the map


      Fix broken hooks for today's game update
        • Thanks
        • Like
      • 100 replies
    • This update will:

      Fix GE inventory item positioning bug


      Fix broken object hooks
        • Like
      • 27 replies
  • Recently Browsing   0 members

    No registered users viewing this page.

×