========================================================================
    Promod PeZBOT, version: 007p.01 Promod   (14/12/08)
    Author : Matthew (M_tey) with help from Pezzalucifer
    Any and all feedback is welcome --> m_tey94@yahoo.com 
========================================================================

General.....................................................................................

Feel free to add this source to any mod you like, just credit PeZBOT and Matthew, thanks.


Disclaimer..................................................................................

This is pre-alpha code, meaning it is in no way feature complete and full of bugs, Use at your own risk.

enjoy, etc :) Please read the last line from Readme.. they are important.


Thanks to..................................................................................

  Tally, AintNoMeInTeam, NovemberDobby, AbneyPark, Lord_Gannondorf, JamJam11, Whitsel, MasterB, 
  Kill3r, Gerhart, Zeroy, AA_Fan6566, BritishBulldog1, Sparks, TL-SpacepiG, 402, and whoever else 
  i forgot who's helped me out along the way, make sure you let me know and i'll add you :).


Installation................................................................................

1. Extract into your COD4 MW mods folder.
2. Load through ingame mods menu or put '+set fs_game "mods/PeZBOT"' in your iw3mp.exe command line.
3. Set DVARS either through console or commandline; 
   /set <dvar> <value> (in console). 
                 or 
   +set <dvar> <value> (on commandline).

DVARS are as follows;

svr_pezbots               //number of bots; (defaults to 0)
svr_pezbots_team          //team to put bots on, "axis", "allies", "autoassign"; (defaults to "autoassign")
svr_pezbots_drawdebug     //draws bot debug info; 0 or 1; (defaults to 0) (requires developer_script set to 1)
svr_pezbots_dogpack_size  //number of dogs spawned when using uav (defaults to 0)
svr_pezbots_skill         //global skill level that effects all bots, value between 0 and 1, 1 being highest
                          //0 being lowest. (defaults to 0.5).
svr_pezbots_mode          //sets the mode to start the mod in, options are "dev" and "normal" (defaults to normal)
                          //(requires developer_script set to 1 and developer set to 1)
svr_pezbots_WPDrawRange   //waypoint debug draw range (defaults to 1000 inches).                          

An example command line would be:

  iw3mp.exe "+set fs_game "mods/PeZBOT" +set svr_pezbots 4 +set svr_pezbots_team autoassign"


Example in console: 

  /set svr_pezbots 4

4. When you start a server make sure to turn off punkbuster.




Waypoint Editor...................................................................................

  In order to use the waypoint editor you must start PeZBOT in dev mode by putting "+set svr_pezbots_mode dev" on your
command line. Waypoints are represented by a colored vertical line, links between waypoints are represented by blue
lines. All waypoints have a radius around them which you have to be within to modify them. When you are in 
range of a waypoint the line color will pulse to let you know you are in range.

Controls:

  Attack Button:---  Add waypoint.
  Ads Button:------  Delete waypoint.
  Use Button:------  Start Link/Confirm Link.
  Frag Button:-----  Start Link/Remove Link.
  Melee Button:----  Save waypoints to console_mp.log in PeZBOT mod folder.
  
  
Waypoint Colors:

  Red:-------------  Waypoint with no children, this is bad, link it to another waypoint.
  Purple:----------  Waypoint with one child, this is not so bad however it is a dead end, these are especially good for
                     getting the bots to go to the right place up next to the radios in headquarters.
  Green:-----------  Waypoint with more than one child, these are safe.
  
Usage:

  Before you start, keep in mind that due to technical difficulties with cod4 you will NEED to send me your waypoint
files to patch them into the mod.ff.

  I find the easiest way to use the editor is to first Add a waypoint, then press the Use Button while standing over
the waypoint, to start a link. Move to the position you would like to place the next waypoint, Add another waypoint,
then press the Use Button while standing over the waypoint to Confirm the Link. You should now see a blue line between
the two waypoints.

  If you wish to remove a link between two waypoints; Stand over the first waypoint, press the frag button, move over
to the second waypoint and press the frag button again. The link is now removed.

  To delete a waypoint, move over to it and press the Ads Button, the waypoint is now deleted, Note: deleting waypoints 
