diff --git a/maps/mp/bots/_bot_internal.gsc b/maps/mp/bots/_bot_internal.gsc index 7162066..d41bfaa 100644 --- a/maps/mp/bots/_bot_internal.gsc +++ b/maps/mp/bots/_bot_internal.gsc @@ -159,6 +159,8 @@ resetBotVars() self.bot.cur_weap_dist_multi = 1; self.bot.is_cur_sniper = false; + self.bot.prio_objective = false; + self.bot.rand = randomInt( 100 ); self BotBuiltinBotStop(); @@ -1280,7 +1282,7 @@ aim_loop() aimspeed *= 1 + adsAimSpeedFact * adsAmount; } - if ( isDefined( self.bot.target ) && isDefined( self.bot.target.entity ) ) + if ( isDefined( self.bot.target ) && isDefined( self.bot.target.entity ) && !( self.bot.prio_objective && isDefined( self.bot.script_aimpos ) ) ) { no_trace_time = self.bot.target.no_trace_time; no_trace_look_time = self.pers["bots"]["skill"]["no_trace_look_time"]; @@ -1650,7 +1652,7 @@ killWalkCauseNoWaypoints() */ walk_loop() { - hasTarget = isDefined( self.bot.target ) && isDefined( self.bot.target.entity ); + hasTarget = isDefined( self.bot.target ) && isDefined( self.bot.target.entity ) && !self.bot.prio_objective; if ( hasTarget ) { diff --git a/maps/mp/bots/_bot_utility.gsc b/maps/mp/bots/_bot_utility.gsc index 89f6fd7..cc8225f 100644 --- a/maps/mp/bots/_bot_utility.gsc +++ b/maps/mp/bots/_bot_utility.gsc @@ -395,6 +395,32 @@ ClearScriptGoal() self SetScriptGoal( undefined, 0 ); } +/* + Returns whether the bot has a priority objective +*/ +HasPriorityObjective() +{ + return self.bot.prio_objective; +} + +/* + Sets the bot to prioritize the objective over targeting enemies +*/ +SetPriorityObjective() +{ + self.bot.prio_objective = true; + self notify( "kill_goal" ); +} + +/* + Clears the bot's priority objective to allow the bot to target enemies automatically again +*/ +ClearPriorityObjective() +{ + self.bot.prio_objective = false; + self notify( "kill_goal" ); +} + /* Sets the aim position of the bot */