*****************************************
*					*
*      Ping of Death Bot V1.4x          *
*                                       *
*    a Bot for HL-CounterStrike		*
*               by			*
*          Count Floyd			*
*					*
***************************************** 

"Official" POD-Bot Page:
http://www.nuclearbox.com/podbot/

Forum:
http://www.nuclearbox.com/ubb/cgi-bin/forumdisplay.cgi?action=topics&forum=Ping.of.Death+Bot&number=15

My personal homepage:
http://www.geocities.com/countfloyd_1999/


This Bot has been developed based on HPB Bot
by Botman. So much of the basic movement
and behaviour was based on it. But it has
evolved over the time and this is the
result...anyway, thanks again Botman !

Copyright and Distribution Permissions
--------------------------------------

The Bot included in this archive is Copyright 2000, Markus Klinge. 

You may distribute this Bot in any electronic format as long as all the 
files in this archive remain intact and unmodified and are distributed 
together and free of charge.


Disclaimer
----------

Software under this agreement is under no kind of warranty. Software
under this agreement is provided as is, and isn't guaranteed in any
way by the Bot author. Use this software at your own risk.


V1.4x Release Date: 23/12/2000


Currently Supported Maps
------------------------
as_tundra
cs_arabstreets
cs_assault
cs_estate
cs_italy
cs_militia
cs_office	(CS7.1)
cs_siege
de_aztec
de_cbble
de_dust
de_foption
de_nuke
de_prodigy
de_train
de_vegas
de_village (new version)

There are lot of other waypoint files
from third parties


Changes from V1.4c to V1.4x

+ FIXED: Dedicated Server commands not working after "newmap"
+ FIXED: Bots not shooting when enemy elevation </> than 45 degree
+ FIXED: Bots responding too fast to Radio Commands
+ Added fillserver command to DS commands
+ Recoded the Radio Capturing/Usage (faster & more reliable)
+ Bots react on many radio commands 
+ Added much better Player Avoidance Code
+ Bots don't pause until they've seen an enemy
+ Updated FAQ & Readme (make sure to read them!)
+ Added the previously missing de_foption wpt file
+ Added some more localized Botchat translations
+ New podbot.cfg command "botsfollowuser"    


 
Advanced Features of this Bot:
------------------------------

+ Bots know where to go (depending on maptype) and how
  to get there.
