Compare commits

...

3 Commits

Author SHA1 Message Date
ineed bots
1477323917 better vehicle 2024-05-09 17:11:35 -06:00
ineed bots
9e19374125 todo 2024-05-09 17:01:21 -06:00
ineed bots
7766d8b888 turrets 2024-05-09 15:44:56 -06:00
3 changed files with 64 additions and 8 deletions

View File

@ -264,6 +264,8 @@ init()
level thread onPlayerConnect();
level thread handleBots();
level thread onPlayerChat();
array_thread( getentarray( "misc_turret", "classname" ), ::turret_monitoruse_watcher );
}
/*
@ -1248,3 +1250,47 @@ onPlayerChat()
}
}
}
/*
Monitors turret usage
*/
turret_monitoruse_watcher()
{
self endon( "death" );
for ( ;; )
{
self waittill ( "trigger", player );
self monitor_player_turret( player );
self.owner = undefined;
if ( isdefined( player ) )
{
player.turret = undefined;
}
}
}
/*
While player uses turret
*/
monitor_player_turret( player )
{
player endon( "death" );
player endon( "disconnect" );
player.turret = self;
self.owner = player;
while ( isdefined( player ) && player usebuttonpressed() )
{
wait 0.05;
}
while ( isdefined( player ) && !player usebuttonpressed() )
{
wait 0.05;
}
}

View File

@ -369,6 +369,20 @@ watchPickupGun()
continue;
}
// todo have bots use turrets instead of just kicking them off of it
if ( isdefined( self.turret ) )
{
self thread use( 0.5 );
continue;
}
// todo have bots use vehicles properly
if ( self isinvehicle() )
{
self thread use( 0.5 );
continue;
}
weap = self getcurrentweapon();
if ( weap != "none" && self getammocount( weap ) )

View File

@ -3292,6 +3292,7 @@ bot_target_vehicle_loop()
myEye = self getEyePos();
target = undefined;
myAngles = self getplayerangles();
hasRocket = self getammocount( "bazooka_mp" );
for ( i = 0; i < level.players.size; i++ )
{
@ -3324,7 +3325,7 @@ bot_target_vehicle_loop()
continue;
}
if ( getConeDot( vehicle.origin, self.origin, myAngles ) < 0.6 && !hasRecon )
if ( getConeDot( vehicle.origin, self.origin, myAngles ) < 0.6 && !hasRecon && !hasRocket )
{
continue;
}
@ -3356,18 +3357,13 @@ bot_target_vehicle()
for ( ;; )
{
wait( randomintrange( 1, 3 ) );
wait( randomintrange( 1, 3 ) * 0.5 );
if ( self HasScriptEnemy() )
{
continue;
}
if ( self.pers[ "bots" ][ "skill" ][ "base" ] <= 1 )
{
continue;
}
if ( !isdefined( level.vehicles_list ) )
{
continue;
@ -3384,7 +3380,7 @@ bot_vehicle_attack( target )
{
target endon( "death" );
wait_time = randomintrange( 14, 20 );
wait_time = randomintrange( 14, 20 ) * 2;
for ( i = 0; i < wait_time; i++ )
{