From 8ee6e9888c00e2806409c04a3f01fa660f8e04a1 Mon Sep 17 00:00:00 2001 From: ineed bots Date: Fri, 8 Apr 2022 23:56:38 -0600 Subject: [PATCH] better stuck --- userraw/maps/mp/bots/_bot_internal.gsc | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/userraw/maps/mp/bots/_bot_internal.gsc b/userraw/maps/mp/bots/_bot_internal.gsc index a9faae5..51a534b 100644 --- a/userraw/maps/mp/bots/_bot_internal.gsc +++ b/userraw/maps/mp/bots/_bot_internal.gsc @@ -2145,11 +2145,11 @@ movetowards( goal ) { self botMoveTo( goal ); - if ( time > 3500 ) + if ( time > 3000 ) { time = 0; - if ( distanceSquared( self.origin, lastOri ) < 128 ) + if ( distanceSquared( self.origin, lastOri ) < 32 * 32 ) { self thread knife(); wait 0.5; @@ -2161,6 +2161,9 @@ movetowards( goal ) self botMoveTo( randomDir ); wait stucks; self stand(); + + self.bot.last_next_wp = -1; + self.bot.last_second_next_wp = -1; } lastOri = self.origin; @@ -2169,11 +2172,22 @@ movetowards( goal ) { self thread doMantle(); } - else if ( time > 2500 ) + else if ( time == 2000 ) { - if ( distanceSquared( self.origin, lastOri ) < 128 ) + if ( distanceSquared( self.origin, lastOri ) < 32 * 32 ) self crouch(); } + else if ( time == 1750 ) + { + if ( distanceSquared( self.origin, lastOri ) < 32 * 32 ) + { + // check if directly above or below + if ( abs( goal[2] - self.origin[2] ) > 64 && getConeDot( goal + ( 1, 1, 0 ), self.origin + ( -1, -1, 0 ), VectorToAngles( ( goal[0], goal[1], self.origin[2] ) - self.origin ) ) < 0.64 && DistanceSquared2D(self.origin, goal) < 32 * 32 ) + { + stucks = 2; + } + } + } wait 0.05; time += 50; @@ -2188,7 +2202,7 @@ movetowards( goal ) else tempGoalDist = level.bots_goalDistance; - if ( stucks == 2 ) + if ( stucks >= 2 ) self notify( "bad_path_internal" ); }