From af95d81775298db480ef2242d6e597ff8784a2f6 Mon Sep 17 00:00:00 2001 From: ineed bots Date: Mon, 25 Apr 2022 15:28:24 -0600 Subject: [PATCH] pickup weapons --- mods/bots/maps/mp/bots/_bot_internal.gsc | 26 ++++++++++++++++++++++-- mods/bots/maps/mp/bots/_bot_utility.gsc | 10 +++++++++ 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/mods/bots/maps/mp/bots/_bot_internal.gsc b/mods/bots/maps/mp/bots/_bot_internal.gsc index b5d9b72..aedfd85 100644 --- a/mods/bots/maps/mp/bots/_bot_internal.gsc +++ b/mods/bots/maps/mp/bots/_bot_internal.gsc @@ -300,10 +300,32 @@ spawned() self thread aim(); self thread watchHoldBreath(); self thread onNewEnemy(); + 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 ); + } +} + /* Sets the factor of distance for a weapon */ @@ -1050,7 +1072,7 @@ aim_loop() if ( !isDefined( bone ) ) bone = "j_spineupper"; - if ( self.bot.isfraggingafter || self.bot.issmokingafter ) + if ( self.bot.isfraggingafter || self.bot.issmokingafter || isSubStr( "_grenade_", curweap ) ) nadeAimOffset = dist / 3000; if ( no_trace_time && ( !isDefined( self.bot.after_target ) || self.bot.after_target != target ) ) @@ -1171,7 +1193,7 @@ aim_loop() last_pos = self.bot.after_target_pos; dist = DistanceSquared( self.origin, last_pos ); - if ( self.bot.isfraggingafter || self.bot.issmokingafter ) + if ( self.bot.isfraggingafter || self.bot.issmokingafter || isSubStr( "_grenade_", curweap ) ) nadeAimOffset = dist / 3000; aimpos = last_pos + ( 0, 0, self getEyeHeight() + nadeAimOffset ); diff --git a/mods/bots/maps/mp/bots/_bot_utility.gsc b/mods/bots/maps/mp/bots/_bot_utility.gsc index e90a019..71b22ce 100644 --- a/mods/bots/maps/mp/bots/_bot_utility.gsc +++ b/mods/bots/maps/mp/bots/_bot_utility.gsc @@ -437,6 +437,16 @@ getWeaponSlot( weap ) return "primaryb"; } +/* + cOD2 +*/ +GetAmmoCount( weap ) +{ + slot = self getWeaponSlot( weap ); + + return self GetWeaponSlotClipAmmo( slot ) + self GetWeaponSlotAmmo( slot ); +} + /* IsWeaponClipOnly cod2 */