Version 2.1.0

This commit is contained in:
ineed bots 2022-05-08 17:46:25 -06:00
parent 9c20cf621b
commit a64a0cc810
15 changed files with 9340 additions and 5631 deletions

View File

@ -5,7 +5,7 @@ Bot Warfare is a GSC mod for the [CoD4x project](https://github.com/callofduty4x
It aims to add playable AI to the multiplayer games of CoD4. It aims to add playable AI to the multiplayer games of CoD4.
You can find the ModDB release post [here](https://www.moddb.com/mods/bot-warfare/downloads/cod4x-bot-warfare-latest) and the CoD4x.me post [here](https://cod4x.me/index.php?/forums/topic/3116-release-bot-warfare/). You can find the ModDB release post [here](https://www.moddb.com/mods/bot-warfare/downloads/cod4x-bot-warfare-latest) and the CoD4x forum post [here](https://cod4x.ovh/index.php?/forums/topic/3116-release-bot-warfare/).
## <span style="color:red">Important to public dedicated servers</span> ## <span style="color:red">Important to public dedicated servers</span>
The ```bots_main_firstIsHost``` DVAR is enabled by default! The ```bots_main_firstIsHost``` DVAR is enabled by default!
@ -57,15 +57,15 @@ Make sure to disable this DVAR by adding ```set bots_main_firstIsHost 0``` in yo
- ... And pretty much everything you expect a Combat Training bot to have - ... And pretty much everything you expect a Combat Training bot to have
## Installation ## Installation
Using CoD4x's extended functionality requires to use their Dedicated server, as explained [here](https://cod4x.me/index.php?/forums/topic/2047-add-cod4x-server-gsc-functions-to-the-client/). Using CoD4x's extended functionality requires to use their Dedicated server, as explained [here](https://cod4x.ovh/index.php?/forums/topic/2047-add-cod4x-server-gsc-functions-to-the-client/).
You can easily setup a local LAN dedicated server for you to join and play on. Have a look at [Setting up a CoD4x server](). You can easily setup a local LAN dedicated server for you to join and play on. Have a look at [Setting up a CoD4x server]().
0. Make sure that [CoD4x server + client](https://cod4x.me/) is installed, updated and working properly. 0. Make sure that [CoD4x server + client](https://cod4x.ovh/) is installed, updated and working properly.
- Download the [latest release](https://github.com/ineedbots/cod4x_bot_warfare/releases) of Bot Warfare. - Download the [latest release](https://github.com/ineedbots/cod4x_bot_warfare/releases) of Bot Warfare.
1. Locate your CoD4x server install folder. 1. Locate your CoD4x server install folder.
2. Move the files/folders found in 'Add to root of CoD4x server' from the Bot Warfare release archive you downloaded to the root of your CoD4x server folder. 2. Move the files/folders found in 'Add to root of CoD4x server' from the Bot Warfare release archive you downloaded to the root of your CoD4x server folder.
- The folder/file structure should follow as '.CoD4x server folder\main_shared\maps\mp\bots\_bot.gsc'. - The folder/file structure should follow as `.CoD4x server folder\main_shared\maps\mp\bots\_bot.gsc`.
3. The mod is now installed, now start your server, change the DVARs and start a map. 3. The mod is now installed, now start your server, change the DVARs and start a map.
4. Now start your CoD4x client and connect to your server ('connect 127.0.0.1' in the console most likely) and play! 4. Now start your CoD4x client and connect to your server ('connect 127.0.0.1' in the console most likely) and play!
@ -88,6 +88,7 @@ You can easily setup a local LAN dedicated server for you to join and play on. H
| bots_main_menu | Enable the in-game menu for hosts. | true | | bots_main_menu | Enable the in-game menu for hosts. | true |
| bots_main_debug | Enable the in-game waypoint editor. | false | | bots_main_debug | Enable the in-game waypoint editor. | false |
| bots_main_kickBotsAtEnd | Kick the bots at the end of a match. | false | | bots_main_kickBotsAtEnd | Kick the bots at the end of a match. | false |
| bots_main_chat | The rate bots will chat at, set to 0 to disable. | 1.0 |
| bots_manage_add | Amount of bots to add to the game, once bots are added, resets back to `0`. | 0 | | bots_manage_add | Amount of bots to add to the game, once bots are added, resets back to `0`. | 0 |
| bots_manage_fill | Amount of players/bots (look at `bots_manage_fill_mode`) to maintain in the match. | 0 | | bots_manage_fill | Amount of players/bots (look at `bots_manage_fill_mode`) to maintain in the match. | 0 |
| bots_manage_fill_mode | `bots_manage_fill` players/bots counting method.<ul><li>`0` - counts both players and bots.</li><li>`1` - only counts bots.</li></ul> | 0 | | bots_manage_fill_mode | `bots_manage_fill` players/bots counting method.<ul><li>`0` - counts both players and bots.</li><li>`1` - only counts bots.</li></ul> | 0 |
@ -121,6 +122,17 @@ You can easily setup a local LAN dedicated server for you to join and play on. H
## Changelog ## Changelog
- v2.1.0
- Bot chatter system, bots_main_chat
- Greatly reduce script variable usage
- Improved bots mantling and stuck
- Fix some runtime errors
- Bots sprint more
- Improved bots sight on enemies
- Bots do random actions while waiting at an objective
- Improved bots from getting stuck
- Better bot difficulty management, bots_skill_min and bots_skill_max
- v2.0.1 - v2.0.1
- Reduced bots crouching - Reduced bots crouching
- Increased bots sprinting - Increased bots sprinting

@ -1 +1 @@
Subproject commit 65a344f95388f6d0f0704f3c4517283670bb2818 Subproject commit c734ac790d590225e613fa3c2b10f411c29885aa

View File

@ -8,7 +8,7 @@
*/ */
init() init()
{ {
level.bw_VERSION = "2.0.1"; level.bw_VERSION = "2.1.0";
if ( getDvar( "bots_main" ) == "" ) if ( getDvar( "bots_main" ) == "" )
setDvar( "bots_main", true ); setDvar( "bots_main", true );

File diff suppressed because it is too large Load Diff

View File

@ -10,35 +10,35 @@
/* /*
Will attempt to retreive waypoints from the internet Will attempt to retreive waypoints from the internet
*/ */
getRemoteWaypoints(mapname) getRemoteWaypoints( mapname )
{ {
url = "https://raw.githubusercontent.com/ineedbots/cod4x_waypoints/master/" + mapname + "_wp.csv"; url = "https://raw.githubusercontent.com/ineedbots/cod4x_waypoints/master/" + mapname + "_wp.csv";
filename = "waypoints/" + mapname + "_wp.csv"; filename = "waypoints/" + mapname + "_wp.csv";
printToConsole("Attempting to get remote waypoints from " + url); printToConsole( "Attempting to get remote waypoints from " + url );
res = getLinesFromUrl(url, filename); res = getLinesFromUrl( url, filename );
if (!res.lines.size) if ( !res.lines.size )
return; return;
waypointCount = int(res.lines[0]); waypointCount = int( res.lines[0] );
waypoints = []; waypoints = [];
printToConsole("Loading remote waypoints..."); printToConsole( "Loading remote waypoints..." );
for (i = 1; i <= waypointCount; i++) for ( i = 1; i <= waypointCount; i++ )
{ {
tokens = tokenizeLine(res.lines[i], ","); tokens = tokenizeLine( res.lines[i], "," );
waypoint = parseTokensIntoWaypoint(tokens);
waypoints[i-1] = waypoint; waypoint = parseTokensIntoWaypoint( tokens );
waypoints[i - 1] = waypoint;
} }
if (waypoints.size) if ( waypoints.size )
{ {
level.waypoints = waypoints; level.waypoints = waypoints;
printToConsole("Loaded " + waypoints.size + " waypoints from remote."); printToConsole( "Loaded " + waypoints.size + " waypoints from remote." );
} }
} }
@ -49,20 +49,20 @@ doVersionCheck()
{ {
remoteVersion = getRemoteVersion(); remoteVersion = getRemoteVersion();
if (!isDefined(remoteVersion)) if ( !isDefined( remoteVersion ) )
{ {
printToConsole("Error getting remote version of Bot Warfare."); printToConsole( "Error getting remote version of Bot Warfare." );
return false; return false;
} }
if (level.bw_VERSION != remoteVersion) if ( level.bw_VERSION != remoteVersion )
{ {
printToConsole("There is a new version of Bot Warfare!"); printToConsole( "There is a new version of Bot Warfare!" );
printToConsole("You are on version " + level.bw_VERSION + " but " + remoteVersion + " is available!"); printToConsole( "You are on version " + level.bw_VERSION + " but " + remoteVersion + " is available!" );
return false; return false;
} }
printToConsole("You are on the latest version of Bot Warfare!"); printToConsole( "You are on the latest version of Bot Warfare!" );
return true; return true;
} }
@ -77,16 +77,16 @@ getRemoteVersion()
data = undefined; data = undefined;
#endif #endif
if (!isDefined(data)) if ( !isDefined( data ) )
return undefined; return undefined;
return strtok(data, "\n")[0]; return strtok( data, "\n" )[0];
} }
/* /*
Returns an array of each line from the response of the http url request Returns an array of each line from the response of the http url request
*/ */
getLinesFromUrl(url, filename) getLinesFromUrl( url, filename )
{ {
result = spawnStruct(); result = spawnStruct();
result.lines = []; result.lines = [];
@ -97,25 +97,26 @@ getLinesFromUrl(url, filename)
data = undefined; data = undefined;
#endif #endif
if (!isDefined(data)) if ( !isDefined( data ) )
return result; return result;
fd = FS_FOpen(filename, "write"); fd = FS_FOpen( filename, "write" );
line = ""; line = "";
for (i=0;i<data.size;i++)
for ( i = 0; i < data.size; i++ )
{ {
c = data[i]; c = data[i];
if (c == "\n") if ( c == "\n" )
{ {
result.lines[result.lines.size] = line; result.lines[result.lines.size] = line;
if (fd > 0) if ( fd > 0 )
{ {
if (!FS_WriteLine(fd, line)) if ( !FS_WriteLine( fd, line ) )
{ {
FS_FClose(fd); FS_FClose( fd );
fd = 0; fd = 0;
} }
} }
@ -126,10 +127,11 @@ getLinesFromUrl(url, filename)
line += c; line += c;
} }
result.lines[result.lines.size] = line; result.lines[result.lines.size] = line;
if (fd > 0) if ( fd > 0 )
FS_FClose(fd); FS_FClose( fd );
return result; return result;
} }

View File

@ -1,4 +1,4 @@
# CoD4x Bot Warfare # CoD4x Bot Warfare v2.1.0
Bot Warfare is a GSC mod for the CoD4x project. Bot Warfare is a GSC mod for the CoD4x project.
It aims to add playable AI to the multiplayer games of CoD4. It aims to add playable AI to the multiplayer games of CoD4.
@ -12,7 +12,7 @@ Make sure to disable this DVAR by adding 'set bots_main_firstIsHost 0' in your s
## Installation ## Installation
0. Make sure that CoD4x server + client is installed, updated and working properly. 0. Make sure that CoD4x server + client is installed, updated and working properly.
- Go to https://cod4x.me/ and download the Windows Server zip file. Move the contents of 'cod4x-windows-server' into your CoD4 game folder. - Go to https://cod4x.ovh/ and download the Windows Server zip file. Move the contents of 'cod4x-windows-server' into your CoD4 game folder.
1. Locate your CoD4x server install folder. 1. Locate your CoD4x server install folder.
2. Move the files/folders found in 'Add to root of CoD4x server' from the Bot Warfare release archive you downloaded to the root of your CoD4x server folder. 2. Move the files/folders found in 'Add to root of CoD4x server' from the Bot Warfare release archive you downloaded to the root of your CoD4x server folder.
- The folder/file structure should follow as '.CoD4x server folder\main_shared\maps\mp\bots\_bot.gsc'. - The folder/file structure should follow as '.CoD4x server folder\main_shared\maps\mp\bots\_bot.gsc'.
@ -30,6 +30,17 @@ Make sure to disable this DVAR by adding 'set bots_main_firstIsHost 0' in your s
- Pressing the menu button again closes menus. - Pressing the menu button again closes menus.
## Changelog ## Changelog
- v2.1.0
- Bot chatter system, bots_main_chat
- Greatly reduce script variable usage
- Improved bots mantling and stuck
- Fix some runtime errors
- Bots sprint more
- Improved bots sight on enemies
- Bots do random actions while waiting at an objective
- Improved bots from getting stuck
- Better bot difficulty management, bots_skill_min and bots_skill_max
- v2.0.1 - v2.0.1
- Reduced bots crouching - Reduced bots crouching
- Increased bots sprinting - Increased bots sprinting

BIN
out/ss.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 MiB