From 24c1908c85166dfbdc9632e336d191feb708bd2d Mon Sep 17 00:00:00 2001 From: ineed bots Date: Tue, 30 Apr 2024 11:20:18 -0600 Subject: [PATCH] some updates --- maps/mp/bots/_bot.gsc | 10 +++++----- maps/mp/bots/_bot_internal.gsc | 6 +++--- maps/mp/bots/_bot_script.gsc | 8 +++++++- maps/mp/bots/_bot_utility.gsc | 11 +++++++++++ scripts/mp/bots_adapter_cod4x.gsc | 7 +++++++ 5 files changed, 33 insertions(+), 9 deletions(-) diff --git a/maps/mp/bots/_bot.gsc b/maps/mp/bots/_bot.gsc index 672a967..32e7849 100644 --- a/maps/mp/bots/_bot.gsc +++ b/maps/mp/bots/_bot.gsc @@ -1027,11 +1027,11 @@ addBots_loop() if ( fillMode == 0 || fillMode == 2 ) { amount += players; - } - - if ( getdvarint( "bots_manage_fill_spec" ) ) - { - amount += spec; + + if ( getdvarint( "bots_manage_fill_spec" ) ) + { + amount += spec; + } } if ( amount < fillAmount ) diff --git a/maps/mp/bots/_bot_internal.gsc b/maps/mp/bots/_bot_internal.gsc index ca9f6e4..c76cccd 100644 --- a/maps/mp/bots/_bot_internal.gsc +++ b/maps/mp/bots/_bot_internal.gsc @@ -1600,7 +1600,7 @@ aim_loop() { self thread bot_lookat( target gettagorigin( "j_spine4" ), 0.05 ); } - else if ( !nadeAimOffset && conedot > 0.999 && lengthsquared( aimoffset ) < 0.05 ) + else if ( !nadeAimOffset && conedot > 0.999995 && lengthsquared( aimoffset ) < 0.05 ) { self thread bot_lookat( aimpos, 0.05 ); } @@ -1618,7 +1618,7 @@ aim_loop() conedot = getConeDot( aimpos, eyePos, angles ); - if ( !nadeAimOffset && conedot > 0.999 && lengthsquared( aimoffset ) < 0.05 ) + if ( !nadeAimOffset && conedot > 0.999995 && lengthsquared( aimoffset ) < 0.05 ) { self thread bot_lookat( aimpos, 0.05 ); } @@ -2858,7 +2858,7 @@ bot_lookat( pos, time, vel, doAimPredict ) for ( i = 0; i < steps; i++ ) { myAngle = ( angleclamp180( myAngle[ 0 ] + X ), angleclamp180( myAngle[ 1 ] + Y ), 0 ); - self setplayerangles( myAngle ); + self BotBuiltinBotAngles( myAngle ); wait 0.05; } } diff --git a/maps/mp/bots/_bot_script.gsc b/maps/mp/bots/_bot_script.gsc index e52562c..02a95f2 100644 --- a/maps/mp/bots/_bot_script.gsc +++ b/maps/mp/bots/_bot_script.gsc @@ -358,7 +358,7 @@ classWatch() a[ a.size ] = "sniper"; self notify( "menuresponse", game[ "menu_changeclass_" + self.pers[ "team" ] ], random( a ) ); - + wait 0.5; } @@ -2856,6 +2856,12 @@ bot_killstreak_think_loop() { curWeap = self getcurrentweapon(); + if ( curWeap == "radar_mp" || curWeap == "helicopter_mp" || curWeap == "airstrike_mp" ) + { + self thread changeToWeapon( self.lastdroppableweapon ); + return; + } + if ( curWeap == "none" || !isWeaponDroppable( curWeap ) ) { curWeap = self.lastdroppableweapon; diff --git a/maps/mp/bots/_bot_utility.gsc b/maps/mp/bots/_bot_utility.gsc index 84bf6e2..a32cca0 100644 --- a/maps/mp/bots/_bot_utility.gsc +++ b/maps/mp/bots/_bot_utility.gsc @@ -133,6 +133,17 @@ BotBuiltinBotMeleeParams( yaw, dist ) } } +/* + Sets angles +*/ +BotBuiltinBotAngles( angles ) +{ + if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins[ "botangles" ] ) ) + { + self [[ level.bot_builtins[ "botangles" ] ]]( angles ); + } +} + /* Test if is a bot */ diff --git a/scripts/mp/bots_adapter_cod4x.gsc b/scripts/mp/bots_adapter_cod4x.gsc index 5c65773..4923231 100644 --- a/scripts/mp/bots_adapter_cod4x.gsc +++ b/scripts/mp/bots_adapter_cod4x.gsc @@ -7,6 +7,7 @@ init() level.bot_builtins[ "botmovement" ] = ::do_botmovement; level.bot_builtins[ "botmoveto" ] = ::do_botmoveto; level.bot_builtins[ "botmeleeparams" ] = ::do_botmeleeparams; + level.bot_builtins[ "botangles" ] = ::do_botangles; level.bot_builtins[ "isbot" ] = ::do_isbot; level.bot_builtins[ "fs_fopen" ] = ::do_fs_fopen; level.bot_builtins[ "fs_fclose" ] = ::do_fs_fclose; @@ -49,6 +50,12 @@ do_botmeleeparams( yaw, dist ) // cod4x removed lunging due to movement exploits } +do_botangles( angles ) +{ + self setplayerangles( angles ); + // self botangles( angles[ 0 ], angles[ 1 ], angles[ 2 ] ); +} + do_isbot() { return self.isbot;