From 0ec0dfebb04a9fdfe6f13db05ff93d038d1abeec Mon Sep 17 00:00:00 2001 From: Alan Shen Date: Fri, 9 Jan 2026 01:02:21 -0700 Subject: [PATCH 1/2] Dynamic bot jump path penalty based on class max --- src/game/server/neo/bot/neo_bot_path_cost.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/game/server/neo/bot/neo_bot_path_cost.cpp b/src/game/server/neo/bot/neo_bot_path_cost.cpp index d31a249112..abb3dbd13e 100644 --- a/src/game/server/neo/bot/neo_bot_path_cost.cpp +++ b/src/game/server/neo/bot/neo_bot_path_cost.cpp @@ -12,6 +12,9 @@ ConVar neo_bot_path_friendly_reservation_enable("neo_bot_path_friendly_reservati ConVar neo_bot_path_around_friendly_cooldown("neo_bot_path_around_friendly_cooldown", "2.0", FCVAR_CHEAT, "How often to check for friendly path dispersion", false, 0, false, 60); +ConVar neo_bot_path_jump_penalty_multiplier("neo_bot_path_jump_penalty_multiplier", "100.0", FCVAR_CHEAT, + "Maximum penalty multiplier for jump height changes in pathfinding", false, 0.01f, false, 1000.0f); + //------------------------------------------------------------------------------------------------- CNEOBotPathCost::CNEOBotPathCost(CNEOBot* me, RouteType routeType) { @@ -71,7 +74,7 @@ float CNEOBotPathCost::operator()(CNavArea* baseArea, CNavArea* fromArea, const } // jumping is slower than flat ground - const float jumpPenalty = 2.0f; + const float jumpPenalty = neo_bot_path_jump_penalty_multiplier.GetFloat() * Square( deltaZ / m_maxJumpHeight ); dist *= jumpPenalty; } else if (deltaZ < -m_maxDropHeight) From ae1aac46841bf3da38443b5889f6826c74ffcb87 Mon Sep 17 00:00:00 2001 From: Alan Shen Date: Mon, 12 Jan 2026 02:29:25 -0700 Subject: [PATCH 2/2] ConVar name tweak --- src/game/server/neo/bot/neo_bot_path_cost.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/game/server/neo/bot/neo_bot_path_cost.cpp b/src/game/server/neo/bot/neo_bot_path_cost.cpp index abb3dbd13e..604f146b7c 100644 --- a/src/game/server/neo/bot/neo_bot_path_cost.cpp +++ b/src/game/server/neo/bot/neo_bot_path_cost.cpp @@ -12,7 +12,7 @@ ConVar neo_bot_path_friendly_reservation_enable("neo_bot_path_friendly_reservati ConVar neo_bot_path_around_friendly_cooldown("neo_bot_path_around_friendly_cooldown", "2.0", FCVAR_CHEAT, "How often to check for friendly path dispersion", false, 0, false, 60); -ConVar neo_bot_path_jump_penalty_multiplier("neo_bot_path_jump_penalty_multiplier", "100.0", FCVAR_CHEAT, +ConVar neo_bot_path_penalty_jump_multiplier("neo_bot_path_penalty_jump_multiplier", "100.0", FCVAR_CHEAT, "Maximum penalty multiplier for jump height changes in pathfinding", false, 0.01f, false, 1000.0f); //------------------------------------------------------------------------------------------------- @@ -74,7 +74,7 @@ float CNEOBotPathCost::operator()(CNavArea* baseArea, CNavArea* fromArea, const } // jumping is slower than flat ground - const float jumpPenalty = neo_bot_path_jump_penalty_multiplier.GetFloat() * Square( deltaZ / m_maxJumpHeight ); + const float jumpPenalty = neo_bot_path_penalty_jump_multiplier.GetFloat() * Square( deltaZ / m_maxJumpHeight ); dist *= jumpPenalty; } else if (deltaZ < -m_maxDropHeight)