----------------------------------------------------------------------------------------------
-- This Bot is based on botman's HPB_bot - template code - http://planethalflife.com/botman --
----------------------------------------------------------------------------------------------


README FOR @$3.1415rin's JoeBOT - http://joebot.counter-strike.de

0. Information about this bot for cs

The main movements of this bot are controlled by 2 artificial neural nets (nn.br2 and nnc.nr2). The wayfinding stuff if done on the basis of waypoints and a backtracking algorithm.

features:
- human-like reaction time + aiming
- human-like accuracy ( changeable ) 
- some little pieces of teamwork ... to be extended next time 
- bots sometimes camp
- defusing/planting bomb, rescuing hostages and other little things ... es and as maps are not supprted yet !
- fully wp undependant in fights
- all weapons are supported 
- weapon pickup system
- personality system, i.e. favourite weapon, agressive/defensive
- bots follow some radio commands and are using the radio themselves
- bots don't attack teammates


1. Installing ...
First deinstall your current bot, if u'd one.
Then exec your .exe file and follow the instructions ...
Or, if u've got a *.zip file, copy the *.br2 and texts.txt to your CStrike dir, the *.wpj to cstrike/maps and the joebot.dll to cstrike/dlls. Then modify the dll entry in cstrike/liblist.gam to "dlls/joebot.dll" as shown in 'my liblist.gam' after having made a backup of this file for deinstalling.(if the zip file contains directory information just unzip it and copy the cstrike dir into ur hl dir and overwrite everything)
Now you just have to run cstrike as a server for a lan game.

2. Adding Bots

Type addbot in your console
The number of automatically added bots can be changed in cstrike/bot.cfg. max_bots/min_bots is a variable, which defines the min or maximum number of bots on one server. If this isn't the case, the server adds new bots. Of course u can just use the addbot command in the bot.cfg as well.

addbot syntax :
 
addbot team model name type prefweapon
(addbot [1/2/5] [1/2/3/4] name [agg/nor/def] weapon - for weapon see information on bot_names.txt a bit lower)

example : addbot 2 2 @$3.1415rin nor weapon_mp5navy

write 'default' for the parameter u don't want to specify

3. Commands

(Note that here is still a bug in the wp system : DON'T ADD more than 4 paths to one wp - it would crash - ???)
waypoint on/off		-  toggles visibility of waypoints
waypoint add		-  adds a waypoint
waypoint delete		-  deletes a waypoint
waypoint aim		-  toggles the aiming flag of the nearest wp within 100 Units - used for camping bots to look @
waypoint sniper		-  toggles the sniper flag of the nearest wp within 100 Units
waypoint bomb		-  toggles the goal flag of the nearest wp within 100 Units (de)		// bomb target
waypoint hostage	-  toggles the goal flag of the nearest wp within 100 Units (cs)		// hostages
waypoint rescue		-  toggles the rescue flag of the nearest wp within 100 Units (cs)		// rescue zone
waypoint ladder		-  toggles the ladder flag of the nearest wp within 100 Units
waypoint visit		-  toggles the visit flag of the nearest wp within 100 Units  // this wp should be visited once in a while
waypoint dontavoid/da	-  toggles the dontavoid flag of the nearest wp within 100 Units - at this wp the bot does not avoid walls, etc. (see waypoint.html)
waypoint counter/ct	-  wp only for counters
waypoint terror/te 	-  wp only for terrors
waypoint noteam		-  not team specific wp
waypoint addstdwp	-  adding standard wp's like starting points
waypoint test		-  counts the number of waypoint types and gives u hints, when there's for example a wp for the rescue zone missing
waypoint makepaths  -  calculates paths. U should do this every time u have edited the wps. U'll have the same effect be saving and loading the wps, but makepaths does not affect your saved files (good for testing)
pathwaypoint create1	-  starts a path from one wp to another
pathwaypoint create2    -  determines the end of the path started with create1
pathwaypoint delete1    -  ...
pathwaypoint delete2    -  ...
mix_names on/off	- names from bot_names.txt are random or not			

waypoint load/save	-  ...

botshoot on/off		-  If u r 2 bad !!!!
kickbots ct/te/all  	-  ....
kickbot ct/te  		-  ....
edown on/off		-  switches enemy down mess off/on
botchat on/off		-  switches bot chat on/off
nnstat			-  shows status of nns - to be extended in some time ...
nn_update		-  default : nn_update 10 ... 10 updates of nn per sec
botaccuracy/botacc [all/default/getdefault/get/'name'] [Value] - setting bot's accuracy for shooting .. default is 15
pistolonly [on/off]	- bot only use pistols

4. files and their importance
4.1. bot_names.txt
in cstrike/joebot/bot_names.txt u can define the 'personality' and the name of the bots.
- - the name, which has to be shorter than 22 chars
- - separated by a '\t', i.e. a tab, u define if the bot should be agressive (<agg>), defensive (<def>) or normal (<nor>)
- - next string separated by a tab is the favourite weapon
team dependant weapons which cannot be bought, are converted to a similar weapon of the own team.
CS_WEAPON_M4A1	<--> CS_WEAPON_AK47;
CS_WEAPON_TMP	<--> CS_WEAPON_MAC10;
CS_WEAPON_SG550	<--> CS_WEAPON_G3SG1;
CS_WEAPON_AUG	<--> CS_WEAPON_SG552;

weapon names are :

weapon_scout
weapon_xm1014
weapon_mac10
weapon_aug
weapon_ump45
weapon_sg550
weapon_awp
weapon_mp5navy
weapon_m249
weapon_m3
weapon_m4a1
weapon_tmp
weapon_g3sg1
weapon_sg552
weapon_ak47
weapon_p90

4.2. texts.txt
The file cstrike/jeobot/texts.txt contains the chat sentences of the bots. Every category is divided into sentences for <all> and the team specific messages with <ct> resp. <te>.

Categories:

-- [bombplanted]
-- [hostdown]
-- [kill]
-- [dead]
-- [teamattack]

4.3 bot.cfg
Here u can add commands which should be executed while starting the game.

-------:::::: SUPPORTED MAPS ::::::--------

(the maps, which have a wpj file in cstrike/joebot/wpjs are supported)

4. Thx to ...

botman			thx for _first_ template and forum
[-V-]~F.H.D~		testing and inst prog
Ohr2k			testing
metal_mc		testing
ultimator_mc		testing
[eli]rabe		help to get access to the server @ school to do some time expensive computations on SOMs
