-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathtrmbot96.txt
352 lines (261 loc) · 13.1 KB
/
trmbot96.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
TERMINATOR
a Quake Bot and Deathmatch assistant
by
Version 0.96
--------------
LIST OF FILES:
--------------
bot Terminator Bot for Linux (compiled under Mandrake 6.0)
bot.exe Terminator Bot for Windows (95,98,NT)
bot.txt
qwproxy Quake World proxy for Linux (compiled under Mandrake 6.0)
qwproxy.exe Quake World proxy for Windows (95,98,NT)
---------------
ABOUT THIS BOT:
---------------
This program is meant as an automatic player (a bot) for the game Quake,
by id software. It will run with Quake version 1.0x.
This program is also a fairly good deathmatch assistant: you play the normal
moves, and the bot handles some of the mundanities (like saying where the weapons
are, and slaughtering any player that comes too close).
Of course, you'll have to be pretty bad, pretty low in morale or pretty
lagged, before you use that kind of cheat.
THIS PROGRAM IS NOT MAINTAINED ANYMORE - I don't have enough time for that.
--------------------------
CHANGES SINCE VERSION 0.95
--------------------------
- small bug fixes
- Compiled under Visual C++ 5.0, Linux glibc2
--------------------------
CHANGES SINCE VERSION 0.94b
--------------------------
- removed a bug that prevented the printing of funky names
- added a verbosity option, to print messages only when desired.
printing messages during game play can make the bot slower.
--------------------------
CHANGES SINCE VERSION 0.94a
--------------------------
- bug fix to make SLIST usable
- Improved IP aliasing support (fixed a bug that prevented the use of IP aliasing).
- Possibility to modifiy the Ip address of the bot, considered as a fake Quake server.
------------
LEGAL STUFF:
------------
This program is copyright (c) 1996,1997,1998 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.
The name "Terminator" is used as a parody of the character in the movies
"Terminator" and "Terminator 2" by James Cameron.
--------------------
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 192.246.40.27 -auto
Connect to idsoftware public server
Start playing in automatic mode (no proxy)
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.
-------------------------------
SELECTING THE BOT IP ADDRESSES:
-------------------------------
If you're not an IP expert, please skip this section.
Most machines on the Internet have only one IP address (plus the local IP 127.0.0.1).
Yet, some have more than one IP address, either because they use more than one network
card, or because they use a PPP link to the Internet and a network card for the local
network. For that kind of machine, you may want to be able to select the IP address
that the bot will be using, because all your IP addresses might not be reachable from
the Internet.
The option is the same as that proposed by Quakeworld: -ip <ip address>.
Example 1: a machine on a LAN, with a PPP connexion:
Suppose that your machine has two IP addresses, namely 172.28.1.1 and 192.246.40.1.
Address 172.28.1.1 is your local LAN address, valid only on this LAN.
Address 192.246.40.1 is your PPP address, valid on the whole Internet.
If you run the bot as usual, there is a strong chance that it will use address 172.28.1.1
and be unreachable from the Internet. So the idea is to run the bot with
bot -ip 192.246.40.1 plus the usual other options.
Example 2: Multiple bots on the same machine, using IP aliasing
Quake supports only one client per IP address, so if you want to run more than one bot
on a single machine, you must use IP aliasing.
Suppose that your machine has only one network card, using address 172.28.1.1, but that
you were crazy enough to alias this card to 172.28.1.2 and 172.28.1.3, then the bot will
use 172.28.1.1 by default. If you cant to use 172.28.1.2, try:
bot -ip 172.28.1.2
bot -ip 172.28.1.3
Commands to get the IP addresses that your machine is using:
under Linux: ifconfig (or the RedHat netcfg graphic tool).
under windows95: winipcfg
---------------------
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 TERMINATOR: it's the bot,
waiting for you. So connect to TERMINATOR, 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 16:
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).
impulse 100:
The bot will orient your view toward the closest player he knowns of, and
give you the distance and the time since he was last seen.
impulse 101 to 116:
Same as impulse 100, but for a specific players (1 to 16).
---------------
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).
Bot behavior currently implemented:
- The bot locks on hated players, and fire on them.
- The Bot knowns nothing about team play. Not implemented yet.
your team mates will be exterminated like the others rats
("Only paranoids survive" -- remember you're playing on an Intel)
- If the bot is hurt by a gunshot (or a shaft?) he will know who
hit him, and will hate the guy with the utermost endeavor.
- If the bot is hurt by a nail, rocket, or a grenade, there is no
reliable way to know who hit him, so the bot will hate the closest
player. So don't stay close to the bot.
If no one is close, the bot will hate EVERYONE.
- The bot avoids missiles, grenades, and the line of fire of
hated people. The line of fire avoidance course usually force
him to spiral around you, until he's close to you, and in
your back.
- If the bot cannot move in the direction it wants, he makes
a random move (pretty stupid, I know... wait for the BSP code).
- If you make a sound, the bot will know precisely where you are.
But he won't move toward you :-)
- If you drop a backpack, the bot will move toward it. That's
currently his only reliable way to collect weapons.
Known misfeatures:
- 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 still a beta of the bot. Any decent player should be able
to kick his ass pretty easily, since it doesn't look for weapons or health.
It's more sophisticated than other client bots I could take a look at, but
it's certainly less sophisticated than the best Quake-C bots.
I hope you'll enjoy this,
Olivier Montanuy