From d98a0dbce90e861041e7245aa0c4379ccb3bf102 Mon Sep 17 00:00:00 2001 From: ineed bots Date: Mon, 25 Apr 2022 11:15:23 -0600 Subject: [PATCH] pickup guns --- raw/maps/mp/bots/_bot_internal.gsc | 44 +++++++++++++++++++++++++++--- 1 file changed, 40 insertions(+), 4 deletions(-) diff --git a/raw/maps/mp/bots/_bot_internal.gsc b/raw/maps/mp/bots/_bot_internal.gsc index 3e4047e..faf8a3b 100644 --- a/raw/maps/mp/bots/_bot_internal.gsc +++ b/raw/maps/mp/bots/_bot_internal.gsc @@ -577,10 +577,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 */ @@ -810,6 +832,7 @@ grenade_danager_loop() if ( !bulletTracePassed( myEye, frag.origin, false, frag.grenade ) ) continue; + self BotNotifyBotEvent( "throwback", "stop", frag ); self thread frag(); break; } @@ -1577,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; + } if ( no_trace_time && ( !isDefined( self.bot.after_target ) || self.bot.after_target != target ) ) { @@ -1711,8 +1739,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 ); @@ -1865,6 +1898,9 @@ canAds( dist, curweap ) if ( curweap == "none" || curweap == "c4death_mp" ) return false; + if ( curweap == "c4_mp" ) + return RandomInt( 2 ); + if ( !getDvarInt( "bots_play_ads" ) ) return false;