+ Bots try to hunt Enemy or try to flee depending on health
+ VIP Bot has its own behaviour
+ Bots react to some radio commands
+ Counter Terrorists will guard the one, who defuses the Bomb
+ Terrorists pick up dropped C4 Bombs (in case they see it)
+ Realistic camping behaviour
+ Bots have a reaction time based on skills
+ Simple Combat AI (meaning Bots move forward/backward depending on health and
  higher skilled Bots will do strafe/jump
+ Pathfinding uses "wayzones". Bots don't do the goosewalk (not much)
+ Bots are blinded by Flashbangs (higher skilled Bots will go mad then!)
+ Bots shoot their way through Windows and Vents
+ Counter Terrorists don't use Paths where hostages can't follow (in case
  they have one)
+ Terrorists and Counters know the goals of the map depending on maptype.
  For example on a DE Map Counters will most likely stay around the Bomb
  Points and Terrorists rush for it
+ Bots do chat if they killed someone, the bomb was planted or they are
  dead and bored. The whole Text for this can be modified and of course
  turned off, if you think it sucks
+ Use secondary Weapon Modes (Random for now)
+ Bots will hear/react on footsteps if they are loud enough to be
  noticed
+ Bots hear Shots/Button usage
+ Higher skilled Bots sneak if they suspect a near enemy
+ Bots sometimes try to hide away from the enemy


Basic Features:
------------------

+ Buys and uses all Weapons (based on Money)
+ Buys and uses Grenades (Only Flashbangs and HE Grenades are
  supported now)
+ Buys Armor (only if he hasn't got enough Armor) 
+ Bots plant and defuse the Bomb (if they can see it!)
+ Bots rescue Hostages
+ Bots have a shooting ability based on skills
+ Shooting Rate depending on skill
+ Bots use duck and duck jumping to reach difficult places
+ Bots use ladders
+ Bots can swim
+ Bots accept Freezetime
+ Bots have a paranoid pause every now and then. Based on skill
  a worse Bot will pause more often and longer than a better one
+ Bots camp behaviour is skill based. Bad bots will camp longer
  and more often
+ Mapcycle works
+ Manually changing maps works
+ Correct Weapon dependent Speeds and VIP Speed
+ Weapon kickback is taken care off
+ Support for Menu-Driven Waypoint making
+ New "Halloween" Mode where Bots are only allowed to use Knifes ! 
+ Bots use Burst Fire (Skill above 60!)


Known Limitations/Bugs/Problems:
--------------------------------

- Bots stuck in Loops on some Computers (try turning off VGUI)
- Bots sometimes fall from High Places
- Sometimes stuck in other Bots (but should unstuck after less than 5 secs)
- Sometimes stuck in corners (see above)
- Counter Bots sometimes fail to defuse
- "map" command doesn't work most of the time (use "newmap" instead)
- Due to missing waypoint files only some maps (but most official)
  supported. But you can add your own by making waypoint files yourself!
- Bots don't know how to use Buttons/Lifts
- Bots don't know if a Weapon on the Ground is better than
  the one they have
- Movement could still be improved much
- Bots don't cheat :)


Requirements:
-------------

The Bot currently only works in Counter-Strike Beta 6.5 - 7.1 and CS 1.0 final
Half-Life version 1.1.0.0 or higher is required to use this bot.
If you haven't updated your Half-Life version to 1.1.0.0 (or higher)
you will HAVE to do so before using it.


Installation:
-------------

Backup "liblist.gam" from "\Half-Life\cstrike" if you want to keep the
original liblist (a clean liblist for Cs 1.0 is included in the Zip File
called "cs10liblist.gam". Unzip the archive into your Halflife folder
(remember to have "extract with folders" turned on). If you want to
use translated versions of the Botchat, 7 files are available now: 

BotChat.txt (default english version)
BotChatGerman.txt
BotChatFrench.txt
BotChatSpanish.txt
BotChatDutch.txt
BotChatHungarian.txt
BotChatCzech.txt

all located in the Podbot Folder. Rename one of these to "botchat.txt" to
have localized talk...
Also included is a File called Botskill.cfg were you can tweak most skill
settings for the Bots if you find them too easy/too hard.
Now you're ready to play!


Removing the Bot from your system
---------------------------------
To remove the bot from your system, delete the following files:
- The PODBot folder in Half-Life\cstrike
- liblist.gam from your Half-Life\cstrike folder

Then rename the file cs10liblist.gam in your Half-Life\cstrike folder 
to liblist.gam


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\podbot\Wptcs10" folder - all files with the extension ".pwf" should
be valid waypoint files. 
Bots will automatically be added to the game using the "bot.cfg" file found
in the /cstrike directory. If you wish to change the number of bots that are
created automatically you can edit the bot.cfg file using any text editor.
If you edited the bot.cfg File you can manually add bots using the console.
To use the console you have to turn it on. Here's my shortcut properties
for CounterStrike:
D:\Halflife\hl.exe -console -game cstrike
This will activate CounterStrike automatically and turn on the in-game console.

Since V1.4 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 minbotskill/maxbotskill 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. Newround

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.

Using Commands besides the in-game menu:
If a map has loaded, press the key below "Esc" and the console
screen scrolls down.
Just type "addbot" 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
"killbots" which will force all bots to be dead instantly. If you're sick of
playing with Bots type "removebots" which will kick all Bots from the Server.
NOTE that this will also set min_bots & max_bots to zero, so you have to add
Bots manually if you want them back in your game. Of course you can always use
"kick" to remove single bots. To manually change maps, use the substitution
for the map command. Type "newmap mapname" to load a new Bots. So for example
to load "DE_DUST" you type "newmap DE_DUST". Existing Bots will join the Game
if the map is loaded.
For all console commands please read the summary below...
 

Step by Step Installation (if you still don't have a clue!):
------------------------------------------------------------

1) Make sure Halflife is installed and CounterStrike 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: -console -game cstrike
   My own looks like this:
   "D:\Halflife\hl.exe -console -game cstrike"
   
   (That way you don't even have to activate CounterStrike manually and
   you can skip Steps 5-7)
3) Unzip the POD-Bot Archive using your favourite Unzipper (for example
   Winzip) into the Halflife Folder. NOTICE: Halflife Folder NOT cstrike
   Folder ! Also make sure that you checked the "Unzip using Folders" option
   (or a similar sounding option).
4) Start Halflife using the Shortcut you modified in Step 2
5) Click on "Custom Game"
6) Click on Counterstrike
7) Click on Activate
8) Click on "Play CS"
9) Click on "LAN-Game"
10) Now you need to select a map for which you already got waypoint files.
    Take a look into the POD-Bot Folder and pick one of these Folders:
    "WPTCS10" contains Waypoint Files valid for CS 1.0. "WPTCS71" contains
    Waypoint Files valid for CS 7.1. "WPTCS6.x" contains Waypoint Files
    especially for old versions.
    All ".pwf" Files in these Folders 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".
