Bots play tdef and crouch with riot

This commit is contained in:
ineed bots 2022-04-03 14:32:06 -06:00
parent da1deb6550
commit 1cfea049f1
3 changed files with 103 additions and 18 deletions

View File

@ -394,23 +394,6 @@ auditModels()
}
}
/*
Does our flag have a radar?
*/
flag_has_radar()
{
if ( !isDefined( level.gameFlag ) || !isDefined( level.gameFlag.currentCarrier ) )
return false;
if ( level.gameFlag.currentCarrier != self )
return false;
if ( !isDefined( level.gameFlag.portable_radar ) )
return false;
return true;
}
/*
Loop
*/
@ -457,7 +440,7 @@ watchRadar_loop()
for ( i = level.players.size - 1; i >= 0; i-- )
{
if ( !isDefined( level.players[i].personalRadar ) && !level.players[i] flag_has_radar() )
if ( !isDefined( level.players[i].personalRadar ) )
continue;
if ( !isReallyAlive( level.players[i] ) )
@ -485,6 +468,28 @@ watchRadar_loop()
player.bot_isInRadar = true;
}
}
if ( isDefined( level.gameFlag ) && isDefined( level.gameFlag.carrier ) && isDefined( level.gameFlag.portable_radar ) )
{
for ( h = level.players.size - 1; h >= 0; h-- )
{
player = level.players[h];
if ( !isReallyAlive( player ) )
continue;
if ( level.teamBased && level.gameFlag.carrier.team != player.team )
continue;
if ( player _hasPerk( "specialty_coldblooded" ) )
continue;
if ( DistanceSquared( player.origin, level.gameFlag.carrier.origin ) > 256 * 256 )
continue;
player.bot_isInRadar = true;
}
}
}
/*

View File

@ -1781,6 +1781,7 @@ start_bot_threads()
self thread bot_conf();
self thread bot_grnd();
self thread bot_tdef();
}
}
@ -2830,6 +2831,8 @@ bot_watch_riot_weapons_loop()
dist = DistanceSquared( threat.origin, self.origin );
curWeap = self GetCurrentWeapon();
self BotCrouch();
if ( randomInt( 2 ) )
{
nade = self getValidGrenade();
@ -7818,3 +7821,72 @@ bot_grnd()
self bot_grnd_loop();
}
}
/*
Loop
*/
bot_tdef_loop()
{
if ( isDefined( level.gameFlag.carrier ) )
{
if ( level.gameFlag maps\mp\gametypes\_gameobjects::getOwnerTeam() == level.otherTeam[self.team] )
{
// go kill
self SetScriptGoal( level.gameFlag.carrier.origin, 64 );
self thread bot_escort_obj( level.gameFlag, level.gameFlag.carrier );
if ( self waittill_any_return( "goal", "bad_path", "new_goal" ) != "new_goal" )
self ClearScriptGoal();
}
else if ( level.gameFlag.carrier != self )
{
// go protect
if ( self HasScriptGoal() )
return;
if ( DistanceSquared( level.gameFlag.carrier.origin, self.origin ) <= 1024 * 1024 )
return;
self SetScriptGoal( level.gameFlag.carrier.origin, 256 );
self thread bot_escort_obj( level.gameFlag, level.gameFlag.carrier );
if ( self waittill_any_return( "goal", "bad_path", "new_goal" ) != "new_goal" )
self ClearScriptGoal();
}
return;
}
//go get it
self bot_cap_get_flag( level.gameFlag );
}
/*
Bots play groundzone
*/
bot_tdef()
{
self endon( "death" );
self endon( "disconnect" );
level endon( "game_ended" );
if ( level.gametype != "tdef" )
return;
for ( ;; )
{
wait( randomintrange( 1, 3 ) );
if ( self IsUsingRemote() || self.bot_lock_goal )
{
continue;
}
if ( !isdefined( level.gameFlag ) )
{
continue;
}
self bot_tdef_loop();
}
}

View File

@ -120,6 +120,14 @@ BotPressAttack( time )
self maps\mp\bots\_bot_internal::pressFire( time );
}
/*
Bot will crouch
*/
BotCrouch()
{
self maps\mp\bots\_bot_internal::crouch();
}
/*
Returns a random number thats different everytime it changes target
*/