always use braces

This commit is contained in:
ineed bots 2023-12-19 18:12:37 -06:00
parent 70fe1aa9f4
commit 8bff05aa17
4 changed files with 841 additions and 21 deletions

View File

@ -9,109 +9,177 @@ init()
level.bw_version = "2.1.0"; level.bw_version = "2.1.0";
if ( getcvar( "bots_main" ) == "" ) if ( getcvar( "bots_main" ) == "" )
{
setcvar( "bots_main", true ); setcvar( "bots_main", true );
}
if ( !getcvarint( "bots_main" ) ) if ( !getcvarint( "bots_main" ) )
{
return; return;
}
if ( !wait_for_builtins() ) if ( !wait_for_builtins() )
{
println( "FATAL: NO BUILT-INS FOR BOTS" ); println( "FATAL: NO BUILT-INS FOR BOTS" );
}
thread load_waypoints(); thread load_waypoints();
thread hook_callbacks(); thread hook_callbacks();
if ( getcvar( "bots_main_GUIDs" ) == "" ) if ( getcvar( "bots_main_GUIDs" ) == "" )
{
setcvar( "bots_main_GUIDs", "" ); //guids of players who will be given host powers, comma seperated setcvar( "bots_main_GUIDs", "" ); //guids of players who will be given host powers, comma seperated
}
if ( getcvar( "bots_main_firstIsHost" ) == "" ) if ( getcvar( "bots_main_firstIsHost" ) == "" )
{
setcvar( "bots_main_firstIsHost", true ); //first player to connect is a host setcvar( "bots_main_firstIsHost", true ); //first player to connect is a host
}
if ( getcvar( "bots_main_waitForHostTime" ) == "" ) if ( getcvar( "bots_main_waitForHostTime" ) == "" )
{
setcvar( "bots_main_waitForHostTime", 10.0 ); //how long to wait to wait for the host player setcvar( "bots_main_waitForHostTime", 10.0 ); //how long to wait to wait for the host player
}
if ( getcvar( "bots_main_kickBotsAtEnd" ) == "" ) if ( getcvar( "bots_main_kickBotsAtEnd" ) == "" )
{
setcvar( "bots_main_kickBotsAtEnd", false ); //kicks the bots at game end setcvar( "bots_main_kickBotsAtEnd", false ); //kicks the bots at game end
}
if ( getcvar( "bots_manage_add" ) == "" ) if ( getcvar( "bots_manage_add" ) == "" )
{
setcvar( "bots_manage_add", 0 ); //amount of bots to add to the game setcvar( "bots_manage_add", 0 ); //amount of bots to add to the game
}
if ( getcvar( "bots_manage_fill" ) == "" ) if ( getcvar( "bots_manage_fill" ) == "" )
{
setcvar( "bots_manage_fill", 0 ); //amount of bots to maintain setcvar( "bots_manage_fill", 0 ); //amount of bots to maintain
}
if ( getcvar( "bots_manage_fill_spec" ) == "" ) if ( getcvar( "bots_manage_fill_spec" ) == "" )
{
setcvar( "bots_manage_fill_spec", true ); //to count for fill if player is on spec team setcvar( "bots_manage_fill_spec", true ); //to count for fill if player is on spec team
}
if ( getcvar( "bots_manage_fill_mode" ) == "" ) if ( getcvar( "bots_manage_fill_mode" ) == "" )
{
setcvar( "bots_manage_fill_mode", 0 ); //fill mode, 0 adds everyone, 1 just bots, 2 maintains at maps, 3 is 2 with 1 setcvar( "bots_manage_fill_mode", 0 ); //fill mode, 0 adds everyone, 1 just bots, 2 maintains at maps, 3 is 2 with 1
}
if ( getcvar( "bots_manage_fill_kick" ) == "" ) if ( getcvar( "bots_manage_fill_kick" ) == "" )
{
setcvar( "bots_manage_fill_kick", false ); //kick bots if too many setcvar( "bots_manage_fill_kick", false ); //kick bots if too many
}
if ( getcvar( "bots_team" ) == "" ) if ( getcvar( "bots_team" ) == "" )
{
setcvar( "bots_team", "autoassign" ); //which team for bots to join setcvar( "bots_team", "autoassign" ); //which team for bots to join
}
if ( getcvar( "bots_team_amount" ) == "" ) if ( getcvar( "bots_team_amount" ) == "" )
{
setcvar( "bots_team_amount", 0 ); //amount of bots on axis team setcvar( "bots_team_amount", 0 ); //amount of bots on axis team
}
if ( getcvar( "bots_team_force" ) == "" ) if ( getcvar( "bots_team_force" ) == "" )
{
setcvar( "bots_team_force", false ); //force bots on team setcvar( "bots_team_force", false ); //force bots on team
}
if ( getcvar( "bots_team_mode" ) == "" ) if ( getcvar( "bots_team_mode" ) == "" )
{
setcvar( "bots_team_mode", 0 ); //counts just bots when 1 setcvar( "bots_team_mode", 0 ); //counts just bots when 1
}
if ( getcvar( "bots_skill" ) == "" ) if ( getcvar( "bots_skill" ) == "" )
{
setcvar( "bots_skill", 0 ); //0 is random, 1 is easy 7 is hard, 8 is custom, 9 is completely random setcvar( "bots_skill", 0 ); //0 is random, 1 is easy 7 is hard, 8 is custom, 9 is completely random
}
if ( getcvar( "bots_skill_axis_hard" ) == "" ) if ( getcvar( "bots_skill_axis_hard" ) == "" )
{
setcvar( "bots_skill_axis_hard", 0 ); //amount of hard bots on axis team setcvar( "bots_skill_axis_hard", 0 ); //amount of hard bots on axis team
}
if ( getcvar( "bots_skill_axis_med" ) == "" ) if ( getcvar( "bots_skill_axis_med" ) == "" )
{
setcvar( "bots_skill_axis_med", 0 ); setcvar( "bots_skill_axis_med", 0 );
}
if ( getcvar( "bots_skill_allies_hard" ) == "" ) if ( getcvar( "bots_skill_allies_hard" ) == "" )
{
setcvar( "bots_skill_allies_hard", 0 ); setcvar( "bots_skill_allies_hard", 0 );
}
if ( getcvar( "bots_skill_allies_med" ) == "" ) if ( getcvar( "bots_skill_allies_med" ) == "" )
{
setcvar( "bots_skill_allies_med", 0 ); setcvar( "bots_skill_allies_med", 0 );
}
if ( getcvar( "bots_skill_min" ) == "" ) if ( getcvar( "bots_skill_min" ) == "" )
{
setcvar( "bots_skill_min", 1 ); setcvar( "bots_skill_min", 1 );
}
if ( getcvar( "bots_skill_max" ) == "" ) if ( getcvar( "bots_skill_max" ) == "" )
{
setcvar( "bots_skill_max", 7 ); setcvar( "bots_skill_max", 7 );
}
if ( getcvar( "bots_loadout_rank" ) == "" ) // what rank the bots should be around, -1 is around the players, 0 is all random if ( getcvar( "bots_loadout_rank" ) == "" ) // what rank the bots should be around, -1 is around the players, 0 is all random
{
setcvar( "bots_loadout_rank", -1 ); setcvar( "bots_loadout_rank", -1 );
}
if ( getcvar( "bots_play_move" ) == "" ) //bots move if ( getcvar( "bots_play_move" ) == "" ) //bots move
{
setcvar( "bots_play_move", true ); setcvar( "bots_play_move", true );
}
if ( getcvar( "bots_play_knife" ) == "" ) //bots knife if ( getcvar( "bots_play_knife" ) == "" ) //bots knife
{
setcvar( "bots_play_knife", true ); setcvar( "bots_play_knife", true );
}
if ( getcvar( "bots_play_fire" ) == "" ) //bots fire if ( getcvar( "bots_play_fire" ) == "" ) //bots fire
{
setcvar( "bots_play_fire", true ); setcvar( "bots_play_fire", true );
}
if ( getcvar( "bots_play_nade" ) == "" ) //bots grenade if ( getcvar( "bots_play_nade" ) == "" ) //bots grenade
{
setcvar( "bots_play_nade", true ); setcvar( "bots_play_nade", true );
}
if ( getcvar( "bots_play_obj" ) == "" ) //bots play the obj if ( getcvar( "bots_play_obj" ) == "" ) //bots play the obj
{
setcvar( "bots_play_obj", true ); setcvar( "bots_play_obj", true );
}
if ( getcvar( "bots_play_camp" ) == "" ) //bots camp and follow if ( getcvar( "bots_play_camp" ) == "" ) //bots camp and follow
{
setcvar( "bots_play_camp", true ); setcvar( "bots_play_camp", true );
}
if ( getcvar( "bots_play_jumpdrop" ) == "" ) //bots jump and dropshot if ( getcvar( "bots_play_jumpdrop" ) == "" ) //bots jump and dropshot
{
setcvar( "bots_play_jumpdrop", true ); setcvar( "bots_play_jumpdrop", true );
}
if ( getcvar( "bots_play_ads" ) == "" ) //bot ads if ( getcvar( "bots_play_ads" ) == "" ) //bot ads
{
setcvar( "bots_play_ads", true ); setcvar( "bots_play_ads", true );
}
if ( getcvar( "bots_play_aim" ) == "" ) if ( getcvar( "bots_play_aim" ) == "" )
{
setcvar( "bots_play_aim", true ); setcvar( "bots_play_aim", true );
}
if ( !isdefined( game[ "botWarfare" ] ) ) if ( !isdefined( game[ "botWarfare" ] ) )
{
game[ "botWarfare" ] = true; game[ "botWarfare" ] = true;
}
level.defuseobject = undefined; level.defuseobject = undefined;
level.bots_smokelist = List(); level.bots_smokelist = List();
@ -210,8 +278,10 @@ init()
level.teambased = true; level.teambased = true;
if ( getcvar( "g_gametype" ) == "dm" ) if ( getcvar( "g_gametype" ) == "dm" )
{
level.teambased = false; level.teambased = false;
} }
}
/* /*
Starts the threads for bots. Starts the threads for bots.
@ -223,12 +293,16 @@ handleBots()
level addBots(); level addBots();
while ( !level.mapended ) while ( !level.mapended )
{
wait 0.05; wait 0.05;
}
setcvar( "bots_manage_add", getBotArray().size ); setcvar( "bots_manage_add", getBotArray().size );
if ( !getcvarint( "bots_main_kickBotsAtEnd" ) ) if ( !getcvarint( "bots_main_kickBotsAtEnd" ) )
{
return; return;
}
bots = getBotArray(); bots = getBotArray();
@ -333,7 +407,9 @@ watchWeapons()
self thread watchAmmoUsage( weap ); self thread watchAmmoUsage( weap );
while ( weap == self getcurrentweapon() ) while ( weap == self getcurrentweapon() )
{
wait 0.05; wait 0.05;
}
self notify( "weapon_change", self getcurrentweapon() ); self notify( "weapon_change", self getcurrentweapon() );
} }
@ -354,14 +430,20 @@ watchAmmoUsage( weap )
aCount = self getweaponslotclipammo( slot ); aCount = self getweaponslotclipammo( slot );
while ( aCount == self getweaponslotclipammo( slot ) ) while ( aCount == self getweaponslotclipammo( slot ) )
{
wait 0.05; wait 0.05;
}
if ( self getweaponslotclipammo( slot ) < aCount ) if ( self getweaponslotclipammo( slot ) < aCount )
{
self notify( "weapon_fired" ); self notify( "weapon_fired" );
}
else else
{
self notify( "reload" ); self notify( "reload" );
} }
} }
}
/* /*
CoD2 CoD2
@ -403,7 +485,9 @@ killTags()
if ( isdefined( self.tags ) ) if ( isdefined( self.tags ) )
{ {
for ( i = 0; i < self.tags.size; i++ ) for ( i = 0; i < self.tags.size; i++ )
{
self.tags[ i ] delete(); self.tags[ i ] delete();
}
self.tags = undefined; self.tags = undefined;
self.tagmap = undefined; self.tagmap = undefined;
@ -457,10 +541,14 @@ connected()
self thread onDisconnectPlayer(); self thread onDisconnectPlayer();
if ( !isdefined( self.pers[ "bot_host" ] ) ) if ( !isdefined( self.pers[ "bot_host" ] ) )
{
self thread doHostCheck(); self thread doHostCheck();
}
if ( !self is_bot() ) if ( !self is_bot() )
{
return; return;
}
if ( !isdefined( self.pers[ "isBot" ] ) ) if ( !isdefined( self.pers[ "isBot" ] ) )
{ {
@ -501,25 +589,39 @@ watchBotDebugEvent()
big_str = "Bot Warfare debug: " + self.name + ": " + msg; big_str = "Bot Warfare debug: " + self.name + ": " + msg;
if ( isdefined( str ) && isstring( str ) ) if ( isdefined( str ) && isstring( str ) )
{
big_str += ", " + str; big_str += ", " + str;
}
if ( isdefined( b ) && isstring( b ) ) if ( isdefined( b ) && isstring( b ) )
{
big_str += ", " + b; big_str += ", " + b;
}
if ( isdefined( c ) && isstring( c ) ) if ( isdefined( c ) && isstring( c ) )
{
big_str += ", " + c; big_str += ", " + c;
}
if ( isdefined( d ) && isstring( d ) ) if ( isdefined( d ) && isstring( d ) )
{
big_str += ", " + d; big_str += ", " + d;
}
if ( isdefined( e ) && isstring( e ) ) if ( isdefined( e ) && isstring( e ) )
{
big_str += ", " + e; big_str += ", " + e;
}
if ( isdefined( f ) && isstring( f ) ) if ( isdefined( f ) && isstring( f ) )
{
big_str += ", " + f; big_str += ", " + f;
}
if ( isdefined( g ) && isstring( g ) ) if ( isdefined( g ) && isstring( g ) )
{
big_str += ", " + g; big_str += ", " + g;
}
BotBuiltinPrintConsole( big_str ); BotBuiltinPrintConsole( big_str );
} }
@ -581,10 +683,14 @@ diffBots_loop()
player = level.players[ i ]; player = level.players[ i ];
if ( !isdefined( player.pers[ "team" ] ) ) if ( !isdefined( player.pers[ "team" ] ) )
{
continue; continue;
}
if ( !player is_bot() ) if ( !player is_bot() )
{
continue; continue;
}
if ( player.pers[ "team" ] == "axis" ) if ( player.pers[ "team" ] == "axis" )
{ {
@ -599,8 +705,10 @@ diffBots_loop()
player.pers[ "bots" ][ "skill" ][ "base" ] = 4; player.pers[ "bots" ][ "skill" ][ "base" ] = 4;
} }
else else
{
player.pers[ "bots" ][ "skill" ][ "base" ] = 1; player.pers[ "bots" ][ "skill" ][ "base" ] = 1;
} }
}
else if ( player.pers[ "team" ] == "allies" ) else if ( player.pers[ "team" ] == "allies" )
{ {
if ( allies_hard < var_allies_hard ) if ( allies_hard < var_allies_hard )
@ -614,10 +722,12 @@ diffBots_loop()
player.pers[ "bots" ][ "skill" ][ "base" ] = 4; player.pers[ "bots" ][ "skill" ][ "base" ] = 4;
} }
else else
{
player.pers[ "bots" ][ "skill" ][ "base" ] = 1; player.pers[ "bots" ][ "skill" ][ "base" ] = 1;
} }
} }
} }
}
else if ( var_skill != 0 && var_skill != 9 ) else if ( var_skill != 0 && var_skill != 9 )
{ {
playercount = level.players.size; playercount = level.players.size;
@ -627,7 +737,9 @@ diffBots_loop()
player = level.players[ i ]; player = level.players[ i ];
if ( !player is_bot() ) if ( !player is_bot() )
{
continue; continue;
}
player.pers[ "bots" ][ "skill" ][ "base" ] = var_skill; player.pers[ "bots" ][ "skill" ][ "base" ] = var_skill;
} }
@ -642,7 +754,9 @@ diffBots_loop()
player = level.players[ i ]; player = level.players[ i ];
if ( !player is_bot() ) if ( !player is_bot() )
{
continue; continue;
}
player.pers[ "bots" ][ "skill" ][ "base" ] = int( clamp( player.pers[ "bots" ][ "skill" ][ "base" ], min_diff, max_diff ) ); player.pers[ "bots" ][ "skill" ][ "base" ] = int( clamp( player.pers[ "bots" ][ "skill" ][ "base" ], min_diff, max_diff ) );
} }
@ -681,23 +795,33 @@ teamBots_loop()
player = level.players[ i ]; player = level.players[ i ];
if ( !isdefined( player.pers[ "team" ] ) ) if ( !isdefined( player.pers[ "team" ] ) )
{
continue; continue;
}
if ( player is_bot() ) if ( player is_bot() )
{ {
if ( player.pers[ "team" ] == "allies" ) if ( player.pers[ "team" ] == "allies" )
{
alliesbots++; alliesbots++;
}
else if ( player.pers[ "team" ] == "axis" ) else if ( player.pers[ "team" ] == "axis" )
{
axisbots++; axisbots++;
} }
}
else else
{ {
if ( player.pers[ "team" ] == "allies" ) if ( player.pers[ "team" ] == "allies" )
{
alliesplayers++; alliesplayers++;
}
else if ( player.pers[ "team" ] == "axis" ) else if ( player.pers[ "team" ] == "axis" )
{
axisplayers++; axisplayers++;
} }
} }
}
allies = alliesbots; allies = alliesbots;
axis = axisbots; axis = axisbots;
@ -719,9 +843,11 @@ teamBots_loop()
toTeam = "axis"; toTeam = "axis";
if ( axis > allies ) if ( axis > allies )
{
toTeam = "allies"; toTeam = "allies";
} }
} }
}
if ( toTeam != "autoassign" ) if ( toTeam != "autoassign" )
{ {
@ -732,20 +858,32 @@ teamBots_loop()
player = level.players[ i ]; player = level.players[ i ];
if ( !isdefined( player.pers[ "team" ] ) ) if ( !isdefined( player.pers[ "team" ] ) )
{
continue; continue;
}
if ( !player is_bot() ) if ( !player is_bot() )
{
continue; continue;
}
if ( player.pers[ "team" ] == toTeam ) if ( player.pers[ "team" ] == toTeam )
{
continue; continue;
}
if ( toTeam == "allies" ) if ( toTeam == "allies" )
{
player thread [[ level.allies ]](); player thread [[ level.allies ]]();
}
else if ( toTeam == "axis" ) else if ( toTeam == "axis" )
{
player thread [[ level.axis ]](); player thread [[ level.axis ]]();
}
else else
{
player thread [[ level.spectator ]](); player thread [[ level.spectator ]]();
}
break; break;
} }
@ -761,10 +899,14 @@ teamBots_loop()
player = level.players[ i ]; player = level.players[ i ];
if ( !isdefined( player.pers[ "team" ] ) ) if ( !isdefined( player.pers[ "team" ] ) )
{
continue; continue;
}
if ( !player is_bot() ) if ( !player is_bot() )
{
continue; continue;
}
if ( player.pers[ "team" ] == "axis" ) if ( player.pers[ "team" ] == "axis" )
{ {
@ -816,7 +958,9 @@ addBots_loop()
setcvar( "bots_manage_add", 0 ); setcvar( "bots_manage_add", 0 );
if ( botsToAdd > 64 ) if ( botsToAdd > 64 )
{
botsToAdd = 64; botsToAdd = 64;
}
for ( ; botsToAdd > 0; botsToAdd-- ) for ( ; botsToAdd > 0; botsToAdd-- )
{ {
@ -828,7 +972,9 @@ addBots_loop()
fillMode = getcvarint( "bots_manage_fill_mode" ); fillMode = getcvarint( "bots_manage_fill_mode" );
if ( fillMode == 2 || fillMode == 3 ) if ( fillMode == 2 || fillMode == 3 )
{
setcvar( "bots_manage_fill", getGoodMapAmount() ); setcvar( "bots_manage_fill", getGoodMapAmount() );
}
fillAmount = getcvarint( "bots_manage_fill" ); fillAmount = getcvarint( "bots_manage_fill" );
@ -843,12 +989,18 @@ addBots_loop()
player = level.players[ i ]; player = level.players[ i ];
if ( player is_bot() ) if ( player is_bot() )
{
bots++; bots++;
}
else if ( !isdefined( player.pers[ "team" ] ) || ( player.pers[ "team" ] != "axis" && player.pers[ "team" ] != "allies" ) ) else if ( !isdefined( player.pers[ "team" ] ) || ( player.pers[ "team" ] != "axis" && player.pers[ "team" ] != "allies" ) )
{
spec++; spec++;
}
else else
{
players++; players++;
} }
}
if ( !randomint( 999 ) ) if ( !randomint( 999 ) )
{ {
@ -870,28 +1022,42 @@ addBots_loop()
player = level.players[ i ]; player = level.players[ i ];
if ( player is_bot() ) if ( player is_bot() )
{
continue; continue;
}
if ( !isdefined( player.pers[ "team" ] ) ) if ( !isdefined( player.pers[ "team" ] ) )
{
continue; continue;
}
if ( player.pers[ "team" ] == "axis" ) if ( player.pers[ "team" ] == "axis" )
{
axisplayers++; axisplayers++;
}
else if ( player.pers[ "team" ] == "allies" ) else if ( player.pers[ "team" ] == "allies" )
{
alliesplayers++; alliesplayers++;
} }
}
result = fillAmount - abs( axisplayers - alliesplayers ) + bots; result = fillAmount - abs( axisplayers - alliesplayers ) + bots;
if ( players == 0 ) if ( players == 0 )
{ {
if ( bots < fillAmount ) if ( bots < fillAmount )
{
result = fillAmount - 1; result = fillAmount - 1;
}
else if ( bots > fillAmount ) else if ( bots > fillAmount )
{
result = fillAmount + 1; result = fillAmount + 1;
}
else else
{
result = fillAmount; result = fillAmount;
} }
}
bots = result; bots = result;
} }
@ -899,21 +1065,29 @@ addBots_loop()
amount = bots; amount = bots;
if ( fillMode == 0 || fillMode == 2 ) if ( fillMode == 0 || fillMode == 2 )
{
amount += players; amount += players;
}
if ( getcvarint( "bots_manage_fill_spec" ) ) if ( getcvarint( "bots_manage_fill_spec" ) )
{
amount += spec; amount += spec;
}
if ( amount < fillAmount ) if ( amount < fillAmount )
{
setcvar( "bots_manage_add", 1 ); setcvar( "bots_manage_add", 1 );
}
else if ( amount > fillAmount && getcvarint( "bots_manage_fill_kick" ) ) else if ( amount > fillAmount && getcvarint( "bots_manage_fill_kick" ) )
{ {
tempBot = getBotToKick(); tempBot = getBotToKick();
if ( isdefined( tempBot ) ) if ( isdefined( tempBot ) )
{
kick( tempBot getentitynumber() ); kick( tempBot getentitynumber() );
} }
} }
}
/* /*
A server thread for monitoring all bot's in game. Will add and kick bots according to server settings. A server thread for monitoring all bot's in game. Will add and kick bots according to server settings.
@ -995,10 +1169,14 @@ watchNade()
if ( gettime() - creationTime > 4000 ) if ( gettime() - creationTime > 4000 )
{ {
if ( lengthsquared( velocity ) <= 0.05 ) if ( lengthsquared( velocity ) <= 0.05 )
{
timeSlow += 0.05; timeSlow += 0.05;
}
else else
{
timeSlow = 0; timeSlow = 0;
} }
}
if ( timeSlow > 1 ) if ( timeSlow > 1 )
{ {
@ -1022,10 +1200,14 @@ watchNades_loop()
nade = nades[ i ]; nade = nades[ i ];
if ( !isdefined( nade ) ) if ( !isdefined( nade ) )
{
continue; continue;
}
if ( isdefined( nade.bot_audit ) ) if ( isdefined( nade.bot_audit ) )
{
continue; continue;
}
nade.bot_audit = true; nade.bot_audit = true;
@ -1060,14 +1242,18 @@ watchGameEnded()
if ( isdefined( level.roundended ) ) if ( isdefined( level.roundended ) )
{ {
if ( level.roundended ) if ( level.roundended )
{
break; break;
} }
}
else if ( isdefined( level.mapended ) ) else if ( isdefined( level.mapended ) )
{ {
if ( level.mapended ) if ( level.mapended )
{
break; break;
} }
} }
}
level.gameended = true; level.gameended = true;
level notify( "game_ended" ); level notify( "game_ended" );

File diff suppressed because it is too large Load Diff

View File

@ -38,28 +38,44 @@ onKilled( eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc,
self.lastkiller = undefined; self.lastkiller = undefined;
if ( !isdefined( self ) || !isdefined( self.team ) ) if ( !isdefined( self ) || !isdefined( self.team ) )
{
return; return;
}
if ( sMeansOfDeath == "MOD_FALLING" || sMeansOfDeath == "MOD_SUICIDE" ) if ( sMeansOfDeath == "MOD_FALLING" || sMeansOfDeath == "MOD_SUICIDE" )
{
return; return;
}
if ( iDamage <= 0 ) if ( iDamage <= 0 )
{
return; return;
}
if ( !isdefined( eAttacker ) || !isdefined( eAttacker.team ) ) if ( !isdefined( eAttacker ) || !isdefined( eAttacker.team ) )
{
return; return;
}
if ( eAttacker == self ) if ( eAttacker == self )
{
return; return;
}
if ( level.teambased && eAttacker.team == self.team ) if ( level.teambased && eAttacker.team == self.team )
{
return; return;
}
if ( !isdefined( eInflictor ) || eInflictor.classname != "player" ) if ( !isdefined( eInflictor ) || eInflictor.classname != "player" )
{
return; return;
}
if ( !isalive( eAttacker ) ) if ( !isalive( eAttacker ) )
{
return; return;
}
self.killerlocation = eAttacker.origin; self.killerlocation = eAttacker.origin;
self.lastkiller = eAttacker; self.lastkiller = eAttacker;
@ -71,31 +87,49 @@ onKilled( eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc,
onDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset ) onDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset )
{ {
if ( !isdefined( self ) || !isdefined( self.team ) ) if ( !isdefined( self ) || !isdefined( self.team ) )
{
return; return;
}
if ( !isalive( self ) ) if ( !isalive( self ) )
{
return; return;
}
if ( sMeansOfDeath == "MOD_FALLING" || sMeansOfDeath == "MOD_SUICIDE" ) if ( sMeansOfDeath == "MOD_FALLING" || sMeansOfDeath == "MOD_SUICIDE" )
{
return; return;
}
if ( iDamage <= 0 ) if ( iDamage <= 0 )
{
return; return;
}
if ( !isdefined( eAttacker ) || !isdefined( eAttacker.team ) ) if ( !isdefined( eAttacker ) || !isdefined( eAttacker.team ) )
{
return; return;
}
if ( eAttacker == self ) if ( eAttacker == self )
{
return; return;
}
if ( level.teambased && eAttacker.team == self.team ) if ( level.teambased && eAttacker.team == self.team )
{
return; return;
}
if ( !isdefined( eInflictor ) || eInflictor.classname != "player" ) if ( !isdefined( eInflictor ) || eInflictor.classname != "player" )
{
return; return;
}
if ( !isalive( eAttacker ) ) if ( !isalive( eAttacker ) )
{
return; return;
}
self bot_cry_for_help( eAttacker ); self bot_cry_for_help( eAttacker );
@ -131,10 +165,14 @@ bot_cry_for_help( attacker )
} }
if ( !isdefined( player.team ) ) if ( !isdefined( player.team ) )
{
continue; continue;
}
if ( !player IsPlayerModelOK() ) if ( !player IsPlayerModelOK() )
{
continue; continue;
}
if ( !isalive( player ) ) if ( !isalive( player ) )
{ {
@ -472,17 +510,23 @@ teamWatch()
for ( ;; ) for ( ;; )
{ {
while ( !isdefined( self.pers[ "team" ] ) || !allowTeamChoice() ) while ( !isdefined( self.pers[ "team" ] ) || !allowTeamChoice() )
{
wait .05; wait .05;
}
wait 0.1; wait 0.1;
if ( self.team != "axis" && self.team != "allies" ) if ( self.team != "axis" && self.team != "allies" )
{
self notify( "menuresponse", game[ "menu_team" ], getcvar( "bots_team" ) ); self notify( "menuresponse", game[ "menu_team" ], getcvar( "bots_team" ) );
}
while ( isdefined( self.pers[ "team" ] ) ) while ( isdefined( self.pers[ "team" ] ) )
{
wait .05; wait .05;
} }
} }
}
/* /*
Chooses a random class Chooses a random class
@ -552,19 +596,25 @@ classWatch()
for ( ;; ) for ( ;; )
{ {
while ( !isdefined( self.pers[ "team" ] ) || !allowClassChoice() ) while ( !isdefined( self.pers[ "team" ] ) || !allowClassChoice() )
{
wait .05; wait .05;
}
wait 0.5; wait 0.5;
if ( !isdefined( self.pers[ "weapon" ] ) || self.pers[ "weapon" ] == "" || !isdefined( self.bot_change_class ) ) if ( !isdefined( self.pers[ "weapon" ] ) || self.pers[ "weapon" ] == "" || !isdefined( self.bot_change_class ) )
{
self notify( "menuresponse", game[ "menu_weapon_" + self.team ], self chooseRandomClass() ); self notify( "menuresponse", game[ "menu_weapon_" + self.team ], self chooseRandomClass() );
}
self.bot_change_class = true; self.bot_change_class = true;
while ( isdefined( self.pers[ "team" ] ) && isdefined( self.pers[ "weapon" ] ) && self.pers[ "weapon" ] != "" && isdefined( self.bot_change_class ) ) while ( isdefined( self.pers[ "team" ] ) && isdefined( self.pers[ "weapon" ] ) && self.pers[ "weapon" ] != "" && isdefined( self.bot_change_class ) )
{
wait .05; wait .05;
} }
} }
}
/* /*
When the bot spawns. When the bot spawns.
@ -578,7 +628,9 @@ onSpawned()
self waittill( "spawned_player" ); self waittill( "spawned_player" );
if ( randomint( 100 ) <= self.pers[ "bots" ][ "behavior" ][ "class" ] ) if ( randomint( 100 ) <= self.pers[ "bots" ][ "behavior" ][ "class" ] )
{
self.bot_change_class = undefined; self.bot_change_class = undefined;
}
self.bot_lock_goal = false; self.bot_lock_goal = false;
self.help_time = undefined; self.help_time = undefined;

File diff suppressed because it is too large Load Diff