From 022496a9ca6d0957958c4e764a8c8a72b270f1d0 Mon Sep 17 00:00:00 2001 From: ineedbots Date: Wed, 25 Aug 2021 11:01:42 -0600 Subject: [PATCH] fix returning flag oneflag --- raw/maps/mp/bots/_bot_script.gsc | 38 ++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/raw/maps/mp/bots/_bot_script.gsc b/raw/maps/mp/bots/_bot_script.gsc index 623f78d..8b3ea19 100644 --- a/raw/maps/mp/bots/_bot_script.gsc +++ b/raw/maps/mp/bots/_bot_script.gsc @@ -6308,6 +6308,18 @@ bot_cap() } } +/* + Gets the carriers ent num +*/ +getCarrierEntNum() +{ + carrierNum = -1; + if (isDefined(self.carrier)) + carrierNum = self.carrier getEntityNumber(); + + return carrierNum; +} + /* Bots go and get the flag */ @@ -6324,12 +6336,30 @@ bot_cap_get_flag( flag ) evt = self waittill_any_return( "goal", "bad_path", "new_goal" ); - wait 1; - - self.bot_lock_goal = false; - if ( evt != "new_goal" ) self ClearScriptGoal(); + + if ( evt != "goal" ) + { + self.bot_lock_goal = false; + return; + } + + self SetScriptGoal( self.origin, 64 ); + curCarrier = flag getCarrierEntNum(); + + while ( curCarrier == flag getCarrierEntNum() && self isTouching( flag.trigger ) ) + { + cur = flag.curProgress; + wait 0.5; + + if ( flag.curProgress == cur ) + break;//some enemy is near us, kill him + } + + self ClearScriptGoal(); + + self.bot_lock_goal = false; } /*