#include <lib/warpzone/common.qh>
#include <lib/warpzone/util_server.qh>
+STATIC_INIT(bot) { bot_calculate_stepheightvec(); }
+
// TODO: remove this function! its only purpose is to update these fields since bot_setnameandstuff is called before ClientState
void bot_setclientfields(entity this)
{
jumpstepheightvec = stepheightvec + jumpheight_vec * 0.85; // reduce it a bit to make the jumps easy
}
-float bot_fixcount()
+bool bot_fixcount()
{
int activerealplayers = 0;
int realplayers = 0;
});
}
- //int player_limit = GetPlayerLimit(); // TODO: use this instead of maxclients!
int bots;
// But don't remove bots immediately on level change, as the real players
// usually haven't rejoined yet
// add bots to reach minplayers if needed
bots = max(minbots, minplayers - activerealplayers);
// cap bots to the max players allowed by the server
- if(autocvar_g_maxplayers)
- bots = min(bots, autocvar_g_maxplayers - activerealplayers);
+ int player_limit = GetPlayerLimit();
+ if(player_limit)
+ bots = min(bots, max(player_limit - activerealplayers, 0));
bots = min(bots, maxclients - realplayers);
if(bots > minbots)
return false;
}
}
- while (currentbots > bots)
+ while (currentbots > bots && bots >= 0)
bot_removenewest();
}