mirror of
https://github.com/ineedbots/iw5_bot_warfare.git
synced 2025-04-25 23:29:12 +00:00
Bots play tdef and crouch with riot
This commit is contained in:
parent
da1deb6550
commit
1cfea049f1
@ -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
|
Loop
|
||||||
*/
|
*/
|
||||||
@ -457,7 +440,7 @@ watchRadar_loop()
|
|||||||
|
|
||||||
for ( i = level.players.size - 1; i >= 0; i-- )
|
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;
|
continue;
|
||||||
|
|
||||||
if ( !isReallyAlive( level.players[i] ) )
|
if ( !isReallyAlive( level.players[i] ) )
|
||||||
@ -485,6 +468,28 @@ watchRadar_loop()
|
|||||||
player.bot_isInRadar = true;
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1781,6 +1781,7 @@ start_bot_threads()
|
|||||||
|
|
||||||
self thread bot_conf();
|
self thread bot_conf();
|
||||||
self thread bot_grnd();
|
self thread bot_grnd();
|
||||||
|
self thread bot_tdef();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2830,6 +2831,8 @@ bot_watch_riot_weapons_loop()
|
|||||||
dist = DistanceSquared( threat.origin, self.origin );
|
dist = DistanceSquared( threat.origin, self.origin );
|
||||||
curWeap = self GetCurrentWeapon();
|
curWeap = self GetCurrentWeapon();
|
||||||
|
|
||||||
|
self BotCrouch();
|
||||||
|
|
||||||
if ( randomInt( 2 ) )
|
if ( randomInt( 2 ) )
|
||||||
{
|
{
|
||||||
nade = self getValidGrenade();
|
nade = self getValidGrenade();
|
||||||
@ -7818,3 +7821,72 @@ bot_grnd()
|
|||||||
self bot_grnd_loop();
|
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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -120,6 +120,14 @@ BotPressAttack( time )
|
|||||||
self maps\mp\bots\_bot_internal::pressFire( 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
|
Returns a random number thats different everytime it changes target
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user