Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
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

    • This release will:

      Fix LG for both OSBuddy and RuneLite


      Fix issue where the resizable client isn't able to be made smaller (Thanks @JoeDezzy1)


      Fix detection of the logout game tab when resizable mode and side panels are enabled (Thanks @JoeDezzy1)


      Add initial support for Sentry to allow us to identify and easily debug exceptions happening with all TRiBot users


      Add methods to determine if the bank is actually loaded, and not just the overarching interface (Thanks @wastedbro)



      Upcoming updates:

      Improved CLI support


      Full Sentry support


      Much more
        • Like
      • 57 replies
    • This release will:

      Fix NPE in Camera API (Thanks @wastedbro)


      Update deposit box interface ids (Thanks @Encoded)


      Add various bank methods (Thanks @wastedbro)


      Banking#getWithdrawXQuantity


      Banking#getDefaultWithdrawQuantity


      Banking#arePlaceholdersOn




      Fix resizeable minimap bug (Thanks @wastedbro)


      Remove Java 8 requirement


      Please note: TRiBot is not yet fully compatible with Java 10+




      Fix the break handler issues by ensuring the break handler thread never gets paused


      Fix broken settings hooks



      Upcoming updates:

      Improved CLI support


      Much more



      Note: If you are using LG, please restart both the RS client and TRiBot
        • Like
      • 68 replies
    • This release will:

      Add support for using custom F key bindings to switch between game tabs (Thanks @erickho123)


      Fix tab opening for "Skills" and "Kourend Tasks" (Thanks @erickho123)



      Note: If you are using LG, please restart both the RS client and TRiBot
        • Like
      • 34 replies
    • This release will:

      Fix an issue where breaks would stop firing


      Fix Combat#getWildernessLevel, use dynamic search for text and cache ID for later calls


      Fix an NPE in the Combat API


      Fix Mouse#leaveGame bug where the mouse wouldn't actually leave the game screen
        • Like
      • 21 replies
    • This release will:

      Add LG support for Runelite


      Fix NPCChat issues


      Fix a bug where the camera angle setter would just hold down a key for 5 seconds (the timeout)


      Slightly adjust the rotation via keys to be more accurate


      Add the ability for asynchronous camera movement via keys


      Make Camera rotation via mouse more fluid, with more antiban, and work much better in resizable mode


      Add a "Camera#setCamera" method, allowing the rotation and angle to be set in parallel


      Increase the likelihood of using the mouse for camera movements


      Add support for adjusting the camera to positionable entities (Positionable#adjustCameraTo)



      Upcoming updates:

      Improved CLI support


      Much more



      Note: If you are using LG, please restart both the RS client and TRiBot
        • Thanks
        • Like
      • 59 replies
  • Recently Browsing   0 members

    No registered users viewing this page.

×