                     EsTePBot 2.000 by EsTePaRiO

The EsTePBot is a bot for playing Quake, it's based on Reaper Bot 0.81, so
inherits these features from the Reaper:

* 4 skill levels (0 to 3), which affect to bot accuracy when shooting, speed
  that it can follow or "track" you, bot reaction time, and time taken to
  respond to "pain", which weapons it will use to attack you
* Uses all player frames 
* Improved following AI, can now handle following opponents around corners by
  analysing player actions, as well as using doors and teleporters, ability
  to learn levels; bots use their experience to remember where power ups are
  and to allow it to roam around, hunt opponents, etc. All knowledge is built
  upon the bot internal map
* Understands jumping, won't jump into lava or slime, will jump up onto ledges
  if its designated "goal" requires it, may use rocket jump if necessary,
  although it will not use it if it can reach the area with a normal jump
* Combat AI, the bot will attack differently dependig upon the bot's current
  armoury, its opponent's weapon, the distance between them, and whether
  enemy is running away. Picks best weapon depending on range, will go after
  health, ammo, or a weapon in the middle of combat! (should the circumstance
  require it); trys to avoid combat if health or ammo low, and it thinks it
  can escape, avoids combat with players who are invincible, "remembers"
  players accuracy, tactics and adds it to its AI. This means that this is
  one of a limited few bots which have a learning curve. "Forgets" tactics
  after game restarts otherwise bot would become too powerful, will prey upon
  weaker targets. If it can choose between fragging a player or causing
  damage to a more powerful target, it will choose the weaker bot in order
  to score a frag. Can learn player "hatred" i.e. it can remember who fragged
  it and will hunt them if the bot's armoury appears to be larger than its
  opponent. Improved grenade and rocket aiming
* Understands triggers and buttons, will go for the triggered object when
  it shoots a trigger or presses a button. (This is how it can find secrets),
  doesn't go after doors, unless it is open or has been triggered by the bot,
  doesn't go after triggers or buttons which have already been activated,
  although it may steal secrets if it can reach them before the player.
* Understands doors, teleporters, secret doors; will fire at secret doors
  to trigger them
* Chooses goals according to priorities depending on its current power,
  understands and uses all weapons, ammo, powerups, etc. Won't keep going
  after an item if it can't reach it. Will use internal map to go after items
  it wants but can't see
* Up to 16 bots on a level 
* Scoring. Impulse 210 gives scores, scoring is 2 * kills - deaths - 2 *
  suicides
* Bot swims in water, doesn't usually drown, unless forced and held
  underwater by player fire, understands whether it can swim to items, can
  jump out of water, follows enemies into water, won't use lightning gun
  underwater unless the bot is invincible
* Same number of bots generated in new level after players exit via slipgate 
* Bots die in lava and slime, and drown if under water too long 
* Bots can telefrag or be telefragged 

The EsTepbot inherits all these, but this bot has these additional features:

* Compiled with quakec v1.06 source code 
* Added the Reaper Bot Improvement Protocol, by Roscoe A. Sincero: The Bot
  walks well on broken ground, eliminated the bot thud sounds, the bot
  mimics the player movements when it's caught by a splash of a explosion,
  the bots do circle strafe, and the bots are showed in rankings, like in
  multiplayer
* The observer mode, impulse 212, is a lot better than the original Reaper
  Bot observer mode, you can fly and go clenaly through doors and teleports
* You can create bots with aleatory skill between 1 and 3 
* The bots have its own colors and aleatory names, and if you play bots of
  skill equal or greater than 2, these names that the bots use, are from
  famous spanish quake players
* The bots can be male or female, with his/her own skin, model and sounds.
  To create a male bot: impulse 205, to create a female bot: impulse 200,
  to create a male bot of aleatory skill: impulse 207, to create a female
  bot of aleatory skill: impulse 201
* The bots show the weapon that are using, not always the same "cannon" 
* The bots do comments, you can shut up them with impulse 225 
* If a bot is attacking you in a very short distance, and he is seeing you
  bleeding (your health is very low), he will try to kill you with the axe
* When a player or a bot dies, they leave the backpack and the weapon that
  they were using
* New weapons
   - Grappling hook : impulse 22 
   - If you have the nailgun, you can do impulse 4 again and obtain the flame
     thrower, weapon that the bots use too
   - If you have the rocket launcher, you can do impulse 7 again and obtain
     the fire missile launcher
* The bots have their own weapon, the laser, they can use it if they have the
  supernailgun, the hits of the laser are a little more painful than the
  super-nails, but this weapon is more inacurate too
* With impulse 15 you can activate or deactivate the Ycam, a new perspective
  in player's view
* With impulse 31 you can activate the lasersight, there are two models, the
  normal lasersight (white light point) and the bright lasersight
* Deathmatch 2 and teamplay 2 are supported 
* The bot changes its pitch when looks up or down, the original Reaper always
  looked at front
* The player bleeds when his health is lower than 30 
* When you shoot against a wall, you spread some chunks of it, and you will
  see a splash if you shoot against water
* With impulse 226 you can show the skill of the active bots 
* With impulse 215, all items respawn in aleatory places 
* The respawning places of the player at the beginning of a map are aleatory 
* Lag simulation, with impulse 202 you decrease the lag, with impulse 217 you
  increase the lag. The simulation is not perfect and does not affect to the
  bots.
