fiexed virtuel entry nodes so they will be considered equal to all other Nodes
This commit is contained in:
1 parent
ae2a4a0f08
commit
2bcffa5131
4 files changed
+80
-32
No files matched your search
@@ -470,6 +470,25 @@ bool ClientlessTravelGraphMgr::PlanAdaptiveRoute(
|
||||
if (localDistance > startRadius)
|
||||
continue;
|
||||
|
||||
// VCORE_VIRTUAL_EDGE_V11_PORTAL_APPROACH: never seed an unreachable node.
|
||||
if (blockedBridgeKeys && blockedBridgeKeys->count("start:" + node.Key))
|
||||
continue;
|
||||
if (localDistance > 1.5f)
|
||||
{
|
||||
Position entryTarget;
|
||||
entryTarget.Relocate(node.X, node.Y, node.Z, node.O);
|
||||
ClientlessPathDiagnostics entryNav;
|
||||
sClientlessTravelMgr->AnalyzePath(const_cast<Player*>(player), entryTarget, entryNav);
|
||||
if (!entryNav.Calculated || !entryNav.Complete || entryNav.FinalDistance > 1.5f ||
|
||||
entryNav.MaxSegmentLength > 8.0f || entryNav.MaxZDelta > 5.0f ||
|
||||
entryNav.PathLength > 500.0f)
|
||||
{
|
||||
TC_LOG_INFO("server.adventurebot.navigation",
|
||||
"START_NODE_REJECT node='%s' distance=%.2f reason='%s'",
|
||||
node.Key.c_str(), localDistance, entryNav.Reason.c_str());
|
||||
continue;
|
||||
}
|
||||
}
|
||||
State state{ node.Key, false };
|
||||
std::string const key = stateKey(state);
|
||||
auto found = distance.find(key);
|
||||
@@ -575,6 +594,8 @@ bool ClientlessTravelGraphMgr::PlanAdaptiveRoute(
|
||||
|
||||
State state{ candidate.Edge.ToNode, false };
|
||||
std::string key = stateKey(state);
|
||||
if (blockedBridgeKeys && blockedBridgeKeys->count("start:" + candidate.Edge.ToNode))
|
||||
continue;
|
||||
float remainingFraction = candidate.Edge.Reverse
|
||||
? float(candidate.Index) / float(candidate.Count - 1)
|
||||
: float(candidate.Count - candidate.Index - 1) / float(candidate.Count - 1);
|
||||
@@ -591,7 +612,7 @@ bool ClientlessTravelGraphMgr::PlanAdaptiveRoute(
|
||||
open.push({ newCost, state });
|
||||
++accepted;
|
||||
}
|
||||
if (accepted)
|
||||
if (validated)
|
||||
TC_LOG_INFO("server.adventurebot.navigation",
|
||||
"VIRTUAL_EDGE_CANDIDATES map=%u tested=%u accepted=%u",
|
||||
player->GetMapId(), validated, accepted);
|
||||
|
||||
Reference in new issue
Block a user