]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/bot/default/bot.qc
When bots are able to bunnyhop reduce travel cost of waypoint links
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / bot / default / bot.qc
index 575ab48a3105c45414eb4f35f517a2190ed42348..3b9dd7c60ccd8a5b878bb9a01a5e3e2b4a91442c 100644 (file)
@@ -533,18 +533,18 @@ void autoskill(float factor)
                        bestbot = max(bestbot, it.totalfrags - it.totalfrags_lastcheck);
        ));
 
-       LOG_TRACE("autoskill: best player got ", ftos(bestplayer), ", ");
-       LOG_TRACE("best bot got ", ftos(bestbot), "; ");
+       LOG_DEBUG("autoskill: best player got ", ftos(bestplayer), ", ");
+       LOG_DEBUG("best bot got ", ftos(bestbot), "; ");
        if(bestbot < 0 || bestplayer < 0)
        {
-               LOG_TRACE("not doing anything");
+               LOG_DEBUG("not doing anything");
                // don't return, let it reset all counters below
        }
        else if(bestbot <= bestplayer * factor - 2)
        {
                if(autocvar_skill < 17)
                {
-                       LOG_TRACE("2 frags difference, increasing skill");
+                       LOG_DEBUG("2 frags difference, increasing skill");
                        cvar_set("skill", ftos(autocvar_skill + 1));
                        bprint("^2SKILL UP!^7 Now at level ", ftos(autocvar_skill), "\n");
                }
@@ -553,14 +553,14 @@ void autoskill(float factor)
        {
                if(autocvar_skill > 0)
                {
-                       LOG_TRACE("2 frags difference, decreasing skill");
+                       LOG_DEBUG("2 frags difference, decreasing skill");
                        cvar_set("skill", ftos(autocvar_skill - 1));
                        bprint("^1SKILL DOWN!^7 Now at level ", ftos(autocvar_skill), "\n");
                }
        }
        else
        {
-               LOG_TRACE("not doing anything");
+               LOG_DEBUG("not doing anything");
                return;
                // don't reset counters, wait for them to accumulate
        }
@@ -678,6 +678,19 @@ void bot_serverframe()
        if (time < 2)
                return;
 
+       if(autocvar_skill != skill)
+       {
+               float wpcost_update = false;
+               if(skill >= autocvar_bot_ai_bunnyhop_skilloffset && autocvar_skill < autocvar_bot_ai_bunnyhop_skilloffset)
+                       wpcost_update = true;
+               if(skill < autocvar_bot_ai_bunnyhop_skilloffset && autocvar_skill >= autocvar_bot_ai_bunnyhop_skilloffset)
+                       wpcost_update = true;
+
+               skill = autocvar_skill;
+               if (wpcost_update)
+                       waypoint_updatecost_foralllinks();
+       }
+
        bot_calculate_stepheightvec();
        bot_navigation_movemode = ((autocvar_bot_navigation_ignoreplayers) ? MOVE_NOMONSTERS : MOVE_NORMAL);