X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fserver%2Fbot%2Fdefault%2Fbot.qc;h=3911d596dc51859afd8058272ec394bf402014a7;hp=9ebcffae3c8383657da46d4b571e24dfcdd92b2a;hb=797bf448a96c0c13d783c7c919bb2caf6fa16707;hpb=0dec7bcf5fa101452e59fe30b74daf24251d93e8 diff --git a/qcsrc/server/bot/default/bot.qc b/qcsrc/server/bot/default/bot.qc index 9ebcffae3c..3911d596dc 100644 --- a/qcsrc/server/bot/default/bot.qc +++ b/qcsrc/server/bot/default/bot.qc @@ -215,13 +215,13 @@ void bot_setnameandstuff(entity this) prio = 6; - #define READSKILL(f, w, r) MACRO_BEGIN { \ + #define READSKILL(f, w, r) MACRO_BEGIN \ if(argv(prio) != "") \ this.f = stof(argv(prio)) * w; \ else \ this.f = (!autocvar_g_campaign) * (2 * random() - 1) * r * w; \ prio++; \ - } MACRO_END + MACRO_END //print(bot_name, ": ping=", argv(9), "\n"); READSKILL(havocbot_keyboardskill, 0.5, 0.5); // keyboard skill @@ -604,6 +604,8 @@ bool bot_fixcount() else if ((realplayers || autocvar_bot_join_empty || (currentbots > 0 && time < 5))) { int minplayers = max(0, floor(autocvar_minplayers)); + if (teamplay) + minplayers = max(0, floor(autocvar_minplayers_per_team) * AvailableTeams()); int minbots = max(0, floor(autocvar_bot_number)); // add bots to reach minplayers if needed @@ -611,7 +613,7 @@ bool bot_fixcount() // cap bots to the max players allowed by the server int player_limit = GetPlayerLimit(); if(player_limit) - bots = min(bots, player_limit - activerealplayers); + bots = min(bots, max(player_limit - activerealplayers, 0)); bots = min(bots, maxclients - realplayers); if(bots > minbots) @@ -634,7 +636,7 @@ bool bot_fixcount() return false; } } - while (currentbots > bots) + while (currentbots > bots && bots >= 0) bot_removenewest(); }