diff --git a/main_shared/maps/mp/bots/_bot_internal.gsc b/main_shared/maps/mp/bots/_bot_internal.gsc index bb456de..9121483 100644 --- a/main_shared/maps/mp/bots/_bot_internal.gsc +++ b/main_shared/maps/mp/bots/_bot_internal.gsc @@ -225,10 +225,32 @@ spawned() self thread onNewEnemy(); self thread doBotMovement(); 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 */ @@ -695,6 +717,7 @@ watch_grenade( grenade ) if ( self.bot.isfraggingafter || self.bot.issmokingafter ) continue; + self BotNotifyBotEvent( "throwback", "stop", grenade ); self thread frag(); } } @@ -1267,8 +1290,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" ) + { + if ( maps\mp\gametypes\_missions::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 ) ) { @@ -1397,8 +1425,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" ) + { + if ( maps\mp\gametypes\_missions::getWeaponClass( curweap ) == "weapon_projectile" ) + nadeAimOffset = dist / 16000; + else + nadeAimOffset = dist / 3000; + } aimpos = last_pos + ( 0, 0, self getEyeHeight() + nadeAimOffset ); conedot = getConeDot( aimpos, eyePos, angles ); @@ -1532,6 +1565,9 @@ canAds( dist, curweap ) if ( curweap == "none" ) return false; + if ( curweap == "c4_mp" ) + return RandomInt( 2 ); + if ( !getDvarInt( "bots_play_ads" ) ) return false; @@ -2176,12 +2212,12 @@ use( time ) if ( !isDefined( time ) ) time = 0.05; - self botAction( "+use" ); + // self botAction( "+use" ); if ( time ) wait time; - self botAction( "-use" ); + // self botAction( "-use" ); } /*