* The bots choose their attack weapon with more sense, they will worry about
  their health, armor, if wear a powerup or rune, etc...
* The Estepbot features now the CTF runes:
  The runes are a powerups that grant certain power. You can only wear one
  rune at a time, and the runes, if you don't take it, disappear and respawn
  in another place of the map every certain time. If you die wearing a rune,
  you drop the rune. To know what rune are you wearing, impulse 117, to drop
  the rune that you are wearing, impulse 119. The bots use runes too.
  There are 4 runes:
   - Earth Magic: Wearing it, the enemy attacks hurts you a half. If you hit
     someone wearing this rune, you will hear the invencivility noise.
   - Black Magic: Wearing it, you attacks make the double of pain to your
     enemys. You can hear the quad noise when attacking using this rune.
   - Elder Magic: Wearing it, your health increases to 150, and every time
     you get hurt, your health regenerates to reach the 150, and your armor
     too. During the regeneration, you can hear certain noise
   - Hell Magic: Wearing it, you shoot at double fire rate. You can hear a
     "ROOARR" noise when attacking using this rune

The installation is simple, uncompress the file estepbot2.zip on
C:\quake\estepbot (you must create this subdir).

The files are:

estepboti.txt
pak0.pak

Then write this line to begin:

quake -game estepbot -listen 16 +deathmatch 1 +map dm4

"quake" can be winquake or glquake, and "dm4" can be the name of any other map

The parameter +deathmatch can be:

+deathmatch 1 : Normal Deathmatch 
+deathmatch 2 : The weapons always stay, don't dissapear if you take them

If we want to play in teams, we will write +teamplay, not +deathmatch:

+teamplay 1 : The members of the same team can't hurt themselves
+teamplay 2 : The members of the same team can kill themselves, and if this
              happens, the killer obtain a negative frag

These are the list of impulses 

IMPULSE 4 - Toggles between the nailgun and the flame thrower 
IMPULSE 7 - Toggles between the rocket launcher and the fire missile launcher 
IMPULSE 12 - Changes to the previous weapon (10 changes to the next) 
IMPULSE 15 - Toggles the Ycam 
IMPULSE 22 - Gives the Grappling hook 
IMPULSE 31 - Toggles the lasersight (there are 2 models) 
IMPULSE 117 - You will be informed of the rune that you are wearing 
IMPULSE 119 - Drop your current rune 
IMPULSE 202 - Lag simulation: Decreases lag in 5 units 
IMPULSE 217 - Lag simulation: Increases lag in 5 units 
IMPULSE 200 - Create a female bot 
IMPULSE 201 - Create a female bot of aleatory skill 
IMPULSE 205 - Create a male bot 
IMPULSE 207 - Create a male bot of aleatory skill 
IMPULSE 210 - Shows the score 
IMPULSE 211 - Remove all bots 
IMPULSE 212 - Toggles the observer mode 
IMPULSE 214 - Update the bots, must be used after changing the cvars
              SV_GRAVITY or SV_MAXSPEED with active bots
IMPULSE 215 - All the items respawn in aleatory respawn points 
IMPULSE 218 - Turn on restricted mode (only client 0 can add bots or become
              an observer)
IMPULSE 219 - Turn on super restricted mode (no client can add bots or
              become an observer)
IMPULSE 220 - Show the frags 
IMPULSE 222 - Show the top three scores 
IMPULSE 225 - Toggle the comments of the bots 
IMPULSE 226 - Show the skill of the active bots 
IMPULSE 118 - Show the number of active bots 
IMPULSE 1XX - Bounds the total number of bots + players to XX (XX must no
              greater than 15) Enough bots to meet this bound are spawned,
              and they leave and come back as players enter and leave the
              server.
SKILL N - Change skill level (N = 0 to 3, default is 1, 0 is easy and 3 is
              hard)

To begin the game, we must write the skill of the bots, the default is 1.
Then create the bots, up to 15, with impulse 200, 201, 205 or 207

The teamplay gameplay is:
First of all, we must set the "teamplay" cvar (1 or 2), then we will create
bots of our team with impulse 1XX, and we will create bots of the enemy team
with the impulses 200, 201, 205 o 207. By example, with impulse 102 we will
create 2 bots of our team.
The enemy team color are always red, so we must not use this color for our
team. We must not change our colors in the middle of a team combat

The ideal speed to play with the bots is 320, but you can put the speed that
you want. The ideal sv_aim is 0.93.

The ideal maps to play with the bots are those maps that don't are too
complicated. By example, in the DM maps, the best are DM1, DM4, DM5 y DM6.
I strongly recommend the map colection DA PAK.

The author:
EsTePaRiO - estepi@bigfoot.com

Credits:
Steven Polge for Reaperbot v0.81
Roscoe A. Sincero for the improvement protocol
Boon for the female mdl
Ghost of Femplayer v2.5 for female sounds
Johannes Plass for his modules weldgun, shrapnel and burn
Harvey Lee for the Ycam
Alan Kivlin for the rankings code
Lord Primus for the bot comments in English
And many more 
