Request for help!

Joined
Apr 29, 2023
Messages
493
Reaction score
614
So we've managed to progress alot in the last few weeks with the Mir 4 Source however we're still stuck with the NavMesh. So here's a break down of the situation:

The navmesh is required server side, we've found that it's being used for Monster Respawning and Movement, We've managed to remove a un-needed nav check for Monster Attacks which has allowed us to have monsters that attack the player but we can't & shouldn't remove such checks elsewhere.

So, we've spent a long time and many different methods have been used to try and obtain the navmesh for the server, however obtaining the correct meshs is proving more difficult then we exspected.

I've put together a download which contains: NavMesh Server Code / Umaps (Extracted from client) / Navmesh JSON (handles the navmesh.bin files) / the navmesh we have been able to extract so far.

It looks like the source is wanting 2 navmesh.bin files per map. one if MAIN and the other is SUB01.

We're not sure if the filenames we've got on our current navmeshs are correct and we're not sure if they are the correct Magic Version.

This also applies to the structure of the NAVIMESH.JSON file which looks to be the middleman between the Server and the bin files. We know the correct format for the json but again, without the correct navmesh we can't check.

I'm hoping that someone alot smarter than me can try and extract the correct navmesh using everything i've provided. I've held back on releasing server files/source in fear of scammers but this is really the last option we have.



I've included a read me with roughly the same info that's i've posted here but might be worth a read.

Best of luck nerds and thank you for reading.
 
Had a brief look at both the code and the data.. nothing close to the navmesh data itself - but appears to be a collection file to link multiple data files into one nav mesh group/set

This data matches the data found in `NavMeshSetHeader`

Definition for `dtNavMeshParams` of struct `NavMeshSetHeader`
is missing

likely the remainder of this .bin

You'll find this in the NaviMeshManager

View attachment 266763
Lol, so I was correct. Haha.
Small update:

Okay so _res_trigger.h is mostly commented out, same goes for TriggerDefine.h, both are used to respawn monsters.

MONSTER.FSM needs redoing, I'm pretty sure the format is wrong based off AIDefine.h & _res_monsterfsm.h this handles monster states.

Looks like the navmesh files we need are infact umaps, the confusion of "bin" is likely due to the code reading the binary data of the umap file. These umaps are inside Client Export > MirMobile\Content\Maps and each folder will have a NAV folder. Funny enough most maps have 2 umaps which would indicate the MAIN & SUB01.
so NAVIMESH.json needs redoing but i'm not sure what NavimeshID is or where it's found, so ordering the navimesh is unclear.

This is a test NAVIMESH.json

[
{
"NaviMeshId": 2021,
"Navimesh": "NAV_FG_Bicheon.umap"
}
]

I've used NaviMeshID as 2021 in this example as it could be linked directly to the Map ID but i'm unsure

When uncommenting some of the trigger code, I find that the server spits out:

[0910 231428][warning] Process::Cheat(). CharacterUID: 1 AccountGrade Cheat Command gen Cheat size: 3[0910 231428][ error] GenerateZoneMonster:NaviMesh Find Fail Map ID 2021 [G:\Mir4\mir4-private-main\mir4-private\Code\Cplusplus\Servers\Game\Contents\Npc\ContentsNpc.cpp][CONTENTS::NPC:: Process::SpawnNpc-103][0910 231428][ error] failed To SpawnNpc

I've attached what I believe to be the correct navmesh

The template navmesh has the correct navmesh header. These umaps don't have the correct header.

Or, if you have the wrong header values on your source then, these are your values. Please do provide the breakpoint, callstack output. thanks.
 

Attachments

  • chrome_SNlh0HdCYW - Request for help! - RaGEZONE Forums
    chrome_SNlh0HdCYW.webp
    34.5 KB · Views: 78
Upvote 0
We do have a bin file that has the correct magic version as we used it to get into game, I’ll upload it shortly.

But it’s basically a “template”

I've attached a template navmesh, we know this to be the correct MAGIC vesion. You'll see that the template navmesh uses the map ID and not the map name, we're not sure which one should be used.


Added some breakpoints like you suggested by they don't get triggered at all.

View attachment 266757
You probably wont hit the breakpoint because you are running in release. Run it in Debug
 
Upvote 0
You probably wont hit the breakpoint because you are running in release. Run it in Debug
Ahh I keep doing that 😂 I’ll give it ago again in the morning

Lol, so I was correct. Haha.


The template navmesh has the correct navmesh header. These umaps don't have the correct header.

Or, if you have the wrong header values on your source then, these are your values. Please do provide the breakpoint, callstack output. thanks.
I’ll attempt this in the morning
 
Upvote 0
Back