also removes the links to all of the deleted waypoint's children.

  Before saving look around the map and make sure that there a NO RED WAYPOINTS. There should be 99% green waypoints,
and some dead ends (mostly placed for specific reasons like getting close to typical camping spots)

  To save waypoints to your mods/PeZBOT/console_mp.log, press the Melee Button. Usually you will need to press the save 
button a few times for the log to output the entire buffer. You will see "Save Successful" on the bottom left of the 
screen, this means some if not all waypoints were written to console_mp.log. Check to make sure all waypoints were written.
You can tell if they were all written by looking for a line starting with a number followed by a comma and the word end.
For example "169,end". The start of the waypoint list starts at the line beginning with "0," it should look something like
"0,1774.5 834.7 67.6,1 6,stand". The line above this has the name of the file you need to copy and paste the waypoints into. 
Create a file with this name and copy all the lines from "0," through to "whatever,end", and paste them into the new file.
Final step is emailing the file to me at "perry_hart@hotmail.com". I'll patch the waypoints into the mod.ff and send you a
new mod.ff asap. It will probably contain a bunch of other waypoints for other custom maps also.

  Appologies for such a difficult save method, however it was the only way to get data out of cod4, all files are loaded
AND saved into FF format. Meaning that if you want to save to a file, it is saved into the mod.ff, and you need to have an 
empty file with that name in there already.. Which is just rediculous. Anyway.. there it is :)
  



Revision Info...................................................................................

--------------------------------------------------------------------------------------------------------------------------------
Version 001p
--------------------------------------------------------------------------------------------------------------------------------

- Animated bots will only work with version COD4 MW v1.4, for some reason, in 1.5 the weapons are screwed;
  bots animate through weapon changes therefore they will look really stuffed. (although they still path-find and fight)
  
- Bots will play deathmatch, team deathmatch, and domination, all other game types will make bots think
  they are playing team deathmatch (other gametypes coming in a future release).
  
- Bots dynamically generate their paths with ray collides, this is sooo dodgy it's not funny, however
  it works for the most part. Watch in amazement as they walk through walls (and in circles ;) ).
  Predefined waypoint following will be in a future release.
  
- These bots should be ok on most levels, HOWEVER i've only really tested them thoroughly on backlot, i know for certain
  that they like to get stuck between containers on shipment. They will probably go awol on  throught the 
  guardrails tho... lawl :D.
  
- All bots have an m16, this is because IW in their infinite wisdom... *cough*.. decided to set the maximum weapon limit
  to 128. Unfortunately with all the weapons in COD4 this only allows 6 or so extra weapon assets, PeZBOT needs
  6 or so weapons per weapon type (m16, mp5 ect) to animate, therefore it can only support one weapon type until this is fixed
  in a future patch of the engine (fingers crossed)...



  
--------------------------------------------------------------------------------------------------------------------------------
Version 002p
--------------------------------------------------------------------------------------------------------------------------------

- Animated bots now work with v1.5.

- Fixed issue with bots not rejoining correctly after map rotation.

- Bots no longer face their target until they can see it.

- Bots will target and shoot back if you shoot them while in their current goal.




--------------------------------------------------------------------------------------------------------------------------------
Version 003p
--------------------------------------------------------------------------------------------------------------------------------

- Bots now follow SOME of the quick commands, they are;

    On Me! - Bot's within 2000 inch radius, will follow player giving the command.
    Move In! - Bots will stop following player, and continue playing the gametype.
    Base Of Fire! - Bots will shoot at the place you are pointing to 
                    when you issue the command. They will keep shooting until 
                    player tells them to do something else, or they see an enemy.


- Using UAV now also spawns a pack of dogs that attack the enemy for 2 minutes. For now 
  (till i get the time to make a custom class just for dogs) the sniper class is 
  replaced with dogs, so if you choose a sniper class other ppl will see
  you as a dog doing a handstand half way embedded in the ground. So i'd avoid that :)
  Use "svr_pezbots_dogpack_size" to change the number of dogs spawned.

- Bots can now play headquarters.  
  
- Bots can now use the hardpoint perks; uav+dogs, airstrike, and helicopter.

- Bots throw grenades. (120-1 chance they will throw instead of shooting).

- Bot animation system improvements, less jiggling about. Correct death anims etc..

