1
0
mirror of https://github.com/ineedbots/iw5_bot_warfare.git synced 2025-06-28 23:21:51 +00:00

bot lunge

This commit is contained in:
ineed bots
2023-12-10 05:50:01 -06:00
parent 814cd9609e
commit 9a0db18829
5 changed files with 69 additions and 8 deletions

View File

@ -131,6 +131,7 @@ resetBotVars()
self.bot.issmokingafter = false;
self.bot.isknifing = false;
self.bot.isknifingafter = false;
self.bot.knifing_target = undefined;
self.bot.semi_time = false;
self.bot.jump_time = undefined;
@ -756,7 +757,7 @@ doBotMovement_loop( data )
}
// move!
if ( self.bot.wantsprint && self.bot.issprinting )
if ( ( self.bot.wantsprint && self.bot.issprinting ) || isDefined( self.bot.knifing_target ) )
dir = ( 127, dir[1], 0 );
self BotBuiltinBotMovement( int( dir[0] ), int( dir[1] ) );
@ -1643,7 +1644,7 @@ aim_loop()
}
else
{
if ( self canAds( dist, curweap ) )
if ( self canFire( curweap ) && self isInRange( dist, curweap ) && self canAds( dist, curweap ) )
{
if ( !self.bot.is_cur_sniper || !self.pers["bots"]["behavior"]["quickscope"] )
self thread pressAds();
@ -1669,7 +1670,9 @@ aim_loop()
conedot = getConeDot( aimpos, eyePos, angles );
if ( !nadeAimOffset && conedot > 0.999 && lengthsquared( aimoffset ) < 0.05 )
if ( isDefined( self.bot.knifing_target ) )
self thread bot_lookat( target getTagOrigin( "j_spine4" ), 0.05 );
else if ( !nadeAimOffset && conedot > 0.999 && lengthsquared( aimoffset ) < 0.05 )
self thread bot_lookat( aimpos, 0.05 );
else
self thread bot_lookat( aimpos, aimspeed, target getVelocity(), true );
@ -1694,7 +1697,7 @@ aim_loop()
if ( ( isplay || target.classname == "misc_turret" ) && !self.bot.isknifingafter && conedot > 0.9 && dist < knifeDist && trace_time > reaction_time && !usingRemote && getDvarInt( "bots_play_knife" ) )
{
self clear_bot_after_target();
self thread knife();
self thread knife( target );
return;
}
@ -2491,16 +2494,53 @@ pressfrag()
self BotBuiltinBotAction( "-frag" );
}
/*
Performs melee target
*/
do_knife_target( target )
{
self endon( "death" );
self endon( "disconnect" );
self endon( "bot_knife" );
if ( !isDefined( target ) || !isPlayer( target ) )
{
self.bot.knifing_target = undefined;
self BotBuiltinBotMeleeParams( 0, 0 );
return;
}
dist = distance( target.origin, self.origin );
if ( dist > getDvarFloat( "aim_automelee_range" ) )
{
self.bot.knifing_target = undefined;
self BotBuiltinBotMeleeParams( 0, 0 );
return;
}
self.bot.knifing_target = target;
self BotBuiltinBotMeleeParams( target getEntityNumber(), dist );
wait 1;
self.bot.knifing_target = undefined;
self BotBuiltinBotMeleeParams( 0, 0 );
}
/*
Bot will knife.
*/
knife()
knife( target )
{
self endon( "death" );
self endon( "disconnect" );
self notify( "bot_knife" );
self endon( "bot_knife" );
self thread do_knife_target( target );
self.bot.isknifing = true;
self.bot.isknifingafter = true;