From 7766d8b8888546735a9f940655fe053009e18f03 Mon Sep 17 00:00:00 2001 From: ineed bots Date: Thu, 9 May 2024 15:44:56 -0600 Subject: [PATCH] turrets --- maps/mp/bots/_bot.gsc | 46 ++++++++++++++++++++++++++++++++++ maps/mp/bots/_bot_internal.gsc | 7 ++++++ 2 files changed, 53 insertions(+) diff --git a/maps/mp/bots/_bot.gsc b/maps/mp/bots/_bot.gsc index 253f305..5dbdada 100644 --- a/maps/mp/bots/_bot.gsc +++ b/maps/mp/bots/_bot.gsc @@ -264,6 +264,8 @@ init() level thread onPlayerConnect(); level thread handleBots(); level thread onPlayerChat(); + + array_thread( getentarray( "misc_turret", "classname" ), ::turret_monitoruse_watcher ); } /* @@ -1248,3 +1250,47 @@ 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; + + while ( isdefined( player ) && player usebuttonpressed() ) + { + wait 0.05; + } + + while ( isdefined( player ) && !player usebuttonpressed() ) + { + wait 0.05; + } +} diff --git a/maps/mp/bots/_bot_internal.gsc b/maps/mp/bots/_bot_internal.gsc index 471419a..2f5cc06 100644 --- a/maps/mp/bots/_bot_internal.gsc +++ b/maps/mp/bots/_bot_internal.gsc @@ -368,6 +368,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();