some cleanup

This commit is contained in:
ineed bots 2024-04-04 14:18:25 -06:00
parent 680440946f
commit 5020458595
3 changed files with 26 additions and 36 deletions

View File

@ -213,7 +213,7 @@ debug()
myEye = self gettagorigin( "j_head" );
myAngles = self getplayerangles();
for ( i = 0; i < level.waypointcount; i++ )
for ( i = level.waypoints.size - 1; i >= 0; i-- )
{
if ( closest == -1 || closer( self.origin, level.waypoints[ i ].origin, level.waypoints[ closest ].origin ) )
{

View File

@ -904,6 +904,28 @@ canAds( dist, curweap )
return true;
}
/*
Returns true if myEye can see the bone of self
*/
checkTraceForBone( myEye, bone )
{
if ( !self targetIsDog() && self targetIsGibbed() )
{
bone = "j_spinelower";
}
boneLoc = self gettagorigin( bone );
if ( !isdefined( boneLoc ) )
{
return false;
}
trace = bullettrace( myEye, boneLoc, false, undefined );
return ( sighttracepassed( myEye, boneLoc, false, undefined ) && ( trace[ "fraction" ] >= 1.0 || trace[ "surfacetype" ] == "glass" ) );
}
/*
The main target thread, will update the bot's main target. Will auto target enemy players and handle script targets.
*/
@ -997,40 +1019,9 @@ target_loop()
daDist = distancesquared( self.origin, enemy.origin );
isObjDef = isdefined( obj );
targetHead = undefined;
targetAnkleLeft = undefined;
targetAnkleRight = undefined;
if ( enemy targetIsDog() )
{
targetHead = enemy gettagorigin( "j_head" );
targetAnkleLeft = enemy gettagorigin( "j_ankle_le" );
targetAnkleRight = enemy gettagorigin( "j_ankle_ri" );
}
else if ( !enemy targetIsGibbed() )
{
targetHead = enemy gettagorigin( "j_head" );
targetAnkleLeft = enemy gettagorigin( "j_ankle_le" );
targetAnkleRight = enemy gettagorigin( "j_ankle_ri" );
}
else
{
targetHead = enemy gettagorigin( "j_spinelower" );
targetAnkleLeft = enemy gettagorigin( "j_spinelower" );
targetAnkleRight = enemy gettagorigin( "j_spinelower" );
}
traceHead = bullettrace( myEye, targetHead, false, enemy );
traceAnkleLeft = bullettrace( myEye, targetAnkleLeft, false, enemy );
traceAnkleRight = bullettrace( myEye, targetAnkleRight, false, enemy );
canTargetEnemy = ( ( sighttracepassed( myEye, targetHead, false, enemy ) ||
sighttracepassed( myEye, targetAnkleLeft, false, enemy ) ||
sighttracepassed( myEye, targetAnkleRight, false, enemy ) )
&& ( ( traceHead[ "fraction" ] >= 1.0 || traceHead[ "surfacetype" ] == "glass" ) ||
( traceAnkleLeft[ "fraction" ] >= 1.0 || traceAnkleLeft[ "surfacetype" ] == "glass" ) ||
( traceAnkleRight[ "fraction" ] >= 1.0 || traceAnkleRight[ "surfacetype" ] == "glass" ) )
canTargetEnemy = ( ( enemy checkTraceForBone( myEye, "j_head" ) ||
enemy checkTraceForBone( myEye, "j_ankle_le" ) ||
enemy checkTraceForBone( myEye, "j_ankle_ri" ) )
&& ( getConeDot( enemy.origin, self.origin, myAngles ) >= myFov ||
( isObjDef && obj.trace_time ) )

View File

@ -1236,7 +1236,6 @@ load_waypoints()
level.bot_ignore_links = bot_ignore_links;
level.waypoints = getallnodes();
level.waypointcount = level.waypoints.size;
level.waypointsinplayablearea = [];
level.waypointsinplayablearea = get_nodes_in_playable_area();