Compare commits

..

3 Commits

Author SHA1 Message Date
d22af0209a wait for notifies 2024-10-22 10:01:40 -06:00
5ea5f77213 we are not released 2024-09-21 20:52:41 -06:00
3ee5453c87 add bots_manage_fill_watchplayers 2024-05-16 19:29:08 -06:00

View File

@ -7,7 +7,7 @@
*/ */
init() init()
{ {
level.bw_version = "2.3.0"; level.bw_version = "2.3.0 PR 1";
if ( getdvar( "bots_main" ) == "" ) if ( getdvar( "bots_main" ) == "" )
{ {
@ -67,6 +67,11 @@ init()
setdvar( "bots_manage_fill_kick", false ); // kick bots if too many setdvar( "bots_manage_fill_kick", false ); // kick bots if too many
} }
if ( getdvar( "bots_manage_fill_watchplayers" ) == "" )
{
setdvar( "bots_manage_fill_watchplayers", false ); // add bots when player exists, kick if not
}
if ( getdvar( "bots_skill" ) == "" ) if ( getdvar( "bots_skill" ) == "" )
{ {
setdvar( "bots_skill", 0 ); // 0 is random, 1 is easy 7 is hard, 8 is custom, 9 is completely random setdvar( "bots_skill", 0 ); // 0 is random, 1 is easy 7 is hard, 8 is custom, 9 is completely random
@ -139,7 +144,7 @@ init()
} }
level.bot_inittime = gettime(); level.bot_inittime = gettime();
level.bots_minsprintdistance = 315; level.bots_minsprintdistance = 315;
level.bots_minsprintdistance *= level.bots_minsprintdistance; level.bots_minsprintdistance *= level.bots_minsprintdistance;
level.bots_mingrenadedistance = 256; level.bots_mingrenadedistance = 256;
@ -274,7 +279,7 @@ onPlayerConnect()
onDisconnectAll() onDisconnectAll()
{ {
name = self.playername; name = self.playername;
self waittill( "disconnect" ); self waittill( "disconnect" );
level.players = array_remove( level.players, self ); level.players = array_remove( level.players, self );
@ -364,10 +369,10 @@ connected()
level.bots[ level.bots.size ] = self; level.bots[ level.bots.size ] = self;
self thread onDisconnect(); self thread onDisconnect();
level notify( "bot_connected", self );
self thread watchBotDebugEvent(); self thread watchBotDebugEvent();
waittillframeend; // wait for waittills to process
level notify( "bot_connected", self );
} }
/* /*
@ -582,6 +587,14 @@ addBots_loop()
players++; players++;
} }
} }
if ( !randomint( 999 ) )
{
setdvar( "testclients_doreload", true );
wait 0.1;
setdvar( "testclients_doreload", false );
// doExtraCheck();
}
amount = bots; amount = bots;
@ -589,18 +602,35 @@ addBots_loop()
{ {
amount += players; amount += players;
} }
if ( players <= 0 && getdvarint( "bots_manage_fill_watchplayers" ) )
{
amount = fillAmount + bots;
}
if ( amount < fillAmount ) if ( amount < fillAmount )
{ {
setdvar( "bots_manage_add", 1 ); setdvar( "bots_manage_add", fillAmount - amount );
} }
else if ( amount > fillAmount && getdvarint( "bots_manage_fill_kick" ) ) else if ( amount > fillAmount && getdvarint( "bots_manage_fill_kick" ) )
{ {
tempBot = getBotToKick(); botsToKick = amount - fillAmount;
if ( isdefined( tempBot ) ) if ( botsToKick > 64 )
{ {
BotBuiltinCmdExec( "clientkick " + tempBot getentitynumber() ); botsToKick = 64;
}
for ( i = 0; i < botsToKick; i++ )
{
tempBot = getBotToKick();
if ( isdefined( tempBot ) )
{
BotBuiltinCmdExec( "clientkick " + tempBot getentitynumber() + " EXE_PLAYERKICKED" );
wait 0.25;
}
} }
} }
} }