the mikeBot Project Times


Binary, Documentation July 1, 1997 $1.50 Sundays

Binary mikeBot to be Released

[ May 20, 1997, mikeBot press ] Recent developments have allowed for a version 1.0 beta of mikeBot to be released to the general non-programming public. Available for Windows 95, SunOS, AIX and Linux, mikeBot can be used for a variety of fun and exciting tasks.

Using revolutionary mikeBotVision, up to four quake clients can connect to mikeBot and watch as he leaves piles of gibs in his path. And mikeBotCam will record to .DEM files, starting

at any point in the level, for re-broadcast later.

Apparently in the works is mikeBotFilmer, allowing mikeBot to run pre-programmed routes through a level and focus his camera on any specified player. Excellent for aspiring movie-makers.

For documentation of commands, both command line and in-game, see the two side-bars below.


Banning


Banning mikeBot is simple. Put the message

no-autonomous-bots

(with the dashes) as a center-printed message-of-the-day (or whatever, as long as it's displayed soon after connection) on your server. Players are not able to kick mikeBot in any fashion.

Commands


Command-Line Arguments
commandmeaningexample
-r<fname> Record demo to <fname>mbot -rmike.dem
-p<port>Use port portmbot -p26001
x.x.x.x Use x.x.x.x for server addressmbot 127.0.0.1
-i<fname>use <fname> for initialization file, not .mikebotrcmbot -imikebot.cfg

In-Game Commands (Unconnected)
commandmeaningexample
cconnect
iPrint server info, player names, rules (doesn't connect)
s <IP/alias>Change server address. Either an IP (127.0.0.1), a name (quake.llama.com), or an alias, set up in the config file (clanServer1)s 0.0.0.0
?Print help
qQuit mikeBot

In-Game Commands (Connected)
commandmeaningexample
c <string>send string as console commandc ping
s <string>send string as a say messages i am mikeBot
a Prints armour health shells nails rockets cells weapons
v Prints all visible entities
p Prints active players, frags and colours
r <fname>starts recording a .DEMo to fnamer mike.dem
R Stops recording
f name valueAssigns value to name. For valid flags, see the config file documentation. value is a long integer.f no-jump 1
F name Prints the current value of nameF no-jump
l Prints current level name and file name
t Prints nav and fire targets
q Disconnect from server
? Print help
h num amtMakes playernumber num's hate amt. Negative values mean mikeBot won't target them.h 0 -500
e Prints all player entities, origin, velocity
i numSends impulse #numi 255


Config File


The config file, by default .mikebotrc, can set flags and make aliases for servers. All lines preceeded by "#" are ignored. If a line starts with a "*", it is a special header line.

*flags

All lines below the flags heading must be of the form:
	flag-name1 flag-Value-1
	flag-name2 flag-Value-2
	# optional comments
	# ignored lines
blank lines are also ignored. These lines assign the values to the flags they correspont to. The following table is all flags, possible values and meanings. Note that all values must be integers, not floats (decimal numbers).

Flagvaluesmeaning
avoid-water0,1if 1, mikeBot'll avoid water like its lava
no-print-center0,1Supresses printing of center-print messages. This should always be 1, or you will get tons of output
no-print-damage0,1Supresses printing of damage messages, and the guessed culprit
no-graph0,1 Won't try and build a directed graph of the level
no-path0,1 Won't try to navigate using the directed graph.
no-fire0,1When 1, mikeBot won't fire at anything. (he'll still target in the normal way)
no-jump 0,1if 1, mikeBot won't jump.
no-move 0,1if 1, mikeBot won't move at all.
teamplay0,1 If 1, mikeBot won't target people with the same colour pants
talk0,1 Turns random insult generation on/off
talk-prob0...1000015 is a good number. The probability mikeBot will insult on each timestamp
damage-talk-prob0...1000030 is a good number. The probability mikeBot will issue damage-insults each time he's damaged.
no-NG0,1 Won't use the nailgun (which is changed to a BlazeGun on many servers)
parse-string0,1 When 1, all messages are run through the parseName() function. (see the language spec for more)
default-shirt 0-13 Used when cooperation stops. mikeBot switches back to these values.
default-pants 0-13 See above.
sometimes-miss 0,1 mikeBot will occationally miss people with lower frags if this is 1.
skill 0..100 This sets his probability of hitting. If 0 or 100 he'll always (try) to hit.
target-record 0,1 If 1, only records while a firecontrol target is visible.

*servers

The lines below *servers must look like:
serverName serverIP
where serverIP is either the number (127.0.0.1) or the name (quake.mikebot.com) of the server. These can then be used instead of the IP with the server (s) command or on the command-line (i.e. mikeBot serverName)

*defaults

Lines below *defaults must be one (or all) of the following:
pants 0-13
shirt 0-13
name mikeBot
They are pretty self-explanatory. These are the colours and name of the bot. They can be changed with the b, P, and S in-game commands.

Example

Below is the default mikeBot config file. (Called .mikebotrc by default)
#
#  mikeBot initialization file
#

#
# flags go in no particular order...not every flag must be present
#

*flags
default-shirt 3
default-pants 3
send-greeting 1

*defaults
name -=mikeBot=-
pants 3
shirt 3

*flags
avoid-water 0
no-NG 1
no-jump 1
no-graph 1
no-path 1
no-print-center 1
parse-string 1
talk 1
talk-prob 10
damage-talk-prob 40

#
# For use with the Server command...`s munet' will
# use `136.159.102.88' for the IP
#

*servers
hkc 129.128.109.135
munet 136.159.102.88
oanet quake.oanet.com
death 198.161.43.124


Downloading


Before downloading, please note that mikeBot:
File Name Operating System Size
mikeBotLinux.tar.gz Linux, FreeBSD* 300 kB
mikeBotSunOS.tar.gz SunOS 300 kB
mikeBotAIX.tar.gz AIX 300 kB
mikeBotWIN95.zip Windows 95 300 kB

* I have neither Linux nor FreeBSD. These binaries were not compiled or tested by me, so your results may vary wildly


mike warren welcomes your
comments and suggestions