pick up guns

This commit is contained in:
ineed bots 2022-04-25 11:19:10 -06:00
parent f64ba9cccf
commit 918bb4020a
2 changed files with 40 additions and 6 deletions

View File

@ -161,10 +161,8 @@ You can find the ModDB release post [here](https://www.moddb.com/mods/bot-warfar
- Recoil for bots
- Use proper activate button for bombs, carepackages, etc
- Proper weapon swaps, including altmode
- Pick up weapons from ground
- Use static turrets in maps
- Proper use of pred missile
- Bots in ac130 have viewport issues (engine)
## Credits
- IW4x Team - https://github.com/XLabsProject/iw4x-client

View File

@ -472,10 +472,32 @@ spawned()
self thread walk();
self thread watchHoldBreath();
self thread watchGrenadeFire();
self thread watchPickupGun();
self notify( "bot_spawned" );
}
/*
watchPickupGun
*/
watchPickupGun()
{
self endon( "disconnect" );
self endon( "death" );
for ( ;; )
{
wait 1;
weap = self GetCurrentWeapon();
if ( weap != "none" && self GetAmmoCount( weap ) )
continue;
self thread use( 0.5 );
}
}
/*
Watches when the bot fires a grenade
*/
@ -682,6 +704,7 @@ grenade_danager_loop()
if ( !bulletTracePassed( myEye, frag.origin, false, frag.grenade ) )
continue;
self BotNotifyBotEvent( "throwback", "stop", frag );
self thread frag();
break;
}
@ -1435,8 +1458,13 @@ aim_loop()
if ( self.bot.isfraggingafter || self.bot.issmokingafter )
nadeAimOffset = dist / 3000;
else if ( curweap != "none" && weaponClass( curweap ) == "grenade" )
nadeAimOffset = dist / 16000;
else if ( curweap != "none" && ( weaponClass( curweap ) == "grenade" || curweap == "throwingknife_mp" ) )
{
if ( getWeaponClass( curweap ) == "weapon_projectile" )
nadeAimOffset = dist / 16000;
else
nadeAimOffset = dist / 3000;
}
if ( no_trace_time && ( !isDefined( self.bot.after_target ) || self.bot.after_target != target ) )
{
@ -1572,8 +1600,13 @@ aim_loop()
if ( self.bot.isfraggingafter || self.bot.issmokingafter )
nadeAimOffset = dist / 3000;
else if ( curweap != "none" && weaponClass( curweap ) == "grenade" )
nadeAimOffset = dist / 16000;
else if ( curweap != "none" && ( weaponClass( curweap ) == "grenade" || curweap == "throwingknife_mp" ) )
{
if ( getWeaponClass( curweap ) == "weapon_projectile" )
nadeAimOffset = dist / 16000;
else
nadeAimOffset = dist / 3000;
}
aimpos = last_pos + ( 0, 0, self getEyeHeight() + nadeAimOffset );
@ -1726,6 +1759,9 @@ canAds( dist, curweap )
if ( curweap == "none" )
return false;
if ( curweap == "c4_mp" )
return RandomInt( 2 );
if ( !getDvarInt( "bots_play_ads" ) )
return false;