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" ); myEye = self gettagorigin( "j_head" );
myAngles = self getplayerangles(); 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 ) ) 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; 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. 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 ); daDist = distancesquared( self.origin, enemy.origin );
isObjDef = isdefined( obj ); isObjDef = isdefined( obj );
targetHead = undefined; canTargetEnemy = ( ( enemy checkTraceForBone( myEye, "j_head" ) ||
targetAnkleLeft = undefined; enemy checkTraceForBone( myEye, "j_ankle_le" ) ||
targetAnkleRight = undefined; enemy checkTraceForBone( myEye, "j_ankle_ri" ) )
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" ) )
&& ( getConeDot( enemy.origin, self.origin, myAngles ) >= myFov || && ( getConeDot( enemy.origin, self.origin, myAngles ) >= myFov ||
( isObjDef && obj.trace_time ) ) ( isObjDef && obj.trace_time ) )

View File

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