LoefBot A Client-Side Proxy-Only Deathmatch Assistant Bot by James Loe (jamesloe@mindspring.com) Olivier Montanuy (Olivier.Montanuy@wanadoo.fr) Version 0.1 LIST OF FILES: Loefbot.exe program for a PC under Windows 95 Loefbot.txt this file ABOUT LOEFBOT: The LoefBot borrows heavily upon the Terminator Bot by Olivier Montanuy, which is why he is listed as co-author of this bot. You might notice that this text file is very similar to the one distributed with the Terminator bot, and that is because it is. I cannot thank Olivier enough for letting me use his code in the LoefBot, and he deserves alot of praise for his excellent work on the Terminator Bot. While the AI of this bot may have been written by me, the LoefBot would not be in existence without the support of Olivier Montanuy. Much thanx goes out to him........ NOW ON TO THE GOOD STUFF! The LoefBot has some very simple protocol and command line options, as follows First, you must connect to a server you wish to play on. Right now the LoefBot only works on TCP/IP networks. Simply type in the server like the following example illustrates: loefbot.exe connect (server) (ie. loefbot connect 72.72.72.72 *or* loefbot connect quake.kewl.net:26000) Now the bot is ready to go. All you need to do now is run Quake, join a TCP/IP Multiplayer game, and type in YOUR OWN IP ADDRESS in the "Join game at" box at the bottom of the screen. That's all there is to it! I hope you enjoy the LoefBot. IT WILL RESPOND TO "NO BOTS PLEASE" AND "I LOVE BOTS". This is the only way I could come up with to successfully control the use of this bot where it is unwanted. Keep reading for more detailed info. This program is copyright (c) 1996 James Loe and Olivier Montanuy. YOU ARE NOT ALLOWED TO DISTRIBUTE IT FOR ANY COMMERCIAL PURPOSE. Use of this program is free. Quake is a registered trademark of id software, Mesquite, Texas. SYSTEM REQUIREMENTS: You must have... some machine with a TCP/IP network enabled (actually, UDP/IP). That can be a PC, a workstation, or anything that can run either Linux, Unix, Windows NT or Windows95. CPU and memory are not a problem. The bots are the only Quake client that accept to run a low-end 486 (maybe even on a 386). To enable TCP/IP, you must have some kind of network. It can be the Internet, via PPP or via a LAN, a standalone local network, or even a simple network card connected to nothing (loopback). Please do not ask me how to setup such a network. Also, you must have Quake registered. This is not a system requirement, but a moral requirement. STARTING THE BOT: Command line examples: bot -h Get some help. bot quake.best.com:22000 Connect to server quake.best.com port 22000 bot quake.best.com:22000 -name llama -color 1 2 Same as above, but the bot name is "llama", the pants color is 1, shirt color is 2. bot quake.best.com -game mods Connect to server quake.best.com port 26000 Detect existing model/sound files in: id1/pak0.pak id1/pak1.pak mods/* There will be a warning for each missing file. COMMANDS FOR THE BOT: The bot console is a bit like the Quake console. You write a command, then a space, then the eventual command parameters. Then you press RETURN and the command is executed. Fairly simple, indeed. The name of the commands sometime look like those in Quake, but actually only the first character is significant. Bot commands, before the bot begins playing: quit = quit the bot info = request game infos player = request the list of players rule = request the list of rules connect IPADDRESS:PORT = connect to a server (IPADDRESS:PORT is optional) Bot Keyboard commands, while the bot is playing: quit = disconnect and quit player = list of players names, frags (and hate level) say MESSAGE = say MESSAGE to all the players Bot debug commands: a = list of all players positions danger = coordinates of all dangerous thingy x = coordinates of all entities in the game entities = infos on all entities in the game PLAYING IN PROXY MODE: Proxy mode enables you to see through the eyes of the bot... or actually, to play a normal game, but with some automatic reflexes handled by the bot. Regular procedure: . Launch the bot on a machine situated on your local network. Send command 'i' (server infos) to check if the Quake server replies. If the server doesn't reply, you better restart your bot. . Launch a regular Quake Client, for Windows 95 (i.e. with TCP/IP enabled). Go to menu: MULTIPLAYER | JOIN GAME | TCP/IP Select SEARCH FOR LOCAL GAMES Normally, the bot will reply to this search, and in the list of servers, you should see one server called LOEFBOT: it's the bot, waiting for you. So connect to LOEFBOT, and play as usual. Procedure for the UDP challenged: If the bot is on the same machine as the Quake client, or not on your local network, of if it's running on some pervert O/S, the bot will be unable to reply to SEARCH FOR LOCAL GAMES. If so, select JOIN GAME AT and enter the internet address of the bot (IP address). Normally, the bot should answer. If it doesn't work, please check the IP address you used, and the port number of the bot (26000 by default, like Quake). BOT IMPULSE COMMANDS: The bot catches some impulses, so that you can send simple command to it. keys 2 to 8 (impulses 2 to 8): If you press on a weapon you don't have, instead of saying "no weapon", the bot will orient your view toward the closest weapon of that kind, and gives you the distance to this weapon, and the time since it was last seen. impulse 72: This command toggles the bot automatic movements (disable/enable). Since the bot doesn't see the level yet, some of his moves are real stupid, and you'd better bind this impulse to an easily reached key, like P (pause). BOT POLITENESS: Some people rightfully consider that playing with bots is cheating. So if you don't like the idea of playing against this bot: - Type the message "No bots please" and the bot will immediatly disconnect. - Type the message "I love bots" and the bot will stop hating you (i.e. it will stop firing on you and will not avoid your line of sight anymore). If you manage a server, and don't want bots on this server, please have your server print the sentence "No bots please" when a client connects. THE BEHAVIOR OF THE BOT: Technical Note: - the proxy bot can only handle ONE QUAKE CLIENT. - it will usually connect ONCE to a server. Kill him after that. - under Win95, you might experience a 2 MINUTE DELAY when the quake client connects to the proxy bot. This is a bug in the windows TCP/IP stack. The only solution is to reinstall your network from scratch (well that's what I did, and now it works fine). This is not a bug in the bot. It doesn't happen with the SUN version. - currently, no file is read. The bot is wall-blind - a bot doesn't see every entity in the level. If a player is out of sight, the bot cannot know where he is... until he makes a noise (even a faint one). MISC STUFF: - If you do not run the bot from the Quake directory, then it CANNOT see the walls. In that case, it will often kill himself with the rocket launcher. - When the level can be loaded, the bot is supposed to see the walls. Well, sort of. Actually, it doesn't really use that information yet, because the AI is really deficient. It won't avoid lava pits, for instance. - Normally, the bot should not fire rockets at close range. But it happens very often. There must be a bug somewhere in the weapon switching code. - The bot will show the forecast position of the player with a cloud of red dots. That's the point where you should fire, if you had a rocket launcher. Unfortunately, the bot will refuse to let you use one. So this feature is here only to increase your frustration... for the moment. - The bot sees you before he should (because the server sends him updates even when he has no direct line of sight) - The bot is stupidly static, when no players are around. (well, actually, it makes some random moves) - The bot ignores the static entities (like weapons, armors, and stuff) to avoid wasting too much time. KNOWN PROBLEMS: - The bot can play fine on a TCP/IP local network. However, if you put it in your dinning room (like me), then chances are that you don't have a Domain Name Server (DNS) ready. Then a 2-3 minute delay can happen, when the bot start. - The console of the bot will always think you use an English keyboard. Don't ask me why. Quake does the same. CONCLUSION: This is an advanced Deathmatch Assistant bot. I hope that you have fun using it! James Loe