diff --git a/maps/mp/bots/_bot.gsc b/maps/mp/bots/_bot.gsc index 44e56e0..fee1634 100644 --- a/maps/mp/bots/_bot.gsc +++ b/maps/mp/bots/_bot.gsc @@ -285,6 +285,8 @@ init() level thread handleBots(); level thread onPlayerChat(); + + array_thread( getentarray( "misc_turret", "classname" ), ::turret_monitoruse_watcher ); } /* @@ -1366,3 +1368,39 @@ onPlayerChat() } } } + +/* + Monitors turret usage +*/ +turret_monitoruse_watcher() +{ + self endon( "death" ); + + for ( ;; ) + { + self waittill ( "trigger", player ); + + self monitor_player_turret( player ); + + self.owner = undefined; + + if ( isdefined( player ) ) + { + player.turret = undefined; + } + } +} + +/* + While player uses turret +*/ +monitor_player_turret( player ) +{ + player endon( "death" ); + player endon( "disconnect" ); + + player.turret = self; + self.owner = player; + + self waittill( "turret_deactivate" ); +} diff --git a/maps/mp/bots/_bot_internal.gsc b/maps/mp/bots/_bot_internal.gsc index 46fc2d2..e33c52c 100644 --- a/maps/mp/bots/_bot_internal.gsc +++ b/maps/mp/bots/_bot_internal.gsc @@ -466,7 +466,7 @@ getRemoteBoostTime() case 7: return 500; - + default: return 500; } @@ -683,6 +683,13 @@ watchPickupGun() continue; } + // todo have bots use turrets instead of just kicking them off of it + if ( isdefined( self.turret ) ) + { + self thread use( 0.5 ); + continue; + } + weap = self getcurrentweapon(); if ( weap != "none" && self getammocount( weap ) )