always use curly braces

This commit is contained in:
ineed bots 2023-12-19 19:24:07 -06:00
parent 9e2025e86a
commit 4aba1289f2
5 changed files with 572 additions and 10 deletions

View File

@ -10,82 +10,132 @@ init()
level.bw_version = "z0.1";
if ( getdvar( "bots_main" ) == "" )
{
setdvar( "bots_main", true );
}
if ( !getdvarint( "bots_main" ) )
{
return;
}
if ( !wait_for_builtins() )
{
println( "FATAL: NO BUILT-INS FOR BOTS" );
}
thread load_waypoints();
thread hook_callbacks();
if ( getdvar( "bots_main_GUIDs" ) == "" )
setdvar( "bots_main_GUIDs", "" ); //guids of players who will be given host powers, comma seperated
{
setdvar( "bots_main_GUIDs", "" ); //guids of players who will be given host powers, comma seperated
}
if ( getdvar( "bots_main_firstIsHost" ) == "" )
setdvar( "bots_main_firstIsHost", false ); //first player to connect is a host
{
setdvar( "bots_main_firstIsHost", false ); //first player to connect is a host
}
if ( getdvar( "bots_main_waitForHostTime" ) == "" )
setdvar( "bots_main_waitForHostTime", 10.0 ); //how long to wait to wait for the host player
{
setdvar( "bots_main_waitForHostTime", 10.0 ); //how long to wait to wait for the host player
}
if ( getdvar( "bots_main_kickBotsAtEnd" ) == "" )
setdvar( "bots_main_kickBotsAtEnd", false ); //kicks the bots at game end
{
setdvar( "bots_main_kickBotsAtEnd", false ); //kicks the bots at game end
}
if ( getdvar( "bots_manage_add" ) == "" )
setdvar( "bots_manage_add", 0 ); //amount of bots to add to the game
{
setdvar( "bots_manage_add", 0 ); //amount of bots to add to the game
}
if ( getdvar( "bots_manage_fill" ) == "" )
setdvar( "bots_manage_fill", 0 ); //amount of bots to maintain
{
setdvar( "bots_manage_fill", 0 ); //amount of bots to maintain
}
if ( getdvar( "bots_manage_fill_mode" ) == "" )
setdvar( "bots_manage_fill_mode", 0 ); //fill mode, 0 adds everyone, 1 just bots, 2 maintains at maps, 3 is 2 with 1
{
setdvar( "bots_manage_fill_mode", 0 ); //fill mode, 0 adds everyone, 1 just bots, 2 maintains at maps, 3 is 2 with 1
}
if ( getdvar( "bots_manage_fill_kick" ) == "" )
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_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
}
if ( getdvar( "bots_skill_hard" ) == "" )
setdvar( "bots_skill_hard", 0 ); //amount of hard bots on axis team
{
setdvar( "bots_skill_hard", 0 ); //amount of hard bots on axis team
}
if ( getdvar( "bots_skill_med" ) == "" )
{
setdvar( "bots_skill_med", 0 );
}
if ( getdvar( "bots_loadout_rank" ) == "" ) // what rank the bots should be around, -1 is around the players, 0 is all random
{
setdvar( "bots_loadout_rank", -1 );
}
if ( getdvar( "bots_loadout_prestige" ) == "" ) // what pretige the bots will be, -1 is the players, -2 is random
{
setdvar( "bots_loadout_prestige", -1 );
}
if ( getdvar( "bots_play_move" ) == "" ) //bots move
{
setdvar( "bots_play_move", true );
}
if ( getdvar( "bots_play_knife" ) == "" ) //bots knife
{
setdvar( "bots_play_knife", true );
}
if ( getdvar( "bots_play_fire" ) == "" ) //bots fire
{
setdvar( "bots_play_fire", true );
}
if ( getdvar( "bots_play_nade" ) == "" ) //bots grenade
{
setdvar( "bots_play_nade", true );
}
if ( getdvar( "bots_play_ads" ) == "" ) //bot ads
{
setdvar( "bots_play_ads", true );
}
if ( getdvar( "bots_play_aim" ) == "" )
{
setdvar( "bots_play_aim", true );
}
if ( getdvar( "bots_t8_mode" ) == "" )
{
setdvar( "bots_t8_mode", false );
}
if ( getdvar( "bots_play_opendoors" ) == "" )
{
setdvar( "bots_play_opendoors", true );
}
if ( !isdefined( game[ "botWarfare" ] ) )
{
game[ "botWarfare" ] = true;
}
level.bots_minsprintdistance = 315;
level.bots_minsprintdistance *= level.bots_minsprintdistance;
@ -133,12 +183,16 @@ handleBots()
level addBots();
while ( !isdefined( level.intermission ) || !level.intermission )
{
wait 0.05;
}
setdvar( "bots_manage_add", getBotArray().size );
if ( !getdvarint( "bots_main_kickBotsAtEnd" ) )
{
return;
}
bots = getBotArray();
@ -258,7 +312,9 @@ connected()
self endon( "disconnect" );
if ( !isdefined( self.pers[ "bot_host" ] ) )
{
self thread doHostCheck();
}
level.players[ level.players.size ] = self;
self thread onDisconnectAll();
@ -266,7 +322,9 @@ connected()
self thread onSpawnedAll();
if ( !self is_bot() )
{
return;
}
if ( !isdefined( self.pers[ "isBot" ] ) )
{
@ -307,25 +365,39 @@ watchBotDebugEvent()
big_str = "Bot Warfare debug: " + self.playername + ": " + msg;
if ( isdefined( str ) && isstring( str ) )
{
big_str += ", " + str;
}
if ( isdefined( b ) && isstring( b ) )
{
big_str += ", " + b;
}
if ( isdefined( c ) && isstring( c ) )
{
big_str += ", " + c;
}
if ( isdefined( d ) && isstring( d ) )
{
big_str += ", " + d;
}
if ( isdefined( e ) && isstring( e ) )
{
big_str += ", " + e;
}
if ( isdefined( f ) && isstring( f ) )
{
big_str += ", " + f;
}
if ( isdefined( g ) && isstring( g ) )
{
big_str += ", " + g;
}
BotBuiltinPrintConsole( big_str );
}
@ -383,10 +455,14 @@ diffBots_loop()
player = level.players[ i ];
if ( !isdefined( player.pers[ "team" ] ) )
{
continue;
}
if ( !player is_bot() )
{
continue;
}
if ( hard < var_hard )
{
@ -399,7 +475,9 @@ diffBots_loop()
player.pers[ "bots" ][ "skill" ][ "base" ] = 4;
}
else
{
player.pers[ "bots" ][ "skill" ][ "base" ] = 1;
}
}
}
else if ( var_skill != 0 && var_skill != 9 )
@ -411,7 +489,9 @@ diffBots_loop()
player = level.players[ i ];
if ( !player is_bot() )
{
continue;
}
player.pers[ "bots" ][ "skill" ][ "base" ] = var_skill;
}
@ -443,7 +523,9 @@ addBots_loop()
setdvar( "bots_manage_add", 0 );
if ( botsToAdd > 4 )
{
botsToAdd = 4;
}
for ( ; botsToAdd > 0; botsToAdd-- )
{
@ -455,7 +537,9 @@ addBots_loop()
fillMode = getdvarint( "bots_manage_fill_mode" );
if ( fillMode == 2 || fillMode == 3 )
{
setdvar( "bots_manage_fill", getGoodMapAmount() );
}
fillAmount = getdvarint( "bots_manage_fill" );
@ -469,24 +553,34 @@ addBots_loop()
player = level.players[ i ];
if ( player is_bot() )
{
bots++;
}
else
{
players++;
}
}
amount = bots;
if ( fillMode == 0 || fillMode == 2 )
{
amount += players;
}
if ( amount < fillAmount )
{
setdvar( "bots_manage_add", 1 );
}
else if ( amount > fillAmount && getdvarint( "bots_manage_fill_kick" ) )
{
tempBot = getBotToKick();
if ( isdefined( tempBot ) )
{
BotBuiltinCmdExec( "clientkick " + tempBot getentitynumber() );
}
}
}

