Calculate NAV distance between entities
I could use some help with how to calculate the NAVIGATION distance between two entities. I already know how to calculate the vector distance (that is what I am using now), but it does not work for enough scenarios.
Simple example... how far is it to the checkpoint? Scenario: You are in a tunnel directly under the checkpoint, so your vector distance is very small. However, to get out of a long tunnel and navigate back to the checkpoint could be a very large distance. How do I calculate the navigation distance to the checkpoint? I suspect the "correct" answer involves a complex routine, but I do not need a precise answer... a good approximation will work fine. Perhaps something that calculates the Z angle between two entities and ignores anything higher than a certain angle? I appreciate any help, thank you! |
Re: Calculate NAV distance between entities
Here is more detail:
I want to prevent a bot from taking pain_pills when they are within a certain distance of the checkpoint (maybe 2250 hammer units), but I do not want to prevent them from using pain_pills if they are too close ONLY because they are under (or over) the checkpoint. I was thinking about calculating distance using only X.Y but ignore the value and return false (not too close) if the Z angle is more than about 20 to 30 degrees. I do not need the actual navigation distance, just a boolean to help prevent bots from wasting pain_pills when they are close to the checkpoint. While thinking about this, it seems funny that I cannot recall any maps where the checkpoint is entered vertically, like climbing/descending a ladder to the checkpoint and then closing a hatch in the floor/ceiling. The closest one I can think of is Death Aboard 2 map 3 (l4d_deathaboard03_docks). |
Re: Calculate NAV distance between entities
You can easily do this with vscripts or Left4Dhooks. Here are the rough pointers.
Vscripts
Left4dhooks
|
Re: Calculate NAV distance between entities
Thank you @Spirit_12!
I am already using left4dhooks, so I will work on implementing that method. I had searched left4dhooks, but I was using the wrong keywords and missed this. Thanks again for you help! |
Re: Calculate NAV distance between entities
OMG! This was so much easier than I anticipated. Already implemented and it was even simpler than what I was doing to calculate vector distance:
float dist = L4D2Direct_GetMapMaxFlowDistance() - L4D2Direct_GetFlowDistance(client); Thanks @Spirit_12 and @Silvers! |
Re: Calculate NAV distance between entities
Glad it worked out for you. I'm using the same technique to implement map events which is so much easier since I don't have to compile the map with each instance.
|
All times are GMT -4. The time now is 17:10. |
Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.