mirror of
https://github.com/JezuzLizard/t4sp_bot_warfare.git
synced 2025-05-09 14:04:53 +00:00
always use curly braces
This commit is contained in:
parent
9e2025e86a
commit
4aba1289f2
@ -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() );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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
@ -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;
|
||||
|
@ -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 ) )
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user