View File

@ -13,10 +13,14 @@
init()
{
if ( getdvar( "bots_main_debug" ) == "" )
{
setdvar( "bots_main_debug", 0 );
}
if ( !getdvarint( "bots_main_debug" ) || !getdvarint( "bots_main_debug_wp_vis" ) )
{
return;
}
if ( !getdvarint( "developer" ) )
{
@ -37,16 +41,24 @@ init()
setdvar( "bots_manage_fill_spec", true );
if ( getdvar( "bots_main_debug_distance" ) == "" )
{
setdvar( "bots_main_debug_distance", 512.0 );
}
if ( getdvar( "bots_main_debug_cone" ) == "" )
{
setdvar( "bots_main_debug_cone", 0.65 );
}
if ( getdvar( "bots_main_debug_minDist" ) == "" )
{
setdvar( "bots_main_debug_minDist", 32.0 );
}
if ( getdvar( "bots_main_debug_drawThrough" ) == "" )
{
setdvar( "bots_main_debug_drawThrough", false );
}
thread load_waypoints();
@ -113,7 +125,9 @@ array_contains( arr, it )
for ( i = 0; i < arr.size; i++ )
{
if ( arr[ i ] == it )
{
return true;
}
}
return false;
@ -202,7 +216,9 @@ debug()
for ( i = 0; i < level.waypointcount; i++ )
{
if ( closest == -1 || closer( self.origin, level.waypoints[ i ].origin, level.waypoints[ closest ].origin ) )
{
closest = i;
}
wpOrg = level.waypoints[ i ].origin + ( 0, 0, 25 );
@ -228,7 +244,9 @@ debug()
}
if ( found )
{
continue;
}
}
line( wpOrg, linked[ h ].origin + ( 0, 0, 25 ), ( 1, 0, 1 ) );
@ -245,9 +263,13 @@ debug()
}
if ( distance( self.origin, level.waypoints[ closest ].origin ) < 64 )
{
self.closest = closest;
}
else
{
self.closest = -1;
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -40,25 +40,39 @@ connected()
onDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, modelIndex, psOffsetTime )
{
if ( !isdefined( self ) || !isdefined( self.team ) )
{
return;
}
if ( !isalive( self ) )
{
return;
}
if ( sMeansOfDeath == "MOD_FALLING" || sMeansOfDeath == "MOD_SUICIDE" )
{
return;
}
if ( iDamage <= 0 )
{
return;
}
if ( !isdefined( eAttacker ) || !isdefined( eAttacker.team ) )
{
return;
}
if ( eAttacker == self )
{
return;
}
if ( !isalive( eAttacker ) )
{
return;
}
self SetAttacker( eAttacker );
}
@ -409,12 +423,16 @@ changeToWeapon( weap )
level endon( "game_ended" );
if ( !self hasweapon( weap ) )
{
return false;
}
self switchtoweapon( weap );
if ( self getcurrentweapon() == weap )
{
return true;
}
self waittill_any_timeout( 5, "weapon_change" );
@ -429,29 +447,41 @@ doReloadCancel_loop()
ret = self waittill_any_return( "reload", "weapon_change" );
if ( self BotIsFrozen() )
{
return;
}
if ( self usebuttonpressed() )
{
return;
}
if ( self inLastStand() )
{
return;
}
curWeap = self getcurrentweapon();
if ( !self isWeaponPrimary( curWeap ) )
{
return;
}
if ( ret == "reload" )
{
// check single reloads
if ( self getweaponammoclip( curWeap ) < weaponclipsize( curWeap ) )
{
return;
}
}
// check difficulty
if ( self.pers[ "bots" ][ "skill" ][ "base" ] <= 3 )
{
return;
}
// check if got another weapon
weaponslist = self getweaponslistprimaries();
@ -463,17 +493,23 @@ doReloadCancel_loop()
weaponslist = array_remove( weaponslist, weapon );
if ( !self isWeaponPrimary( weapon ) )
{
continue;
}
if ( curWeap == weapon || weapon == "none" || weapon == "" )
{
continue;
}
weap = weapon;
break;
}
if ( weap == "" )
{
return;
}
// do the cancel
wait 0.1;

