-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathzeus202b.txt
421 lines (325 loc) · 16.6 KB
/
zeus202b.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
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
=============================
Title : ZEUSbot 2.02 beta
=============================
Filename : ZEUS202B.ZIP
Version : 2.02
Date : 12/19/96
Author : Jonathan E. Wright aka Nelno the Amoeba
Email : nelno@resurrection.com - please read this *entire* file before
emailing pleas for help to me. Most
questions that I get asked are already
answered here! I like to get email, I just
don't like to have to say the same thing
100 times. =)
Home Page: http://trailerpark.com/phase1/nelno
Check here for the latest updates to all my Quake mods:
Zeus, Cujo, plasma gun, BFG, blaze gun and more.
If you didn't get this mod from my site, it's likely
that you don't have the latest version.
Credits : ID Software for designing Quake with Quake C!
Otherwise, this bot was built from scratch.
============
Type of Mod
============
Quake C : yes
Sound : yes
MDL : yes
==================
Format of Quake C
==================
unified diff : no (I don't even know what this means)
context diff : no (this either)
.qc files : no (not for the moment)
progs.dat : yes
See the included file PROGS.SRC for a list of which files have been
modified and which were added.
================================
Description of the Modification
================================
This is a *MAJOR* update to the original ZEUSbot. The old code, based
on the TMBot, was *completely* done away with. The ultimate goal is to
provide an intelligent deathmatch opponent\helper bot. Eventually, the
source WILL BE RELEASED, but until then, you'll have to get your tidbits
from the next release of Cujo.
The ZEUSbot is both a helper bot and a deathmatch bot. In single play
he will effectively annihilate just about anything that get's in his way,
and you'll be lucky if you can pick anything up before he does.
The ZEUSbot's death match capabilities are currently under development, but
it's still probably the most intelligent bot available, excepting Steven
Polge's excellent Reaper bot. Please see the list of future enhancements
for an idea of features that will be added to the ZEUSbot.
=================
Zeusbot Features
=================
Besides being _at least_ as smart as any of the standard Quake enemies, the
ZEUSbot also has a few enhancements:
. can pick up any item a player can pick up.
. knows how to jump intelligently across obstacles, down from ledges and
into water.
. can fire all of the standard weapons, plus the plasma gun (included in
this mod).
. knows when an object is unreachable, and will not keep trying for an
unreachable object.
. based on the player model -- uses all player frames.
. has his own cool *ANIMATED* skin -- facial expressions change while
attacking/firing/standing.
. can swim -- follows and attacks under water.
. can jump out of water onto ledges.
. can navigate broken ground as easily as a human client.
. strafes and circle strafes while attacking.
. chooses its best weapon based on available weapons/distance.
. can use platforms.
. Has *totally new* movement code which makes it the smoothest bot ever
made -- just as smooth as a player character, no jumpiness or blitting.
. can roam levels by itself, or follow the player.
. Advances or retreats based on distance from target.
. has all the off-color and corny comments expected from Zeus 1.0, which
can be enabled/disabled with an impulse.
. can spawn up to 15 opponent and helper bots.
. opponent bots respawn when in deathmatch.
. can be told to attack with only an axe (and he's mighty dangerous with it,
too).
. can be told to stay or follow, glow, attack or not, teleport to owner,
and report on his status.
. view toggle between bot's and player's view.
. opponent bots get their own unique name in a deathmatch.
. will not fire when owner or teamate is in between bot and enemy.
. helper bot automatically respawns after each level if he was active
when the last level ended. He retains all his weapons, ammo, health
and armor.
. bot leads target based on skill level.
. bot has a chance to miss with shotguns based on skill level.
. bot's cannot see invisible players until fired upon.
. if teamplay is set, opponent bot's will all be on the same team,
verses the player.
. is generally a badass.
I'm sure I've left a number of things out...
But you should get the picture -- this bot ain't no wuss.
====================
Future Enhancements
====================
These are just a few of the features currently being added to the ZEUSbot:
. still need to do a head model for the bot. Just haven't gotten around
to it.
. smarter tracking of enemies -- for example: enemies on catwalks above
currently confuse bots.
. ability to find and open secret doors -- as soon as I figure out why he's
not seeing them...
. the helper bot will be made a powerup for deathmatch games -- currently
15 can be spawned per client (don't try it with more than one client!)
. go for platforms, doors, etc.
. dynamic level mapping.
. just about anything else that makes the bot better.
PLEASE EMAIL ME WITH SUGGESTIONS FOR IMPROVEMENT!
========================
How to use Modification
========================
Helper bot commands:
--------------------
Impulse 100 Activates a helper bot
Impulse 101 Deactivates the last activated helper bot
Impulse 102 Teleports the bot to your current location as long as there is
room.
Impulse 103 Toggles the bot's glow on and off.
Impulse 104 Reports the bot's status.
Impulse 105 Toggles bot attack mode on and off.
Impulse 106 Toggles between player's and bot's view.
Impulse 107 Toggles the bot's stay status. When staying, the bot will remain
where he is until an enemy is sighted or he is told to follow
again.
Impulse 108 Tell the last created bot to use only his axe as a weapon (this
is very entertaining, and they happen to be pretty good with it).
Impulse 109 Toggle Zeus comments on and off. This also toggles enforcer
sounds on and off.
Impulse 110 Toggle bot roaming on and off.
Impulse 111 Make bot throw backpak (useful if the bot has been picking
everything up before you can). The bot will throw the back
pack to you. If you are too far away, the bot will pick
the backpack back up (unless he is staying).
Debugging Commands:
-------------------
Impulse 125 Toggle bot verbose mode on and off. Turn it on if you want to
know what the bots are doing and "thinking".
Impulse 126 Kill all monsters on current map. (Gib's some, and may cause an
"no free edicts" error with low memory).
Impulse 127 Toggle player damage. This is a better cheat than god mode since
the player does not experience any impact from weapons or twitch
when hurt. If you use this in deathmatch while playing with
another human you are a low-life and you'd better stop -- this
won't be here in future versions.
Impulse 128 Debug toggle. Allows printing of some specific messages.
Impulse 129 Show unreachable items. For debugging use.
Impulse 130 Show opponent distance toggle. When on, the distance to the
last-created opponent bot will be displayed.
Impulse 131 Toggle observer mode. Currently, you can still fire in observer
mode, but it's only for debugging purposes right now.
Deathmatch Bot Impulses:
------------------------
Impulse 150 Spawn an opponent ZEUSbot.
Impulse 151 Show scores -- shows all player and bot frags (including
helper bots). Currently not sorted and not space padded,
but that will change at some point.
Bind these impulses to keys to make commanding the bot easy. For example,
to make the Q key activate the bot bring down the Quake console by pressing
the ~ key and then type:
BIND Q "IMPULSE 100"
Now, every time you press Q the bot will be toggled between his active and
inactive state. You can bind the other impulses in the same manner. When
you exit Quake, the configuration will be saved and you won'y have to do it
again.
================================
How to Install the Modification
================================
READ THIS SECTION IF YOU ARE HAVING TROUBLE, BEFORE EMAILING ME!
If you still can't figure it out, please email me and try to be
specific about at what point you are having trouble, and what
error messages, if any, you are recieving.
1) Create a directory within the Quake directory called ZEUS.
2) Unzip the files from this archive into that directory, using the -d
option with PKUNZIP. Winzip will create the correct directories
automatically.
3) Start Quake by typing: QUAKE -GAME ZEUS
4) Play with the god of the lightning bolt.
==================
Technical Details
==================
Code: 6480 lines
Time: ~60 hours
Known bugs and peculiarities:
-----------------------------
. bots sometimes appear to stare at a wall for a little while
when roaming. Haven't messed with this one yet, since I
will probably be enhancing the roaming AI at some point
anyway.
. bot's can get confused by backpacks that fall on a ledge above
them and a barely hanging on the to edge of the ledge (ie, they
look like they should fall). Kind of rare. I haven't bothered
with this yet.
. bots can become confused if more than 3 unreachable items are
within view. This is an arbitrary value and can be increased if
needed (at the cost of more memory, of course).
. a horrendous splashing sound when the bot is in shallow water (such
as in E1M3 by the rocket launcher/gold key). This is apparently
because the Quake engine is confused about whether or not the bot
is in or out of the water, and I have not thought of a way to fix
it yet. Please email me if you know Quake C and have any good
ideas -- this is a REALLY ANNOYING bug. This may be a result of
the way I'm moving the bot, since I have to kind of fool the
Quake engine at points. Hopefully it is fixable in code, or I'll
have to start modifying sounds.
. occasionally the bot may become "paralyzed". If you encounter this,
please email me and describe the circumstances under which it occurred,
along with whether or not the bot became mobile again by itself, through
teleportation, if it reacted to pain (ie. flinched) while paralyzed, and
what weapon it was using. This bug happens so seldom that I'm having
trouble locating it.
PLEASE EMAIL ME WITH ANY BUGS YOU FIND. When you email me, please try
to be specific about the nature of the bug and under what circumstances
it occurred. If I cannot reproduce the bug, it is very unlikely that I
will be able to fix it.
====================
Version Information
====================
Changes in version 2.02
. helper bots no longer spawn on top of one another if the
player doesn't move before spawning.
. bots now drown and will go for air when they need it.
. added the "throw backpack" command in an attempt to head off the
email complaining about Zeus being an item hog. I'd say he's
just damn efficient.
. fixed bot jumping. Jumps are now more accurate, and bot's find
ledges when they should.
. bots can no longer jump amazing distances (it was cool, but
it wasn't quite fair).
. fixed ChanceToHit with shotguns so that non-moving entities
always recieve the highest chance for that skill. Monsters
that use MOVETYPE_STEP will always get highest chance, unless
jumping or falling because they don't use actual velocity
factors to move -- no big deal only affects helper bots.
. fixed helper bot levels (they were not having their levels set,
resulting in skill 0 helper bots, which is lame!)
. implemented ledge detection. YES! This one REALLY SUCKED. Bot's
are now much less likely to run off a ledge. But they may still
jump into lava like the fools they are... =)
. start-up info message added.
. fixed a bug with unreachable items that was the result of my
absentmindedness...
. bot will now search for items above and below for up to 2 seconds
before deciding they are unreachable. The bot used to check the
pitch to the item, but this changes to much as the bot moves and
was not doing the job.
. modified bot's swim routines. Bot no longer sinks too fast. In
fact, the bot is a damn good swimmer and will just barely sink at
all.
Changes in version 2.01
. Skill levels implemented.
. Target leading implemented.
. Target missing and chance to hit implemented (for line-tracing
weapons such as the shotgun).
. bots will no longer see invisible players unless they are attacked
by one.
. enhanced ability to chase player out of sight
. fixed weapon ranges so bot will fire from greater distances
Changes in version 2.0
. While this is the second version of the Zeus bot this was truly the
first version of this code. Seeing as Zeus 1.0 was based on the
TM bot and was my first attempt at doing anything with Quake C, it
doesn't really count as the same bot -- it just has the same name.
===================
Author Information
===================
I'm a 25 year old who's been programming computers for the last 15 years. I
studied computer science at Clemson University and am currently designing
web pages for corporations in the Western North Carolina area. Besides being
proficient in several programming languages -- 80x86 assembly, C and Pascal
being the most notable -- I also draw and write music in my spare time.
============================
Answers to Common Questions
============================
Here are answers to some of the most common questions I recieve about my
Quake C mods:
Q: How can I use your mod when I'm playing internet deathmatch games?
A: You must find a server that is already running the mod. That is the
only way, besides starting your own server.
Q: Help! How come I can't get your mod to work?!?!?
A: You are doing something wrong. =) They work for everyone else. Please
read the instructions very carefully and do everything exactly like they
say. If something is still unclear, then email me, and please be clear
about exactly the problem you're having -- "Cujo won't work" doesn't give
me any clue as to what the real problem might be. For example: "I
installed the file into C:\GAMES\QUAKE\CUJO and ran the game with
QUAKE -GAME CUJO but nothing happens when I use IMPULSE 100." Makes a lot
more sense and lets me know almost exactly what the problem is. If you
recieve any error messages, be sure to include those in your mail also.
Q: Can you add so and so or change so and so in the next release?
A: Probably so. Please email any suggestions or complaints that you have.
The whole point is to make something that other people enjoy using, so
I've got to have other people's input!
Q: Can I use your mod in a compilation mod I am creating?
A: Read the copyright and distribution permissions, then please email me
and tell me about it. If you use any of my mods as a base or addition to
any other project, you must credit me and include an address\location where
my original mod can be found. Also, I will try to help you if I can, but
please do not expect me to bug hunt for you. If you modify my source code,
the bugs that crop up are your ultimate responsibility.
=======================================
Copyright and Distribution Permissions
=======================================
The modifications included in this archive are Copyright (C) 1996 by
Jonathan E. Wright and Quake C is Copyright (C) id Software.
You MAY NOT use the modifications as a basis for other publicly
available work without the written permission of the author.
You may distribute this Quake modification in any electronic format as long
as this description file remains intact and unmodified and is retained along
with all of the files in the archive.
=============
Availability
=============
You can find this archive at the following URLs:
ftp://ftp.cdrom.com
http://www.trailerpark.com/phase1/nelno
NOTE: if you downloaded this bot from somewhere other than
http://trailerpark.com/phase1/nelno, then it is likely
that you do not have the most current version. Please
check the above site if you would like the latest version
of the Zeus bot.