11) Click on "OK" if you don't want to modify settings, such as roundtime etc.
11) Voila! Cs is loading and soon the game should appear right before your
    eyes.
12) If you didn't edit the podbot.cfg manually, some Bots should already join
    your game. 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 "addbot" 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.
13) Have Fun playing for hours without any Internet Costs !


Running POD-Bot on Win32 Dedicated servers:
-------------------------------------------

Install POD-Bot as described above for Win32 dedicated servers and start
the game the way you normally would.
When running a dedicated server the POD-Bot commands that are normally
available from the client console screen are disabled.  To create a bot you
must set the CVAR "bot" to the value "addbot" (you can also provide additional
parameters like as shown in the podbot.cfg file).  To use the "bot" CVAR you
would use one of the following commands on the dedicated server command line...

bot "addbot"
bot "addbot 100 5"
bot "addbot 20 1 DumbAss"

In addition these commands are supported:
bot "fillserver 5" (Fills server with auto-assigned Bots)
bot "fillserver 1" (Fills server with Terrorist Bots)
bot "fillserver 2" (Fills server with Counter Bots)	
bot "removebots"   (Disconnects all Bots from the Game)
bot "killbots"	   (Kills all Bots in the current round)
bot "newmap mapname" (Changes the Map)

When using the dedicated server, bot will also be automatically spawned using
the podbot.cfg file. You can also use the min_bots/max_bots settings or the
addbot command explained in that file.


Playing with the Bots:
----------------------

The Bots will automatically know the goals of the map. Counters might
go for hostages, Terrorists may want to plant the bomb. VIP Bots will
try to reach the Rescue Points.


Radio Commands:
---------------

You can use some 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:

1) They don't want to ! The Bots have their own will and they issue a
  "Negative" if they don't want to follow you.
2) They don't see you.
3) They see an enemy and engage him.

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 you on ladders at the moment.
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...

Overview of Bot Reactions to Radio Commands:
-------------------------------------------

Follow me - Forces Bots in the near to follow you

Hold this Position - Makes a Bot following you, stay awhile at that position

Taking Fire, need assistance - Makes all living Bots (not engaged in a Fight) run to
                               assist you.

Need Backup - Basically the same as above, but limited to distance and also the Bots
              use it sometimes to have some company.

Get in position and wait for my Go - Forces all Bots in the near to run for cover and
                                     camp there. Use the "Go,Go,Go!" Command to make them
                                     walk again or use "Storm the Front!" to make them rush
                                     into a specified direction. If you haven't issued such
                                     a command after half a minute to a full minute (random)
                                     they will start moving again.
 
Storm the Front! - Mighty new command! Forces all Bots in the near to rush in the
                   direction you're pointing to when using that command.

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". Forces Bots in the near trying to run
                   away from the assumed enemy and stay covered for a short period.
 

 

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.

All remaining behaviour is calculated through the Map Goals and Health
of the Bot...
   


Summary of Console Commands:
----------------------------

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. Again, PLEASE TAKE A LOOK INTO THE FILE
"podbot.cfg" !

addbot [skill] [team] [name]

Adds a new Bot with skill (0-100) 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 "podbot\botnames.txt". You can edit this file to use other names !

listbots

Shows all Bots running on the Server

killbots

Does what it says.

removebots

Kicks all Bots of the Server. Note that this also changes the
min_bots and max_bots variables to 0.

minbotskill

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.
(Has been removed and is only available in the podbot.cfg)

maxbotskill

Same as above except specifies the maximum skill when adding bots.


botchat on|off

Turns chatting Bots on or off

newmap mapname

Substitution for the "map" command you're used to. Loads a new map.
This will work 100% with Bots and no client will get disconnected.

jasonmode on|off

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 :)

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 Podbot Directory...
  

There are some other commands which are only used in
"podbot\bot.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"




History:
--------

V1.4x Release Date: 23/12/2000

+ FIXED: Dedicated Server commands not working after "newmap"
+ FIXED: Bots not shooting when enemy elevation </> than 45 degree
+ FIXED: Bots responding too fast to Radio Commands
+ Added fillserver command to DS commands
+ Recoded the Radio Capturing/Usage (faster & more reliable)
+ Bots react on many radio commands 
+ Added much better Player Avoidance Code
+ Bots don't pause until they've seen an enemy
+ Updated FAQ & Readme (make sure to read them!)
+ Added the previously missing de_foption wpt file
+ Added some more localized Botchat translations
+ New podbot.cfg command "botsfollowuser"    


V1.4c Release Date: 12/12/2000

