*********************************
* YaPB - Yet Another POD-Bot *
* for Counter-Strike *
*
http://yapb.mapzap.org *
*********************************
* Original code by: Count Floyd *
* Modified by Wei Mingzhi *
* <whistler_wmz@users.sf.net> *
*********************************
[ Parts of this file are taken from the original POD-Bot 2.5 readme ]
This program is based on Count Floyd's POD-Bot 2.6 source code (
http://podbot.nuclearbox.com). Don't forget about this, because most of the work was done by him.
Some of waypoint files are made by CoCoNUT (
http://coconut.de.tc) and MarD (
http://www.freewebs.com/mard_lltd) so credit goes to them.
Installation:
-------------
Installation is very simple. Just unzip the downloaded zip file to your main HL/CS directory:
C:\Sierra\Half-Life (MOD version)
C:\Sierra\Counter-Strike (Counter-Strike Retail)
C:\Program Files\Steam\SteamApps\<account name>\Counter-Strike (Steam Counter-Strike 1.6)
C:\Program Files\Steam\SteamApps\<account name>\dedicated server (Steam Dedicated Server)
If you are using CS 1.6, you also need to copy all the waypoint files in cstrike\addons\yapb\wptcs16 to cstrike\addons\yapb\wptdefault.
This bot should also work on Steam which have CS 1.3 installed, just copy all the files in cstrike folder to your CS 1.3 folder; but that's not tested.
Note: The YaPB bot DLL is self-adaptable and can be used as both normal bot DLL and metamod plugin. If you have metamod installed, it's recommended to use this bot as a metamod plugin instead of a normal bot DLL.
Requirement:
------------
The Bot currently only works in Counter-Strike 1.1 - 1.6. If you haven't updated your CS version to 1.1 (or higher) you will HAVE to do so before using it.
NOTE: Although it seems to work with CS 1.0, it does NOT work with CS 1.0. You'll experience weird things if you use it with CS 1.0. So please update your version of CS to 1.1 or use e.g. the original POD-Bot 2.5 instead.
How to start a Game with Bots:
------------------------------
Create a Game with a map that has waypoints for POD-Bot (take a look into the "cstrike\addons\yapb\wptdefault" folder - all files with the extension ".pwf" should be valid waypoint files. You can manually add bots using the console. To use the console you have to turn it on. Here's my shortcut properties for Counter-Strike:
D:\Sierra\Half-Life\hl.exe -console -game cstrike
This will activate Counter-Strike automatically and turn on the in-game console. If a map has loaded, press the key below "Esc" and it will scroll down. Just type "yapb add" and a new bot will be connected...
There are comments in the podbot.cfg file to show you how to change parameters. If the Bots are stuck or you just want to start a new round type in "yapb killbots" which will force all bots to be dead instantly. If you're sick of playing with Bots type "yapb removebots" which will kick all Bots from the Server.
To manually change maps, type "map mapname" to load a new map. So for example to load "DE_DUST" you type "map DE_DUST". Existing Bots will join the Game if the map is loaded.
A helpful User Menu is available for performing the most used actions. It's binded by default (you can change it in podbot.cfg) to the "=" key. If you're pressing the "=" key a Menu with the following options should appear on your Screen:
1. Quick Add Bot
This does what it says. It quickly adds a Bot giving him a random name, team, skill and model. Skill will be chosen randomly between your yapb_minskill/yapb_maxskill values.
2. Add specific Bot
Allows you specify all things for adding Bots.
3. Kill all Bots
Kills all Bots in all Teams. Use this to end Rounds faster, if you don't like watching the Bots play.
4. Kill all Players
Same as above, but also kills human players.
5. Fill Server with Bots
Fills all free Server Entries with Bots. After selecting this option you can specify the team or to auto-assign them. If you select a team the server variables "mp_autoteambalance" and "mp_limitteams" will be set to 0 and all Bots will only join 1 Team. You can use this to play alone against all Bots.
6. Kick Random Bot
Kicks the first Bot in the List.
7. Remove all Bots
Kicks all Bots of the Server.
8. Select Weapon Mode
Opens another Sub-Menu where you can select the Weapons Bots will buy (and use in combat). Selecting Knife Mode will also turn on Jason-Mode. Selecting Standard Weapons will turn it off again.
Step by Step Installation (if you still don't have a clue!):
------------------------------------------------------------
1) Make sure Half-Life is installed and Counter-Strike is working well...
2) To be able to activate the Console in the Game you need to modify your Shortcut properties. Open the shortcut properties and add the following parameters: -game cstrike -console
My own looks like this:
"D:\Sierra\Half-Life\hl.exe -game cstrike -console"
3) Unzip the bot into the Half-Life Folder. NOTICE: Half-Life Folder NOT cstrike Folder !
4) Start Half-Life using the Shortcut you modified in Step 2
5) Click on "Play CS"
6) Click on "LAN-Game"
7) Now you need to select a map for which you already got waypoint files. All ".pwf" Files in wptdefault folder are valid waypoint files. We take for example de_dust. Click on "de_dust" in the selection panel on the right side. Then click on "Create Game".
Click on "OK" if you don't want to modify settings, such as roundtime etc.
9) Voila! Cs is loading and soon the game should appear right before your eyes.
10) If you want to add bots yourself, open the Console. This is done by using the "~" key. On my keyboard it's the key located under the "Esc" key. Type "yapb add" and if your Server isn't already full, a new bot will join. You can also use the pretty User Menu by pressing the "=" Key.
11) Have Fun playing for hours without any Internet Costs !
Running YaPB on Win32 Dedicated servers:
----------------------------------------
Install YaPB as described above for Win32 dedicated servers and start the game the way you normally would.
When running a dedicated server most of the YaPB commands that are normally available from the client console screen are still available.
When using the dedicated server, bot will also be automatically spawned using the podbot.cfg file. You can also use the yapb_minbots/yapb_maxbots settings or the addbot command explained in that file.
Playing with the Bots:
----------------------
The Bots will automatically know the goals of the map. CTs might go for hostages, Terrorists may want to plant the bomb. VIP Bots will try to reach the Rescue Points. The goal selection is done dynamically and will be affected by several factors like Personality, Health, Team-mates near & Items the Bot is carrying. The Bots will also try to support team-mates and take cover when they think it's needed.
Ordering Bots through Radio Commands:
-------------------------------------
You can use some of the Radio Commands to get more support from your Bots. The first is "Follow Me" which commands Bots in the near to follow you. You can specify the maximum of following Bots in the podbot.cfg File (defaults to 3).
If a Bot is following you, you can use "Hold this Position" to make a pause at that Place and look around for enemies. You can use "Go,go,go!" to stop him from following you again. Note that they won't follow you in 3 cases:
- They don't want to ! The Bots have their own will and they issue a "Negative" if they don't want to follow you.
- They don't see you.
- They see an enemy and engage the target.
A Terrorist Bot carrying the C4 or picking it up, will also issue a "Follow Me" sometimes to have some assistance with him. Note that they have problems following on ladders at the moment because the movement is unwaypointed.
They also do some other Radio Commands like "Need Backup", "Enemy down", "Enemy spotted", "I'm in Position" (to tell you he's camping) but not very often, otherwise it would surely get on your nerves...
Summary of Bot Reactions to Radio Commands:
-------------------------------------------
Follow me - Forces Bots in the near to follow you
Hold this Position - Makes a Bot who's following you, stay awhile at that position
Taking Fire, need assistance - Makes all living Bots (not engaged in a Fight) run to your position to assist you.
Need Backup - Basically the same as above, but limited to distance and also the Bots use it sometimes to get some support.
Storm the Front! - Mighty command! Forces all Bots in the near to rush in the direction you're pointing to when using that command. Basically their level of agression is increased so a pathetic frightened Bot could also turn around and flee.
Get in position... - Bots in the near will try to take a covered position and stay there until they either encounter an enemy, you order them to leave, or they waited too long.
Go,go,go - If a Bot follows you, this commands stops him from following. If there are other Bots in the near, they will stop camping and going to roam the map again (normally used in combination with "Get in position...")
Team, Fall Back! - Opposite of "Storm the Front". Increases Fear and decreases agression of Bots in the near so that they are more likely to fall back and stay covered for a short period.
Bot Skill differences:
----------------------
First, Bots with low skills will pause/camp longer and more often. Bots with low skills have a bigger surprise time and they shoot slower. Bots with low skill are lucky if they hit something. Then there are minor behaviour differences. For example Bots with a skill above 80 use the knife more often if you're near them. If you want to get headshots all the time (and really fast) add some Bots with a skill of 100.
You can easily change a lot of skill parameters by editing the file 'botskill.cfg' with any text-editor. Also take a look into 'podbot.cfg' to adjust some more things to your liking...
Bot Personalities:
------------------
There are 3 different Personalities in POD now, if you have detailnames turned on they can are shown through the Prefixes like this:
[P*D] - Agressive
[POD] - Normal
[P0D] - Defensive
Right now the Personality is randomly chosen if a new Bot gets created. I want to extend a lot of stuff around Personalities so there's no sense in a specific selection and it can't be done.
Summary of Console Commands:
----------------------------
IMPORTANT: I have changed all the console commands to make them much more unique (so that you can use it with other bots without problems, especially other POD's like POD-Bot 2.5, POXBot, E[POD]bot, IvPBot or POD2.6mm). So make sure you have read this before complaining about "Unknown command: addbot"
All commands in square [] brackets are optional and don't need to be specified. Most of these commands will also work in podbot.cfg. You'll also get a handy User Menu by pressing the "=" key.
yapb about
Displays the version information of this bot and the author of the waypoints.
yapb add [skill] [personality] [team] [name] [model]
Adds a new Bot with skill (0-100), personality (0 = Normal, 1 = Aggressive, 2 = Defensive, Others = Random) and model (1-4 or use 5 to auto-assign) to team (0-1 or use 5 to auto-assign) with the specified name. If you don't use the name argument it will be filled randomly from "addons\yapb\botnames.txt". You can edit this file to use other names !
yapb fill
Fill the server with bots.
yapb killbots
Does what it says.
yapb removebots
Kicks all Bots off the Server. Note that this also changes the yapb_quota to 0.
yapb_minskill
Sets the minimum Botskill to use when adding Bots. Standard for this is 0, so a new Bot can have a Skill ranging from 0-100. You can set this in "bot.cfg" or manually to avoid specifying a skill everytime you add a Bot.
yapb_maxskill
Same as above except specifies the maximum skill when adding bots.
yapb_botchat 1|0
Turns chatting Bots on or off
yapb_jasonmode 1|0
Turns on/off "JasonMode". In this Mode, Bots are only allowed to use a Knife and they won't buy any weapons at all. Use this for example in cs_estate or cs_office to have a scary blood-feast ! This is a Fun Mode and not to be taken serious ! Kids, don't try this at home
yapb_wptfolder
Specifies the Folder for loading waypoints. No special chars like Spaces or quotation marks are allowed. Also note that the Folder must be inside the addons\yapb Directory...
yapb botsvotemap x
Orders all dead Bots to vote for Map x, where x is a valid number of a map in your mapcycle.
There are some other commands which are only used in "addons\yapb\podbot.cfg". Please have a look there, too !
There are a lot of other console commands only used for waypointing. These are explained in a separate File called "WaypointsHowToDo.txt"
Thanks (in no specific order):
------------------------------
botman (
http://www.planethalflife.com/botman)
Count Floyd (
http://podbot.nuclearbox.com)
Terran
CoCoNUT (
http://coconut.de.tc)
Pierre-Marie Baty (
http://racc.bots-united.com)
Antony (
http://antonyxia.cnnb.net)
sPlOrYgOn (
http://www.mapzap.org)
YOU!
...and everyone else I missed in this list
HAVE FUN PLAYING !