View File

@ -9,12 +9,18 @@ wait_for_builtins()
for ( i = 0; i < 20; i++ )
{
if ( isdefined( level.bot_builtins ) )
{
return true;
}
if ( i < 18 )
{
waittillframeend;
}
else
{
wait 0.05;
}
}
return false;
@ -262,7 +268,9 @@ doHostCheck()
self.pers[ "bot_host" ] = false;
if ( self is_bot() )
{
return;
}
result = false;
@ -276,7 +284,9 @@ doHostCheck()
}
if ( getdvar( "bots_main_firstIsHost" ) == self BotBuiltinGetGuid() + "" )
{
result = true;
}
}
DvarGUID = getdvar( "bots_main_GUIDs" );
@ -288,12 +298,16 @@ doHostCheck()
for ( i = 0; i < guids.size; i++ )
{
if ( self BotBuiltinGetGuid() + "" == guids[ i ] )
{
result = true;
}
}
}
if ( !self BotBuiltinIsHost() && !result )
{
return;
}
self.pers[ "bot_host" ] = true;
}
@ -389,7 +403,9 @@ BotGetRandom()
BotGetTargetRandom()
{
if ( !isdefined( self.bot.target ) )
{
return undefined;
}
return self.bot.target.rand;
}
@ -442,7 +458,9 @@ BotFreezeControls( what )
self.bot.isfrozen = what;
if ( what )
{
self notify( "kill_goal" );
}
}
/*
@ -461,7 +479,9 @@ BotStopMoving( what )
self.bot.stop_move = what;
if ( what )
{
self notify( "kill_goal" );
}
}
/*
@ -503,7 +523,9 @@ GetScriptGoal()
SetScriptGoal( goal, dist )
{
if ( !isdefined( dist ) )
{
dist = 16;
}
self.bot.script_goal = goal;
self.bot.script_goal_dist = dist;
@ -609,7 +631,9 @@ ClearScriptEnemy()
GetThreat()
{
if ( !isdefined( self.bot.target ) )
{
return undefined;
}
return self.bot.target.entity;
}
@ -642,10 +666,14 @@ getValidTube()
weap = weaps[ i ];
if ( !self getammocount( weap ) )
{
continue;
}
if ( issubstr( weap, "gl_" ) && !issubstr( weap, "_gl_" ) )
{
return weap;
}
}
return undefined;
@ -664,10 +692,14 @@ getValidGrenade()
for ( i = 0; i < grenadeTypes.size; i++ )
{
if ( !self hasweapon( grenadeTypes[ i ] ) )
{
continue;
}
if ( !self getammocount( grenadeTypes[ i ] ) )
{
continue;
}
possibles[ possibles.size ] = grenadeTypes[ i ];
}
@ -681,7 +713,9 @@ getValidGrenade()
PickRandom( arr )
{
if ( !arr.size )
{
return undefined;
}
return arr[ randomint( arr.size ) ];
}
@ -728,7 +762,9 @@ waittill_either_return_( str1, str2 )
waittill_either_return( str1, str2 )
{
if ( !isdefined( self waittill_either_return_( str1, str2 ) ) )
{
return str1;
}
return str2;
}
@ -743,24 +779,36 @@ waittill_any_timeout( timeOut, string1, string2, string3, string4, string5 )
( !isdefined( string3 ) || string3 != "death" ) &&
( !isdefined( string4 ) || string4 != "death" ) &&
( !isdefined( string5 ) || string5 != "death" ) )
{
self endon( "death" );
}
ent = spawnstruct();
if ( isdefined( string1 ) )
{
self thread waittill_string( string1, ent );
}
if ( isdefined( string2 ) )
{
self thread waittill_string( string2, ent );
}
if ( isdefined( string3 ) )
{
self thread waittill_string( string3, ent );
}
if ( isdefined( string4 ) )
{
self thread waittill_string( string4, ent );
}
if ( isdefined( string5 ) )
{
self thread waittill_string( string5, ent );
}
ent thread _timeout( timeOut );
@ -790,7 +838,9 @@ GetHostPlayer()
player = level.players[ i ];
if ( !player is_host() )
{
continue;
}
return player;
}
@ -806,36 +856,48 @@ bot_wait_for_host()
host = undefined;
while ( !isdefined( level ) || !isdefined( level.players ) )
{
wait 0.05;
}
for ( i = getdvarfloat( "bots_main_waitForHostTime" ); i > 0; i -= 0.05 )
{
host = GetHostPlayer();
if ( isdefined( host ) )
{
break;
}
wait 0.05;
}
if ( !isdefined( host ) )
{
return;
}
for ( i = getdvarfloat( "bots_main_waitForHostTime" ); i > 0; i -= 0.05 )
{
if ( isdefined( host.pers[ "team" ] ) )
{
break;
}
wait 0.05;
}
if ( !isdefined( host.pers[ "team" ] ) )
{
return;
}
for ( i = getdvarfloat( "bots_main_waitForHostTime" ); i > 0; i -= 0.05 )
{
if ( host.pers[ "team" ] == "allies" || host.pers[ "team" ] == "axis" )
{
break;
}
wait 0.05;
}
@ -872,20 +934,32 @@ Rectdistancesquared( origin )
dz = 0;
if ( origin[ 0 ] < self.x0 )
{
dx = origin[ 0 ] - self.x0;
}
else if ( origin[ 0 ] > self.x1 )
{
dx = origin[ 0 ] - self.x1;
}
if ( origin[ 1 ] < self.y0 )
{
dy = origin[ 1 ] - self.y0;
}
else if ( origin[ 1 ] > self.y1 )
{
dy = origin[ 1 ] - self.y1;
}
if ( origin[ 2 ] < self.z0 )
{
dz = origin[ 2 ] - self.z0;
}
else if ( origin[ 2 ] > self.z1 )
{
dz = origin[ 2 ] - self.z1;
}
return dx * dx + dy * dy + dz * dz;
}
@ -900,12 +974,18 @@ Round( x )
if ( abs( x ) - abs( y ) > 0.5 )
{
if ( x < 0 )
{
return y - 1;
}
else
{
return y + 1;
}
}
else
{
return y;
}
}
/*
@ -916,9 +996,13 @@ RoundUp( floatVal )
i = int( floatVal );
if ( i != floatVal )
{
return i + 1;
}
else
{
return i;
}
}
/*
@ -1176,7 +1260,9 @@ getBotToKick()
bots = getBotArray();
if ( !isdefined( bots ) || !isdefined( bots.size ) || bots.size <= 0 || !isdefined( bots[ 0 ] ) )
{
return undefined;
}
tokick = undefined;
@ -1186,13 +1272,19 @@ getBotToKick()
bot = bots[ i ];
if ( !isdefined( bot ) )
{
continue;
}
if ( !isdefined( bot.pers ) || !isdefined( bot.pers[ "bots" ] ) || !isdefined( bot.pers[ "bots" ][ "skill" ] ) || !isdefined( bot.pers[ "bots" ][ "skill" ][ "base" ] ) )
{
continue;
}
if ( isdefined( tokick ) && bot.pers[ "bots" ][ "skill" ][ "base" ] > tokick.pers[ "bots" ][ "skill" ][ "base" ] )
{
continue;
}
tokick = bot;
}
@ -1213,7 +1305,9 @@ getBotArray()
player = level.players[ i ];
if ( !player is_bot() )
{
continue;
}
result[ result.size ] = player;
}
@ -1278,7 +1372,9 @@ HeapInsert( item )
current = int( current / 2 );
if ( ![[ self.compare ]]( item, self.data[ current - 1 ] ) )
{
break;
}
self.data[ last - 1 ] = self.data[ current - 1 ];
self.data[ current - 1 ] = item;
@ -1294,15 +1390,23 @@ _HeapNextChild( node, hsize )
right = left + 1;
if ( left > hsize )
{
return -1;
}
if ( right > hsize )
{
return left;
}
if ( [[ self.compare ]]( self.data[ left - 1 ], self.data[ right - 1 ] ) )
{
return left;
}
else
{
return right;
}
}
/*
@ -1313,7 +1417,9 @@ HeapRemove()
remove = self.data.size;
if ( !remove )
{
return remove;
}
move = self.data[ remove - 1 ];
self.data[ 0 ] = move;
@ -1321,7 +1427,9 @@ HeapRemove()
remove--;
if ( !remove )
{
return remove;
}
last = 1;
next = self _HeapNextChild( 1, remove );
@ -1329,7 +1437,9 @@ HeapRemove()
while ( next != -1 )
{
if ( [[ self.compare ]]( move, self.data[ next - 1 ] ) )
{
break;
}
self.data[ last - 1 ] = self.data[ next - 1 ];
self.data[ next - 1 ] = move;
@ -1500,7 +1610,9 @@ isWeaponPrimary( weap )
for ( i = 0; i < weaps.size; i++ )
{
if ( weap == weaps[ i ] )
{
return true;
}
}
return false;
@ -1662,7 +1774,9 @@ debug_bounding_box_for_ent( color )
self endon( "debug_bounding_box_for_ent" );
if ( !isdefined( color ) )
{
color = ( randomfloatrange( 0, 1 ), randomfloatrange( 0, 1 ), randomfloatrange( 0, 1 ) );
}
while ( isdefined( self ) )
{