- Better ground clamping, bot's shouldn't get stuck in the upper floors of buildings 
  anywhere near as much as they used to.
  
- Bots now push out of eachother while moving, so they dont get stuck inside eachother.


--------------------------------------------------------------------------------------------------------------------------------
Version 004p
--------------------------------------------------------------------------------------------------------------------------------

- Bots eyes are now in their head instead of their chest, so they can now see over things
  and look a little less oblivious to your presence.

- Improved bot aiming and shooting functionality. 

- Bots now have a global skill variable "svr_pezbots_skill", you specify a value between 0.0 and 1.0, defaults to 0.5.
  Example in console: /set svr_pezbots_skill 0.5
  
- Added waypoints to all default maps so bots can get around alot faster and easier now. (still has some bugs in it
  so let me know of specific areas that are busted, some maps and gametypes are better than others).

- svr_pezbots_dogpack_size now defaults to 0 as the dogs are a little overpowered and detract from the normal game 
  a bit.  But dont worry they are still in there, you just have to specify the size you want.

- Can now use snipers and you wont look like an acrobatic dog.

- Fixed (HACKED AROUND) map rotate problems. NOTE: depending on how many bots you use you will probably be left with
  an empty server after a few map changes, this is a cod4 bug that i cant fix just yet.. At least until i work out
  how to un-zombify testclients. Anyway it works better than it used to. :)

- Added waypoint editor functionality, see readme.txt for details.


--------------------------------------------------------------------------------------------------------------------------------
Version 004p2
--------------------------------------------------------------------------------------------------------------------------------

- I just HAD to fix the pathfinding, it's 100% better than it used to be. :)



--------------------------------------------------------------------------------------------------------------------------------
Version 005p
--------------------------------------------------------------------------------------------------------------------------------

- Bots now put a higher priority on targeting the last player that killed them. (prevents camping of bots).

- Bots no longer have eyes in the back of their heads

- Heaps of waypoint fixes so that when bots spawn they can get onto a waypoint without getting stuck on top of buildings.

- Removed the Modwarfare code so now it's like normal cod4; ranks and custom classes.

- Bots can play S&D and Sabotage.

- Fixed the bot moon-walk bug. 

- Bots no longer camp HQs.

- Bots move at the correct speeds when running and sprinting.

- Bots target correctly when players crouch/prone.

- Bots now drop their weapons correctly.

- Improved dodging.

- Added Known Bugs section to readme.txt


--------------------------------------------------------------------------------------------------------------------------------
Version 006p
--------------------------------------------------------------------------------------------------------------------------------

- Smoothed out bot movement, they no longer turn and run when losing sight of their target, they no longer wiggle when shooting,
  they also recalculate their move speed when transitioning from running to strafe etc so they no longer strafe erratically.

- Removed pushout on bots (stops them getting stuck on eachother).

- Bots no longer die when stuck, they reset instead.

- Bots remember the last target they saw and will shoot through walls with reduced accuracy if they lose sight of their target.

- Bots will only be able to see enemies over 800 inches away if they are being "obvious" (moving or shooting).

- Bots no longer take the same shortest path to their destination, they flank from all directions. Watch your six!

- Bots are effected by flash and stun grenades appropriately.

- Bots cannot see through smoke.

- Bots no longer try get to the position of their best enemy, instead they use the nearest waypoint. This prevents them from 
  wandering off through poor collision in the levels when they think there is no waypoint closer to the enemy than they are.

- Waypoint support for patch 1.6 maps, Creek, Killhouse, Chinatown and Broadcast. (thanks to AbneyPark).

- Bots now randomly pick from 15 different weapons when they spawn. The weapons are; ak47_mp, ak74u_mp, g3_mp, g36c_mp, m4_mp,
  m14_mp, m16_mp, m60e4_mp, mp5_mp, mp44_mp, p90_mp, rpd_mp, saw_mp, skorpion_mp, uzi_mp, and winchester1200_mp. Sniper weapons are left 
  out as the bots have no way of aiming down the sight.
  
- Bot default skill set to 1.0 as they can now only shoot from the hip with the reduced hip fire accuracy of the standard weapons.