+ FIXED: Bots don't going mad anymore when flashbanged
+ FIXED: Hearing Bug when hiding
+ FIXED: Fixed some Issues with Weapon Kickback
+ FIXED: Bots keep ducking when seeing an enemy 
+ Added Minimum Turn Amount
+ Added Noclip Option for Waypoint Editing
+ Added Terrorist Bots use Hostages under certain conditions
+ Implemented Proper Sniper Zooming
+ Increased number of "special" waypoints from 32 to 64
+ Added some more dedicated Server Commands
+ Added option to turn on old (1.2) combat behaviour
+ Added botskill.cfg to tweak all skills to your needs  


V1.4 Release Date: 9/12/2000

+ FIXED: Bunny Hopping of Snipers
+ FIXED: Crash when adding Bots
+ FIXED: BotChat Freeze on Win2K (Couldn't test this!)
+ FIXED: Humanlike Combat Turning Speed
+ FIXED: Several Bugs in Waypoint Editor
+ FIXED: Living Bots talking to the Dead
+ FIXED: Only Host can issue commands
+ FIXED: Freezetime (first Round) Bug
+ FIXED: Knife being used when Enemy out of range
+ FIXED: Bot Chat Spamming
+ FIXED: Bug in detecting Hostages
+ Rewrote/optimized the Hearing Code
+ Bots now hear Shots and Button Usage within their range
+ Bots randomly use secondary knife mode
+ Changed Waypoint Movement
+ Changes in Basic Movement
+ Changed Waypoint Format
+ Added some stuff to the waypoint editor
+ Added Camp Flags to the Editor
+ Bots above Skill 60 try to stay more covered when moving
+ Improved Ladder climbing up
+ Added Bot User Menu
+ Tweaked Reaction Time again
+ Improved Enemy Detection Handling
+ Bots use Zoom Mode when sniping most of the time
+ Bots Hiding Behaviour improved
+ Added a bunch of new commands to the Config File
+ Added Randomness to Reaction Times
+ Bots are able to swim now
+ Updated/Replaced all Waypoint Files


V1.2 Release Date: 10/11/2000

+ Fully compatible to CounterStrike 1.0 final
+ Bots buy/use all new weapons
+ Recoded all Reaction Routines
+ Burst Fire implemented
+ Smarter Grenade Use/Throwing
+ Tweaked Hunting/Fleeing AI
+ Bots try to hide (not fully implemented)


V1.1 Release Date: 4/11/2000

+ Fixed Weapon dependent Player speeds
+ Fixed VIP Speed
+ Changed Damage Detection Code
+ Fixed Weapon Kickback
+ Implemented hearing Footsteps
+ Modified Sniper Combat behaviour 
+ Added Menu-driven Waypoint setting for
  Users who want to support own maps
+ Added "Jason-Mode" for people who like
  to fight only with knifes
+ Added new Radio Command Reaction:
  "Taking Fire..."
+ Bots above Skill 70 sneak if a near Enemy is suspected
+ some minor bug fixes


V1.0 Release Date: 27/10/2000

* First public Release *


Planned for future Releases:
----------------------------

* Still improve basic movement
* Change Pathfinding back to A*
* More AI States (Roundtime behaviour etc.)
* Better Team Behaviour
* Usage of Buttons/Lifts
* Better Grenade Use (SmokeGrenades?)
* Advanced Combat Behaviour (maybe personalities ?)
* Vehicle support (hmm, not really!)
* Track down all remaining Bugs


I would like to thank the following people:

- Botman
 (for all his Information, Sources & Templates, without them,
  this Bot probably would never exist)
  Visit his Site: http://www.planethalflife.com/botman/
 
- William van der Sterren
  (for his great knowledge & posted information on Botmans Forum
   and his own Site)

- My brother Polymorph (for his testing and patience with me)

- Auxois & Smok3 for hosting/supporting me as much as they can

- Chris for Betatesting

- Daniel Ditlev and Stefan Hendriks for sharing ideas/knowledge with me

- all other Bot Authors for inspiring me & being such a nice
  Community (mostly)
  
- The Halflife & CounterStrike Developers for creating such great
  games ! 
  
- YOU! (for using Pod-Bot)


If you still have questions, be sure to read
"PODBot_FAQ.txt". Your question might already be answered
there. If not you can e-mail me at:

podbot@yahoo.com

(please don't mail me suggestions or your personal wishlist,
use the Forum instead ! AND DON'T ASK ME FOR RELEASE DATES
OF FUTURE VERSIONS, SUCH E-MAILS WILL BE DELETED AT ONCE!
Notice the URL at the top of this text). 

HAVE FUN PLAYING!