This commit is contained in:
ineed bots 2024-03-11 14:15:37 -06:00
parent e75ebddafa
commit 1b7b9242ae
4 changed files with 92 additions and 53 deletions

View File

@ -41,6 +41,9 @@ This mod extends the functionality and features of Combat Training in Black Ops
- Bots have a slight delay after spawning, scales inversely with difficulty.
- Bots can reroll carepackages.
- Bots can use the valkyrie rocket carepackage streak.
- Bots can melee lunge.
- Bots can jumpshot and dropshot.
- Bots can use altmode weapons (gl, ft, mk)
## Installation
0. Download the [latest release](https://github.com/ineedbots/t5_bot_warfare/releases) of Bot Warfare.
@ -84,6 +87,14 @@ This mod extends the functionality and features of Combat Training in Black Ops
| bots_play_aim | If the bots can aim. | 1 |
## Changelog
- v1.2.0
- Bots can now melee lunge
- Bots can now jumpshot and dropshot
- Fix some script runtime errors
- Improved bots using altmode weapons
- Reduced variable usage
- Major cleanup
- v1.1.1
- Fixed some script runtime errors
- Improved domination

View File

@ -168,13 +168,14 @@ bot_on_spawn()
self waittill( "spawned_player" );
self BotBuiltinClearOverrides( true );
self BotBuiltinWeaponOverride( self getcurrentweapon() );
self.bot_is_doing_some_other_override = false;
self.bot_lock_goal = false;
self.help_time = undefined;
self.bot_was_follow_script_update = undefined;
self.bot_attacking_plane = false;
// grenade c4 watcher
// todo: grenade c4 watcher
self thread bot_spawn();
}
}
@ -394,6 +395,7 @@ bot_spawn()
self thread bot_revive_think();
// todo:
// stockpile.gsc
// hotel.gsc
// kowloon.gsc
@ -423,7 +425,7 @@ bot_spawn()
self thread bot_uav_think();
self thread bot_weapon_think();
// reload cancel
// todo: reload cancel
self thread bot_listen_to_steps();
self thread bot_revenge_think();
self thread follow_target();
@ -680,6 +682,7 @@ bot_wait_stop_move()
*/
BotUseRandomEquipment()
{
// todo
}
/*
@ -687,6 +690,7 @@ BotUseRandomEquipment()
*/
BotLookAtRandomThing( obj_target )
{
// todo
}
/*
@ -741,6 +745,7 @@ fire_c4()
for ( ;; )
{
// todo
// self thread BotPressAds( 0.05 );
wait 0.1;
}
@ -2477,6 +2482,10 @@ bot_plane_attack( plane )
self botStopMove( true );
self.bot_attacking_plane = true;
if ( !self.bot_is_doing_some_other_override )
{
self.bot_is_doing_some_other_override = true;
if ( self changeToWeapon( weap ) )
{
self do_bot_plane_combat( plane, weap );
@ -2486,6 +2495,9 @@ bot_plane_attack( plane )
self BotBuiltinClearButtonOverride( "ads" );
}
self.bot_is_doing_some_other_override = false;
}
self botStopMove( false );
self.bot_attacking_plane = false;
self notify( "bot_force_check_switch" );
@ -6376,6 +6388,10 @@ watch_for_melee_override()
{
dist = distance( self.origin, threat.origin );
if ( !self.bot_is_doing_some_other_override )
{
self.bot_is_doing_some_other_override = true;
if ( self isonground() && self getstance() != "prone" && !self inLastStand() && dist < getdvarfloat( "aim_automelee_range" ) && ( getConeDot( threat.origin, self.origin, self getplayerangles() ) > 0.9 || dist < 10 ) )
{
angles = vectortoangles( threat.origin - self.origin );
@ -6407,10 +6423,14 @@ watch_for_melee_override()
self BotBuiltinClearMeleeParams();
self BotBuiltinClearAimOverride();
wait 1;
break;
}
self.bot_is_doing_some_other_override = false;
}
wait 0.05;
thisThreat = self getthreat();
}
@ -6480,6 +6500,10 @@ watch_for_override_stuff()
weapon_is_good = false;
}
if ( !self.bot_is_doing_some_other_override )
{
self.bot_is_doing_some_other_override = true;
if ( weapon_is_good && ( dist > NEAR_DIST ) && ( dist < LONG_DIST ) && ( randomint( 100 ) < chance ) && ( ( time - last_jump_time ) > SPAM_JUMP_TIME ) )
{
if ( randomint( 2 ) )
@ -6513,6 +6537,9 @@ watch_for_override_stuff()
}
}
self.bot_is_doing_some_other_override = false;
}
thisThreat = self getthreat();
while ( isdefined( thisThreat ) && isdefined( threat ) && thisThreat == threat )

View File

@ -760,6 +760,7 @@ botStopMove( what )
*/
BotSetStance( what )
{
// todo! make these all proper!
}
/*

View File

@ -15,7 +15,7 @@
*/
init()
{
level.bw_version = "1.1.1";
level.bw_version = "1.2.0";
level.bot_offline = false;