- Added new dvar "svr_pezbots_WPDrawRange", this is used when placing waypoints to reduce the visible range of waypoints so all nearby 
  waypoints draw. It is an integer value that defaults to 1000.


--------------------------------------------------------------------------------------------------------------------------------
Version 006p2
--------------------------------------------------------------------------------------------------------------------------------

- Fixed waypoints for Killhouse and Broadcast. (added waypoints near spawn points so bots don't get lost, and fixed waypoints
  that go through or too close to walls, trees etc..).
  
- Fixed "error dobj for xmodel 'body_mp_arab_regular_assault' has more than 128 bones (see console for details)". This was caused
  by having more than one weapon attached to the body. All i did was put a return in the stow_on_back and stow_on_hip functions.


--------------------------------------------------------------------------------------------------------------------------------
Version 007p
--------------------------------------------------------------------------------------------------------------------------------

- When shooting through walls bots accuracy decreases rapidly over 5 seconds. 

- Bots only engage at an appropriate range for the weapon they are using.

- Bots throw grenades again, I accidentally broke it in 006p and 006p2.

- Bots now crouch.

- fixed weapons not being dropped correctly.

---------------------------------------------------------------------------------------------------------------------------------
Version 007p.01 Promod Settings
---------------------------------------------------------------------------------------------------------------------------------

- Added No-Breath on snipers and bullet traictory repaired.

- Added same speed as common Promod rule-set !Atention! Sometimes this doesn't work.

- Added common Promod weapons rule-set !Atention! Check Known Bugs. 

- Hitting and Enemy through a wall is still shown.

- Best Classes (the only ones that work):
  -Ak-47-Bandolier-Stopping Power-Eavesdrop
  -Ak-47-Silencer-Bandolier-Stopping Power-Eavesdrop
  -M4-Bandolier-Stopping Power-Eavesdrop
  -M4-Silencer-Bandolier-Stopping Power-Eavesdrop
  -G3-Bandolier-Stopping Power-Eavesdrop
  -G3-Silencer-Bandolier-Stopping Power-Eavesdrop
  -G36C-Bandolier-Stopping Power-Eavesdrop
  -G36C-Silencer-Bandolier-Stopping Power-Eavesdrop
  -M16-Bandolier-Stopping Power-Eavesdrop
  -M16-Silencer-Bandolier-Stopping Power-Eavesdrop
  -M44-Bandolier-Stopping Power-Eavesdrop
  -MP5-Bandolier-Stopping Power-Eavesdrop
  -MP5-Silencer-Bandolier-Stopping Power-Eavesdrop
  -Uzi-Bandolier-Stopping Power-Eavesdrop
  -Uzi-Silencer-Bandolier-Stopping Power-Eavesdrop
  -Ak-72u-Bandolier-Stopping Power-Eavesdrop
  -Ak-72u-Silencer-Bandolier-Stopping Power-Eavesdrop
  -W1200-Bandolier-Stopping Power-Eavesdrop
  -M40A3-Bandolier-Stopping Power-Eavesdrop
  -R700-Bandolier-Stopping Power-Eavesdrop

These are need because the Promod Interface crashes PeZBOT normal Interface.. I'm working on it





Known Bugs...................................................................................

- After several map rotations the server will fill up with ZMBI clients, this is a bug in the executable which 
  has not been fixed. I'm on the way to fixing it however it's very time consuming figuring it out.
  
- Bots will sometimes get stuck on the spot, it's like their threads get terminated and they just stand there.

- Bots will sometimes get caught inside dumpsters, and or other geometry, if this occurs, please take a screenshot 
  and send it to me at perry_hart@hotmail.com. It can probably be fixed by changing the waypoints around.
  
- At the end of a round of sabotage on certain levels (showdown and overgrown) an index mismatch 
  for weapon error appears. IW is aware of this and hopefully they will fix it soon. (it appears v1.7 fixed the same
  issue with search and destroy, but sabotage is still broke).

- CREATING OTHER CLASSES THAT THE ONES USED IN PROMOD WILL RESULT IN A CRASH !

Have Fun!!

Feedback: m_tey94@yahoo.com (For Promod Stuff) perry_hart@hotmail.com (For PeZBOT Stuff)
Date: 14/12/08