2
*******************************************************************************
4
* General Documentation for the Client Of Win (COW) *
6
* Comments, suggestions and bug reports to cow@netrek.org *
9
*******************************************************************************
19
3.1 Command Line Options
20
3.2 Pixmaps (Full Color COW)
24
4.1 Windows, fonts, cursors, and colors
29
4.6 Galactic/tactical map options
30
4.7 Keymap (and buttonmap) options
31
4.8 Playerlist options
33
5.0 Connection Types: UDP, TCP. Short packets.
37
7.0 MetaServer Options
47
This document describes the COW client, its capabilities, and the client's
48
features. COW started as the successor of the BRM client after release 3.
49
BRM started as a merger of the Berkeley client with Rick's Moo
50
client. Since then, all three clients have developed fairly independant of one
51
other. Familiarity with netrek is presumed throughout this document. Please
52
consult the newbie manual for information on the game itself.
54
COW has an expire function which insures that players obtain new copies
55
regularly. This alleviates the client's caretakers from having to support
56
ancient clients. Generally, a client will expire one year after its compile
61
Many people have contributed to COW and many many others contributed
62
to its ancestor clients. Here is an undoubtedly incomplete list of credits
63
presented in no particular order. Where possible their typical netrek name is
64
provided in the hope that you will ogg them:
68
Rick Weinstein Videodrome
69
J. Mark Noworolski Passing Wind
70
Tedd Hadley pteroducktyl
72
Andy McFadden ShadowSpawn
76
Nick Trown Netherworld
83
Dave Gosselin Tom Servo
87
Jonathan Shekter KillThemAll!
93
The COW client has many features that make it stand out from earlier
94
clients. This section will attempt to describe all of its features, including
95
those that are common to all clients.
97
3.1 Command Line Options
99
This section will describe COW features that are selected from the command
100
line when the client is invoked. Selecting "-u" for usage or any invalid
101
option will provide a brief summary of this section ( -help will work too ).
104
3.1.1 SERVER SELECTION
106
The "-h server_address" option will allow the user to select a specific
107
server. The client will look to the .xtrekrc file for a default server should
108
this option be absent. Examples of server addresses would be 136.165.1.12 or
109
starbase.louisville.edu.
111
3.1.2 PORT SPECIFICATION
113
The "-p port_number" option will allow the user to select a specific port
114
address. An example of a port_number would be 1111, 2222, or 2592.
116
3.1.3 DEFAULTS FILE SPECIFICATION
118
The "-r defaultsfile" option will allow the user to select a defaults file
119
other than .xtrekrc. The defaults file contains all of the user selectable
120
defaults ( please see Section 4.0 for more information on .xtrekrc ). Using
121
this option, two users can run netrek from the same userid / account and still
122
have unique defaults files.
124
3.1.4 VERIFICATION OPTIONS
126
The "-o" option instructs the client to use the old reserved.c verification
127
to identify itself to the server. Upgraded RSA servers will require that the
128
client use RSA verification. This is selected using the "-R" option.
130
3.1.5 RECORD GAME OPTION
132
The "-f record_file" will record the game into record_file.
134
The "-F record_file" will play the recorded game from record_file.
136
3.1.6 METASERVER OPTION
138
The "-m" option will instruct the client to search the Meta Server at
139
metaserver.ecst.csuchico.edu, port 3521 and present the user with a list of
140
available servers. The user may then select the most desirable server
141
directly from the client.
142
Alternatively, the "-k" option may be used to show the "known servers",
143
using the same format as the Meta Server list. The client generates
144
a list of "known servers" after each call to the meta server but only if
145
the "metaCache" option is set in your .xtrekrc.
146
To find out about customising the meta-server, set the Chapter
147
"MetaServer Options", later in this document.
150
3.1.7 AUTOLOGIN OPTION
152
The "-A passowrd" allows the client to automatically enter the specified
153
character password without having to prompt the user. This option is normally
154
used with the "-C character_name" option, which automatically enters the
155
character name. The "-C" option must be followed by a character name string.
157
3.1.8 NEAREST COLOR OPTION
159
The "-n" option allows the client to accept the "closest match" to the
160
colors requested for drawing. How good the match is is up to your windowing
163
3.1.9 NO PIXMAPS OPTION
165
The "-b" option disables the use of color pixmaps by the client.
169
After a client dies, or even if you kill the client on purpose,
170
you can recover the game and continue playing. In fact the
171
server won't have any idea that anything but bad lag (called
172
a ghostbust) has occurred.
174
The benefits of this feature include the ability to change
175
displays, recompile code (if you happen to be a code hack),
176
or simply recover from a core dump.
178
In order to use it, you have to pay attention to two numbers
179
which are displayed when you connect to the server. A line
181
*** socket 11323, player 0 ***
183
This indicates which player slot you have been assigned, and
184
which socket number has been chosen as your ghostbust socket.
186
Now in order to restart, just do:
189
The important options are -G followed by the player slot you
190
occupy, and -s followed by the ghostbust socket. Notice that
191
you don't even specify a server!
193
This feature may NOT work on all servers. Many server gods use
194
server code which is too old to support this feature. Also,
195
keep an eye out for small details that are off. It is NOT
196
logically possible to account for everything with this feature.
197
Such things as the motd are not resent by the server when you
198
connect, so you won't have that around anymore. Further, the
199
client won't know who it is even connected to (see above), thus
200
don't be shocked if the client claims you are connected to a
203
WARNING: Some servers have *very* short ghostbust timeout
204
periods. You must reconnect before this timeout expires or
205
your slot will be given to someone else, you won't be able
206
to reconnect. On most servers it is around 6 minutes long.
208
Note to experts: The server will reverify clients using whatever
209
available means it has, including RSA or reserved.c when a ghostbust
210
occurs and therefore whenever this feature is used.
212
3.1.11 ESOTERIC OPTIONS
214
-c this will check server_port-1 and spew out
215
a list of all players currently playing on that server - not all
216
servers are intelligent enough to do this
218
-s (integer) passive port to use, generally only server gods would ever
219
use this option and even they can get by without it
221
-l (filename) file to log messages
223
-d (string of chars) display name
225
-H (string of chars) Gateway name
227
-P log packets: generally don't want to use this
229
-t (sting of chars) title- the name of the window the client makes
233
-v display version/expiration info and exit
235
-i ignore signals (SIGSEGV and SIGBUS)
237
3.2 Pixmaps (Full Color COW)
239
With the release of COW 3.00, dynamic color images are available. No
240
color images have been compiled into the client, so without the additional
241
files (described below) the client will behave as before.
245
The xpm files should be available at the same site from which you got
246
the client, in a file named pixmaps.tgz (PIXMAPS.ZIP for windows users).
248
>>> YOU MUST DOWNLOAD AND UNPACK THIS FILE TO USE THE COLOR FEATURES. <<<
250
It should create a subdirectory named "pixmaps" which should have several
251
(obviously named) subdirectories. There should be several XPM files in each
252
(except for Planets, which has a further subdirectory). UNIX users will see
253
that they are gzipped to save space. You do NOT need to ungzip them unless
254
you do not have gzip on your machine.
256
>>> DO NOT REARRANGE OR RENAME THESE FILES IF YOU WANT TO USE THEM. <<<
258
You need to add a line to your .xtrekrc telling the client where to look
259
for the pixmaps. If you do not, it will assume that they are in a subdirectory
260
of the directory you are in when you start the client. The option is called
261
"pixmapDir". Tilde and environment variables WILL NOT WORK. Relative paths
262
will only work if you always start netrek from the same directory.
264
You should be ready to rock and roll. Fire it up. You may see some
265
warnings about not being able to read some pixmaps. Some of the pixmaps
266
that the client looks for haven't been drawn yet. Feel free to make your
267
own set. OTOH, if you see any lines which read
269
"TYPE <type> PIXMAPS NOT AVAILABLE"
271
it means that none of a certain type of pixmap were found. Check to make sure
272
that the pixmaps are where you told it to look. If they are, and you are on
273
a UNIX system, you may not have gzip installed. Go get it from any GNU mirror
274
and either install it or use it to ungzip the XPM files.
278
In addition to simply creating your own XPMs with a paint program, you
279
may want greater control over the pictures used. For example, you may find
280
the explosions are too pretty, and you are dying because you forgot to dodge.
281
The crude approach is to just remove that pixmap. The client will default back
282
to the standard bitmaps in this case.
284
The more elegant approach is to turn off just those pixmaps you don't
285
like and keep the rest. This also allows you to switch back and forth WITHOUT
286
having to exit and restart. So if the machine you are playing on is busy
287
today, you can turn off the pixmaps until things improve, then switch back to
288
full color without losing your 5 kills.
290
Pixmaps can be turned on or off in groups on the new "Pixmap Menu" in the
291
options window (shift-O). Each line in the window also corresponds to an
292
.xtrekrc resource which you can use to set the initial values. If one type
293
of pixmaps is not available, you will be unable to turn on that option.
295
resource name default description
298
fedPix on | Control whether or not the XPMs
299
romPix on | for the ships of a given team
300
kliPix on | should be used
303
weaponPix on Torps and plasmatorps & their clouds
304
explosionPix on ship and starbase explosions
305
cloakPix on fade-in/-out and cloak icon
306
mapPix on Color Planet icons on galactic
307
(replaces the "colorgalactic" option)
309
backgroundPix on Background stars & genocide/gb images
310
(replaces the "babes" option)
312
ownerhalo off Draws a colored ring around each
313
planet on the galactic
315
as a convenience, the option "shipPix" may be used to control all of the
316
ship XPMs in one line.
318
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
321
+ The MegaResource "pixFlags" can be used in your .xtrekrc +
322
+ to save a bit of typing. Simply bitwise OR together the +
323
+ things you want turned off: +
325
+ 0x0001 IND pixmaps +
326
+ 0x0002 FED pixmaps +
327
+ 0x0004 ROM pixmaps +
328
+ 0x0008 KLI pixmaps +
329
+ 0x0010 ORI pixmaps +
332
+ 0x0040 Explosions +
334
+ 0x0100 Galactic Map Planet Icons +
336
+ 0x0400 Backgrounds +
340
+ so, for exaple, no halos and no explosions would be +
341
+ specified as: (0x1040=4160) +
346
+ (Note that this OVERRIDES all the other resources) +
347
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
350
If you hate them all, you can either set the "pixmapDir" to "None" or
351
start the client with the -b (bitmap only) command line option. Then go ahead
352
and delete all of the XPMS. Go ahead. We don't mind at all. It's not like
353
we put any WORK into this ... :,-(
355
3.2.3 Babes/M31 and Generalized Backgrounds
357
Gone. You can put up any picture you like when you GENO, GB, or just
358
enter or hit shift-K. Just specify the genocide.xpm, ghostbust.xpm and/or
359
hello.xpm. It's really none of my business what you look at in your off time.
361
Absolutely no picture will be shown if you do not have an XPM in the
362
specified place. It didn't belong in the client in the first place.
366
And BTW, the ' key (quote) has the default action of retiling your local
367
and galactic windows with the normal background (either black or your specified
368
pixmap) to repair the damage done by the other possible pix.
370
3.2.4 AGRI pixmaps and FEATURE_PACKETS
372
The client shows a different pixmap for AGRI planets than all others.
373
This was announced, voted on and overwhelmingly adopted (80%+ in favor). But
374
JUST IN CASE, this option can be disabled at the server by use of the
375
feature packet "AGRI_PIXMAP".
377
Users can choose to remove the AGRI.xpm file. The client will default
378
to using the regular planet pixmap if it is missing.
383
Due to popular demand, hockey lines have been added.
384
For those of you who want to see a hockey rink on the tactical,
385
just use the features menu (shift-O) and toggle them on.
390
Side lines, i.e. the rink edges (grey)
392
Goal boxes (the color of the team)
394
They are a little awkward at first, but once you get used to them,
395
you'll wonder how you lived without them.
397
Since this is a first pass, I'm looking for more input on what
398
would make them better. Here are some of my comments:
400
1) Lines are hard coded into the software. They should be
401
based upon planet location, so the hockey gods can move the
404
2) You either have them all or none. Perhaps the set of
405
desired lines should be configurable from the xtrekrc. Also,
406
you cannot change the colors.
408
3) Lines on the galactic would look pretty
410
If you have any comments, mail them to kantner@hot.caltech.edu
412
*** Shell escape tool
413
You may execute any Unix shell comand within the client. Read your mail
414
now within the client. To do so, just send a message to the destination
415
"!" and you get a shell prompt. Enter the comand and it's output will
416
be displayed in the tools window. Works also with macros to "!".
417
You may disable it in the .xtrekrc for security reasons with shellTools: off
418
CAUTION: The client will be blocked for the time the comand is executed.
419
Also some programs suspend the client if it is started in the background.
422
Hitting 'q' will quit the client out without ever going back to the
423
team selection window, the normal 'Q' still goes back to the team
426
*** Reread defaults file
427
You can reread your netrek default file by hitting '&', it is also
428
possible to enter a new default file name at anytime by sending
429
a message to 'M' which contains the file name.
431
*** Galactic rotation
432
For those who like to fight with some specific orientation, the
433
galaxy is now rotate-able. This can be done in the options window.
434
This works now also with short packages.
437
Lots of cool gateway code in this client, unfortunately I don't
438
use nor do I know what it does other than get past firewalls.
441
Many servers allow you to *observe* a game instead of playing, sort of
442
like watching football. COW supports this feature. Currently in order
443
to be an observer, all you have to do is connect to the observer port
444
for a server. A good guess at the observer ports for a pickup server is
445
2593; for INL, 4000 and 5000.
448
This is pretty pointless: a continuously updated bar graph of how bad
449
your lag is. Perfect for the whiny player who needs an excuse. ;)
450
This can be turned on with the '\' key, from the options menu, or from
451
the .xtrekrc. (lagmeter.parent, lagmeter.mapped, lagmeter.geometry)
452
Requres netstats to be on.
455
In a similar vein, the pingstats window can be turned on from the .xtrekrc,
456
the options menu, or the key ','.
459
COW supports sending five spaces to a player as the de facto method of
460
requesting info on the client. (So called because it was used by the Pig
461
borg, AFAIK.) For instance:
462
COW 3.00pl0, linux, 03/03/98, RMCSE365AmTsr
463
The letters in the fourth field indicate which #ifdefs were specified
464
at compile time. Possiblities are:
467
D: Debugging information
468
C: Corrupted packet handling
470
E%d: Expiration date, in days after compilation
471
A: Stat window contains a slider showing armies carried
472
(does not affect the newdashboard code)
473
m: Metaserver support
474
T: "Various tools, like shell escape, ..."
478
*** Improved help window:
479
Basically, this was done to show what keys were
480
actually mapped to what functions. Every key function has a line in
481
the help window. Her'es a sample line:
484
||\\_ The 'b' key has been mapped to toggle shields
485
|| \_ The 'g' key has also been mapped toggle to the shields
486
|\____This space is always there, as a separator.
487
\_____This is the default key for this function, and the hook that you
488
use when defining things to this function. I.e. to set the 'g'
489
and 'b' mappings mentioned here, you'd have to put 'gsbs' in
490
your .xtrekrc or your keymap options.
491
NOTE: This character will appear here, even if it is mapped
494
*** Message-Warp: The non-warp version.
495
Hit the 'm' key and start typing. Your cursor changes to the
496
'text' cursor, and all keystrokes go to the message window. Sending
497
the mesage or the ESC key ends this. Again, the mouse pointer is not
500
*** Documentation Window
502
The documentation window is used to view documentation while actually
503
playing. In order to do this you must either have the COW.DOC file in
504
the directory you are running the client from or you must set the
505
documentation resource value with the full path to the file with the
506
documentation. Control-y brings this window up. Also available via
507
shift-O option menu under "info."
509
The 'f', 'b' keys scroll forward and back by 28 lines, like the motd
510
window. While 'F' and 'B' keys scroll by 4 lines.
513
documentation: /home/kensho/powell/misc/netrek/brm3002/myCOW.DOC
515
*** Xtrekrc File Window
517
The xtrekrc file window is used to view your current xtrekrc file online.
518
It is currently very stupid in that if you used the command line
519
option '-r' to specify your xtrekrc file, this viewer will not find
520
it (it currently hard wired for $HOME/.xtrekrc:( Control-X (that
521
is control-shift-x) will bring up this window, or shift-O under "info."
523
The 'f', 'b' keys scroll forward and back by 28 lines, like the motd
524
window. While 'F' and 'B' keys scroll by 4 lines.
526
*** Auto torp aiming and dodge
530
***************************************************************
532
***************************************************************
534
COW looks for a .xtrekrc file in your home directory. Alternatively
535
this file may be called home, and it may be in whatever directory
536
the client is executed from.
538
A file called "SAMPLE.xtrekrc" should have been included with this
539
client. Below is an attempt to explain the many,many options you
540
can include in a .xtrekrc file. Some of this was borrowed from
541
various other documentation such as MOO documentation.
543
For other options, see MACROs and Receiver Configurable Distress Calls.
546
4.1 Windows, fonts, and colors
548
rank.mapped: (on/off)
549
rank.parent: (window name) ie root, review_all, netrek, etc
550
rank.geometry: (geometry specification) ie 80x26+554+624
551
Every window may have these three defaults set for it.
552
Some windows are resizeable, others are not.
555
bigfont: lucidasans-24
556
italicfont: -schumacher-clean-medium-i-normal--10-*-*-*-c-80-iso8859-1
557
boldfont: -schumacher-clean-bold-r-normal--10-100-*-*-c-60-iso8859-1
558
Specifies which fonts you want to use,
559
not sure that all of these are still used in COW
561
The personalized cursor extensions allows the user to specify their own
562
cursors for the map, local, text, menus and info list windows.
564
localCursorDef: /usr/me/.local.xbm
565
mapCursorDef: /usr/me/.map.xbm
566
infoCursorDef: /usr/me/.info.xbm
567
textCursorDef: /usr/me/.text.xbm # the mask would be called /usr/me/.text.xbm.mask
568
arrowCursorDef: /usr/me/.arrow.xbm
570
For infoCursorDef, textCursorDef, arrowCursorDef an optional mask may
571
be specified. To specify a mask, first create your new cursor, say called
572
mycursor, then create the mask and call it mycursor.mask. They both need to
573
be on the same path. Cursor and mask *must* be the same size, if not the
574
cursor cannot be used (why anybody would want to do this makes no sense,
583
color.light grey: light grey
584
Specify what colors should be used by the client.
585
This is generic X color specification (right?).
586
All the possible left hand sides are listed I think.
587
color.Ind: light grey
591
color.Ori: light steel blue
592
Race Colors may be set separately.
596
name: (string of chars) default name
598
password: (string of chars) default password; if both name and password
599
are included in your .xtrekrc, COW will attempt to do
600
an autologin for you.
602
server: bronco.ece.cmu.edu
603
default server that is called when no -h argument is
604
specified. Leave this blank to have cow call the
605
metaserver by default.
608
default port that gets called. The compiled default is 2592.
610
server.rio: riovista.berkeley.edu
611
Allows you to specify a server abbreviation. Thus instead of
612
using "-h riovista.berkeley.edu" you now use only "-h rio"
614
default port that gets called for the server abbreviation.
616
showmotd: (on/off) display motd if in wait queue
618
useRSA: (on/off) default setting for whether the client should use RSA
621
autoquit: (integer) length of time to wait on team selection screen
622
before Auto-quit exits for you.
624
ignoreSignals: (on/off) ignore SIGSEGV and SIGBUS. COW will try to reset
625
the game so you can continue.
629
warnShields: (on/off) In color, you can have your shield be color of your
630
alert status (red, yellow, green)
632
varyShields: (on/off) Shield color and bitmap depends on shield strength.
634
varyHull: (on/off) graphical indication of your hull condition. Kinda
635
like varyShields. When varyHull is on your ship looks like it
636
has small spikes sticking out of the shields, each spike
637
representing 12.5% of your hull strength.
639
cloakChars: (string of one or two chars) what to use for cloakers on
640
galactic instead of '??'.
642
enemyPhasers: (integer 0-10) enemy phasers thickness at starting point.
644
phaserShrink: (integer 0-16) Don't draw the first "phaserShrink"/16 th of
645
your phaser. This makes it easier to see incomming torps.
647
theirPhaserShrink: (integer 0-16) "phaserShrink" for other player's ships.
649
shrinkPhaserOnMiss: (on/off) Use "phaserShrink" and "theirPhaserShrink" even
652
highlightFriendlyPhasers: (on/off) phaser hits by your team are solid white
653
(instead of the default "rainbow" a la COW-lite.
655
showtractorpressor: (on/off) toggle showing tractor/pressor beams
657
continueTractors: (on/off) off = turns off the visible t/p after 2 updates.
659
showstats: (on/off) show stats window
662
4.4 Messaging options
664
newDistress: (on/off) right justified distress call or not, default value
665
is to right justify (on)
667
reportkills: (on/off) display kill messages or ignore these
669
censorMessages: (on/off) attempts to remove profanity from messages sent.
670
They'll look like this: "F0->FED @$%# you twink"
672
logging: (on/off) displays messages to stdout if set.
674
logfile: (filename) alternatively saves messages to a text file
676
PhaserMsg: [0, 1, 2, 3, 4, 5]
678
0 = Don't log phaser hits
679
1 = Log phasers on all window
680
2 = Log phasers on team window
681
3 = Log phasers on indiv window
682
4 = Log phasers on kill window
683
5 = Log phasers on review window
685
the additional phaser window is controlled just like the other
686
review windows. e.g.:
687
review_phaser.mapped: on
688
review_phaser.parent: netrek
689
review_phaser.geometry: 81x2+0+555
694
netstats: (on/off) collect network statistics for measuring lag
696
netstatfreq: (integer) how often to update the network statistics
698
tryShort: (on/off) default setting for whether to use short packets.
700
tryUdp: (on/off) try to automatically connect with UDP
701
udpDebug: 0 = OFF 1 = ON (conect msgs only) 2 = ON (verbose output)
702
udpClientSend: 0 = TCP only, 1 = simple UDP
703
2 = enforced UDP--"state", including the following flags:
712
PLAYerLOCK and PLANetLOCK
714
3 = enforced UDP--"state & weapons" all of the above plus
717
Note that TORP commands are not included.
719
udpClientRecv: 0 = TCP, 1 = simple, 2 = fat,
720
3 = double (not currently supported)
725
4.6 Galactic/tactical map options
727
useTNGBitmaps: (on/off) Different bitmaps for fed. Not the new pixmaps.
729
ROMVLVS: (on/off) Replacement for dorky Rom CA bitmap. Not a pixmap.
731
showIND: (on/off) mark independent planets with a X drawn over it.
733
newPlanetBitmaps: removed. Use showlocal/showgalactic instead.
734
whichNewPlanetBitmaps: ditto.
736
newDashboard: (integer 0-3) Uses sliding bars instead of numbers to display
737
speed, shield/hull status, etc, on the dashboard. 1 is
738
'vanilla'; just like the old stat graph. When set at 2,
739
besides defaulting to green, displays how much hull/shield
740
you have LEFT, not how much you have lost (i.e. this is an
741
optimistic dashboard, it sees the cup as half full ;). At 3,
742
uses triangle sliders AND numbers.
744
keepInfo: (integer) number of updates to keep info windows on the
745
screen before automatically removing them
747
extraAlertBorder: Draws border in internal netrek windows, as well
748
as external ones (which get ignored in X11 with window-managers )
750
forcemono: if on, the client windows are set to be monochrome
752
redrawDelay: if >0 synchron screen refresh every n/10 sec
753
(useful for slow X-terms and high lag).
755
showgalactic: 0 = nothing, 1 = ownership, 2 = standard resources,
756
3 = MOO/ZZ resources, 4 = rabbit ear resources
757
Determines what kind of information will be shown on planets
758
displayed on the galactic. With option 2, the planet bitmap
759
has symbolic icons for armies > 4, repair, and fuel resources.
760
With option 3, the planet has a dot in its center to represent
761
fuel and four tickmarks in the corners to represent repair.
762
With option 4, an ear on the left indicates repair and an
763
ear on the right fuel.
765
showlocal: 0 = nothing, 1 = ownership, 2 = standard resources,
766
3 = MOO/ZZ resources, 4 = rabbit ear resources
767
Determines what kind of information will be shown on planets
768
displayed on the local map.
770
showLock: 0 = none, 1 = galactic, 2 = local, 3 = both
771
Where to display the locked-on triangle.
773
showplanetnames: (on/off) turn on planet names by default.
775
colorgalactic: Use color pixmaps instead of bitmaps on galactic.
776
(Obsolete -- see section 3.2.2)
778
showstars: Use starry background on galactic map.
779
(Obsolete -- see section 3.2.2)
781
Color pixmap controls. (See section 3.2.2)
782
resource-- indPix: (on/off) default on
783
resource-- fedPix: (on/off) default on
784
resource-- romPix: (on/off) default on
785
resource-- kliPix: (on/off) default on
786
resource-- oriPix: (on/off) default on
787
resource-- weaponPix: (on/off) default on
788
resource-- ex:plosionPix (on/off) default on
789
resource-- cloakPix: (on/off) default on
790
resource-- mapPix: (on/off) default on
791
resource-- backgroundPix: (on/off) default on
792
resource-- pixFlags: (int) default 0 (== all on)
794
ownerhalo: (on/off) default off
795
Draw a circle around the planet pixmap in the color of the
796
owning team. (pixmaps only)
799
4.7 Keymap (and mouse) options
801
keymap: (string of chars) remaps the keyboard, syntax is simply the
802
key to map onto, followed by the key to map, repeated.
803
Thus to map the "fire torps" key 't' onto 'f', use
805
(See also the sections on control keymaps and ship
806
dependent keymaps below.)
808
ignoreCaps: (on/off) ignore the Capslock key.
810
buttonmap: map the mouse buttons to something else.
811
i.e. the default mapping is:
814
shiftedMouse: (on/off)
815
The shift and control keys can be used to modify the default function
816
assigned to a button. The shift key acts as a switch which brings an
817
alternate mapping to the mouse buttons. In a simliar way control and
818
shift + control act to switch mappings again.
820
Normal buttons 1, 2, 3,
821
<shift + button 1, 2, or 3> maps to 4, 5, 6,
822
<control + button 1, 2, or 3> maps to 7, 8, 9,
823
<shift + control + button 1, 2, or 3> maps to a, b, and c.
824
This remaps all the possible mouse buttons:
825
buttonmap: 1t2p3k4c5s6y7E8z9xaFbdcD
827
mouseAsShift: (on/off) Not to be confused with "shiftedMouse." ;)
828
Makes the mouse buttons 1-3 act like shift keys. Each button
829
"shifts" or causes a new set of key mappings to come into
830
effect: Instead of the keyboard remapping the mouse, the
831
mouse now remaps the keyboard. Each key on the keyboard now
832
has several possible mappings. Use the b[123]keymap
833
option to specify commands. For example, to have the 'a'
834
key fire a torpedo while button1 is pressed, and a phaser
835
while button2 is pressed, add the lines:
839
continuousMouse: (on/off) allows you to cause multiple commands to be issued
840
to the server when dragging the mouse with a button down.
841
For instance you can drag the mouse while pressing button 3
842
(which defaults to set_course). Saves on button wear and
845
4.7.1 Ship dependent keymaps, buttonmaps and .xtrekrc files
847
You can add one of: sc, dd, ca, bb, as, sb, ga, att, default to the
848
following default options to override them based on ship type:
850
rcfile-??: ship specific .xtrekrc file,
851
keymap-??: ship dependent keymap,
852
ckeymap-??: ship dependent CTRL keymap,
853
buttonmap-??: ship dependent buttonmap.
855
It will automatically reload the specified defaults if you change the
856
shiptype. If a ship-specific option is not specified, the default
857
option is used for that ship. For e.g., keymap-sc: will be used
858
instead of keymap: whenever you switch to an SC.
860
Used well, this is a very powerful feature. For instance, you might
861
bind a key to your prefered cruising speed, with a different speed for
864
Here's part of my keymap as an example.
865
# default: q = warp 2, w = 1/2 maxwarp, e = maxwarp
867
# override some of the above, based on ship type
872
4.7.2 Control keymaps
874
Control keymaps (ckeymap) handle the remapping of keys in an
875
analoguous manner to the normal keymap (keymap). The control keymap
876
also allows the user to map both *upper* and *lower* case letters keys
877
when pressed with the control key. This means that ^u and ^U are
878
*different* keys when it come to mapping them.
880
Any combination of normal keys and control keys can be mapped to one
881
another. In other words, you can map from control key to control key,
882
control key to normal key, normal key to normal key, and normal key
885
New format for ckeymap is:
886
c = any printable ascii character.
887
^ = introduce control mapping (the key '^' not control + key.)
889
Each entry is a pair, like:
891
c^c # regular->control
892
^cc # control->regular
893
^c^c # control->control
896
ckeymap: ^a%r^b^m^ca%d5 tfDFf^^E
899
The '^' must be mapped with a double ^ ("^^") in either the bound or
900
binding key position.
903
* If you experience difficulties (you shouldn't) you might wish to use
904
a normal keymap and a new ckeymap in combination. Both are read in,
905
the keymap first then the ckeymap. This means that if a key is
906
defined in both the keymap and ckeymap, the ckeymap's definition
907
will be the one used.
908
* If you wish to use ckeymaps in conjunction with keymaps based on
909
ship type (keymap-??, etc.), note that ckeymap still overrides
910
keymap-??. For e.g., if you define a key in ckeymap and in
911
keymap-bb, the ckeymap binding hides the other binding. You should
912
use ckeymap-bb instead.
913
* Since ckeymaps are a superset of keymaps, you might consider using
914
ckeymaps in all situations where you would use keymaps. This will
915
make things a lot simpler for you. (But keep in mind that `^' has a
916
special meaning in ckeymaps!)
918
Analogously, control keys may be used for buttonmap, singleMacro and
919
all macro and RCD definitions.
921
4.8 Playerlist options
923
newPlist: (on/off) new playerlist, instead of total kills, deaths
924
offense and defense it shows login and stats (off+bomb+planet).
925
Provided for backwards compatibility; use playerListStyle
928
sortPlayers: (on/off) Sort the playerlist with the enemy team players
929
first, then your team and then the neutral players.
931
sortMyTeamFirst: (on/off) Modifies "sortPlayers" so that your team is sorted
932
immediately before the enemy teams.
934
partitionPlist: Add blank lines to a sorted player list to separate the
935
different teams. This is useful in mono where the teams
936
can not be distinguished by their color.
938
playerListStyle: (0-4) The style for the player list. The options are:
940
(0) Custom player list as defined by the
941
playerlist variable above,
943
(2) Traditional COW player list,
944
(3) Kill watch player list,
945
(4) BRMH Player list.
947
If "playerListStyle" is set, newPlist is ignored.
948
Use the options menu (shift-O) to try the different styles.
949
If no options are specified, defaults to (1).
951
playerlist: (string) The layout for the player list. What it allows
952
you to do is specify which columns of the player list you want to show
953
and in what order. The following is a table of the available columns.
956
--- --- -------------------- -------------------
957
3 'n' Ship Number " No"
958
3 'T' Ship Type " Ty"
962
17 'l' Login Name " Login "
963
6 'O' Offense " Offse"
965
6 'D' Defense " Defse"
967
6 'S' Total Rating (stats) " Stats"
969
8 'd' Damage Inflicted(DI) " DI"
970
1 ' ' White Space " "
972
options available when compiled with PLIST1
973
6 'B' Bombing " Bmbng"
974
6 'b' Armies Bombed " Bmbed"
975
6 'P' Planets " Plnts"
976
6 'p' Planets Taken " Plnts"
977
17 'M' Display/Host Machine " Host Machine "
978
7 'H' Hours Played " Hours "
979
6 'k' Max Kills " Max K"
980
6 'V' Kills per Hour " KPH"
981
6 'v' Deaths per Hour " DPH"
983
options available when compiled with PLIST2
984
9 'w' War staus " War Stat"
987
So for example if you just wanted to see names and rank you'd add this
988
line to your .xtrekrc:
992
The styles defined by "playerListStyle" are
993
1: Old style = "nTRNKWLr O D d "
994
2: COW style = "nTR N K lrSd"
995
3: Kill watch style = "nTK RNlr Sd"
996
4: BRMH style = "nTR N K l M"
998
In order for this mod to be in effect you must compile with PLIST
999
defined. The things shown after PLIST1 are only available if you
1000
have PLIST1 defined, the same goes for the things after PLIST2, but
1001
you must have PLIST defined or neither of these will do anything.
1003
NOTE FROM SOURCE KEEPER:
1004
PLIST2 is not active in COW currently. Some players feel that placing
1005
speed on the playerlist gives a strategic advantage.
1008
On servers which support the SBHOURS .feature, you will see slightly
1009
different things when you info a SB, or show the SB player on the
1010
playerlist. The usual offense and defense lines are replaced with SB
1011
kills/hour and deaths/hour. The kills, deaths, hours and ratio entries
1012
are all the player's SB stats as long as he is in the SB, and his normal
1015
***************************************************************
1016
5.0 Connection Types: UDP, TCP. Short packets.
1017
***************************************************************
1019
UDP provides an unreliable, packet-based protocol for sending data
1020
across an IP network. There are a variety of ways that a UDP packet
1021
can be lost or discarded, including a failure of the underlying
1022
communication mechanism. UDP implements a checksum over the data
1023
portion of the packet. If the checksum of a received packet is in
1024
error, the packet will be dropped with no indication given to the
1025
user. A queue of received packets is provided for each UDP socket.
1026
This queue has a limited capacity. Arriving datagrams which will not
1027
fit within its high-water capacity are silently discarded.
1029
Guest Rd 71 27 2% / 13%
1031
The stats above show a typically UDP connection. It has loss of
1032
packets but its round-trip times are fairly low.
1035
TCP provides a reliable, flow-controlled, in order transfer of data
1036
across an IP network. There is nothing fundamentally different about
1037
the way UDP and TCP packets travel over the wire. The only real
1038
difference is that TCP will keep sending the same packet over and over
1039
again until it gets an acknowledgement back. As a result, TCP
1040
connects are typically slower than UDP connections and usually require
1041
more bandwidth. TCP is slower because it guarantees that packets will
1042
arrive in order and so a lost packet can hold up later packets.
1046
Guest Ff 405 669 0% / 0%
1049
The above shows possibly the same connection with UDP turned off.
1050
There is no loss but the round trip times are much higher.
1055
* COW always uses TCP for some things. For example, the text messages
1056
that you can send to other players are implement in TCP to guarentee
1057
that they always arrive. However, if a UDP connection is also
1058
available, it is used for the vast majority of communication.
1060
* COW will fall back to using a TCP only if it fails to open
1061
a UDP link. If you find that you have high lag and no loss, you
1062
probably should display the UDP control window (the default key is
1063
`+') and turn UDP back on by pressing the top button.
1065
* It is recommended to use a TCP connection if you are at the same
1066
site (within a few milliseconds lag) of the server you are playing on.
1067
The main reason for using UDP is to reduce your round trip times.
1069
* The option "tryUdp" can be used to set a preference for using
1070
UDP (tryUdp: on) or TCP only (tryUdp: off).
1074
***************************************************************
1076
***************************************************************
1078
For a more technical description of short packets, see README.SHORT_PCK.
1080
Short packets are supported by COW. These have been shown
1081
to substantially reduce the volume of traffic between the client
1082
and server, and will improve lag in many situations. Not all
1083
servers support short packets yet, but that is changing rapidly.
1085
COW has a short packet window which is brought up with the ` key.
1086
In this window you can turn short packets on and off as well as
1087
configure it in various ways.
1089
Also in your netrek defaults file you can add the line
1093
in order to have short packets automatically turned on whenever
1094
you connect to a server which allows it.
1096
Don't forget about the - and | keys for requesting updates.
1099
***************************************************************
1100
6.0 MACROs, RCD, RCM:
1101
***************************************************************
1103
Three types of macros exist in the COW client: NBT, NEWMACRO, and
1104
SMARTMACRO. NBT is always on, however NEWMACRO and SMARTMACRO can
1105
be turned off by a server which does not allow them.
1107
You may see a list of what macros are in your client by hitting
1108
'X' followed by '?'. At the top of this list it shows which macros
1109
are enabled in the client right now.
1111
NBT macros allow you enter a message in your .xtrekrc which you
1114
macro.x.X: <text here>
1115
#x is any ascii character; it is the "name" of the macro (the key you press
1116
#in macro mode to send the associated macro)
1117
#X can be A,T,F,R,K,O where A=all, T=team, F=fed, R=rom, K=kli, O=ori
1118
#(determines the message board to which the text body of the macro is sent)
1122
For more information on NEWMACRO and SMARTMACRO see the NEWMACRO
1126
***************************************************************
1127
Receiver Configurable Distress Calls (RCD):
1128
***************************************************************
1130
9/2/93 - jmn, jn (no relation 8^)
1131
6/7/95 - updated by ATH
1133
Receiver configurable distress calls have been added to the client
1134
and use a MACRO-like syntax.
1136
In order to change the distress type a line such as the following
1137
should be in your defaults file.
1139
dist.T.taking: (%i) Carrying %a to %l%?%n>-1%{ @ %n%}
1143
dist.taking: (%i) Carrying %a to %l%?%n>-1%{ @ %n%}
1146
dist.[key].[name of distress]: [macro]
1148
Arguments for the macro and SMARTMACRO syntax are exactly the same
1149
as before. Any argument can be used, but usually only those
1150
in the groups "Standard" and "FULLY CAPITALIZED" apply.
1152
Note that if you don't want to ever see a certain distress, use the
1153
macro characters : %*. For example,
1157
will allow your client to simply ignore any "free beer" RCD's that get sent.
1159
Below is a table giving the name of each distress, the key it
1160
is assigned to, and the default macro (at the time of this writing).
1161
Note that except for E and F, these are all control keys.
1163
Key Name Default Distress Macro
1164
t taking %T%c->%O (%S) Carrying %a to %l%?%n>-1%{ @ %n%}
1165
o ogg %T%c->%O Help Ogg %p at %l
1166
b bomb %T%c->%O %?%n>4%{bomb %l @ %n%!bomb%}
1167
c space_control %T%c->%O Help Control at %L
1168
1 save_planet %T%c->%O Emergency at %L!!!!
1169
2 base_ogg %T%c->%O Sync with --]> %g <[-- OGG ogg OGG base!!
1170
3 help1 %T%c->%O Help me! %d%% dam, %s%% shd, %f%% fuel %a armies.
1171
4 help2 %T%c->%O Help me! %d%% dam, %s%% shd, %f%% fuel %a armies.
1172
e escorting %T%c->%O ESCORTING %g (%d%%D %s%%S %f%%F)
1173
O ogging %T%c->%O Ogging %h
1174
B bombing %T%c->%O Bombing %l @ %n
1175
C controlling %T%c->%O Controlling at %l
1176
5 asw %T%c->%O Anti-bombing %p near %b.
1177
6 asbomb %T%c->%O DON'T BOMB %l. Let me bomb it (%S)
1178
7 doing1 %T%c->%O (%i)%?%a>0%{ has %a arm%?%a=1%{y%!ies%}%} at %l. %d%% dam, %s%% shd, %f%% fuel
1179
8 doing2 %T%c->%O (%i)%?%a>0%{ has %a arm%?%a=1%{y%!ies%}%} at %l. %d%% dam, %s%% shd, %f%% fuel
1180
f free_beer %T%c->%O %p is free beer
1181
n no_gas %T%c->%O %p @ %l has no gas
1182
h crippled %T%c->%O %p @ %l crippled
1183
9 pickup %T%c->%O %p++ @ %l
1184
0 pop %T%c->%O %l%?%n>-1%{ @ %n%}!
1185
F carrying %T%c->%O %?%S=SB%{Your Starbase is c%!C%}arrying %?%a>0%{%a%!NO%} arm%?%a=1%{y%!ies%}.
1186
@ other2 %T%c->%O (%i)%?%a>0%{ has %a arm%?%a=1%{y%!ies%}%} at %l. (%d%%D, %s%%S, %f%%F)
1187
# other3 %T%c->%O (%i)%?%a>0%{ has %a arm%?%a=1%{y%!ies%}%} at %l. (%d%%D, %s%%S, %f%%F)
1188
E help %T%c->%O Help(%S)! %s%% shd, %d%% dmg, %f%% fuel,%?%S=SB%{ %w%% wtmp,%!%}%E%{ ETEMP!%}%W%{ WTEMP!%} %a armies!
1191
Here is some documentation written by jmn about how receiver
1192
configurable distress calls work:
1194
===========================
1195
Well... here's how it works.... Each RC_DISTRESS compatible client can make
1196
the distress call appear as whatever you like through their .xtrekrc...
1197
If you DONT have a new enough client the server will do a default parsing
1198
of the distress call and you will see it like that. Also if the server is
1199
old then the distress call sent out by each client will appear the way
1200
_the sender_ likes to have them displayed.
1202
Let me summarize with an example:
1203
F0 likes 'F' to say 'Carrying 4 maggots.'
1204
F1 likes 'F' to say 'Carrying 4 armies.'
1205
F2 likes 'F' to say 'Carrying 4 lawyers. 20% fuel'
1206
The server default is 'Carrying 4.'
1208
Advanced RC_DISTRESS users should note that 'F' can be remapped easily in
1209
at least 2 different ways. For example throught .xtrekrc
1211
dist.(.carrying: %T%c: Carrying %a maggots.
1213
(this will make 'X(' or '(' be the same as 'F' used to be)
1214
There will be more documentation on this coming later but basically the
1215
syntax is the same as SMARTMACRO and NEWMACRO.
1219
Case 1: All of them are using a new client.
1220
F1 will ALWAYS see 'Carrying x armies.' No matter who sent it.
1222
Case 2: Only F1 is using an old client.
1223
F1 will see the _server_ set defaults for the carrying call from everybody.
1224
Note that the calls from F0 and F2 will appear in the same format to him on
1225
this server (but may appear in a different format on different servers).
1226
F2 and F0 will see F1's client-defined distress calls.
1230
F1 will see whatever the sender likes to see (in this case the sender sends
1231
the pre-formatted text instead of the RC_DISTRESS short-hand).
1232
So a 'F' from F2 will appear to everybody as:
1233
'Carrying 4 lawyers. 20% fuel'
1234
a 'F' from F0 will appear to everybody as:
1235
'Carrying 4 maggots.'
1236
===========================
1239
-------------------------------------------------------------------------
1241
New feature for default file...
1242
rejectMacro: on (on/off) default to off, if on, COW automatically
1243
stops NEWMACROs from being sent when the server
1244
has turned NEWMACROs off. That is any
1245
macro in your defaults file defined by a
1246
mac.*.*: (TEXT) line.
1248
***************************************************************
1249
NEWMACRO and SMARTMACRO documentation - Jeff Nelson 6/4/1993
1250
***************************************************************
1253
*WARNING* *WARNING* *WARNING* *WARNING* *WARNING*
1255
These features default ON in the COW client! A server may turn them
1256
off *for you* if they are not allowed at that server. The BRM client will
1257
inform you by sending you a message line like:
1258
BRM: Features enabled: NO_NEWMACRO, NO_SMARTMACRO
1260
If you are not at a server that allows NEWMACRO, then all targetted
1261
macros will be treated as normal NBT macros (no argument substitution,
1262
%a will broadcast as %a). If you are not on a server that allows
1263
SMARTMACRO, then any conditional text or tests will *not* be evaluated,
1264
instead they will be sent as the macro appears in your defaults file!
1266
If you don't like this, complain to the server god!! Make a difference!!
1270
In order to use the below features, NBT and NEWMACRO must be defined.
1271
In addition, SMARTMACRO must be defined to use the most advanced
1276
A player should be able to include in his/her macros whatever
1277
reasonable information is available. And configuring its display
1278
in whatever way is desired. In order to do this, the following
1279
syntax is used (while remaining completely compatible with old NBT
1282
A key is assigned in the defaults file (ie .xtrekrc, etc)
1285
mac.F.T Help! Carrying %a!!
1287
This defines a macro which will send a distress containing
1288
the number of armies a player is carrying to his team.
1290
Note, this is NOT printf syntax! Any attempt to use formatting will
1291
fail miserably. Maybe in the future someone will want to develop
1292
a means of formatting the variables used in macros, but the only
1293
means I can think of are both bulky and ugly.
1295
Here is another example:
1297
mac.f Help! Carrying %a!!
1299
Unlike the first, this macro will not send directly to the team,
1300
instead it requires that you give a third keystroke specifying the
1301
recipient. For example, it could be invoked by:
1305
XfG <- if you are desperate, send to God
1306
XfA <- if you are stupid, send to ALL
1308
Old macros will still work in addition to these, thus be sure there are
1309
no conflicts. These generally cause suprising results. For example,
1310
if this is in your macro file:
1312
mac.E.T Help! I'm carrying!!
1313
macro.E.A You all suck!
1314
mac.E Help! I'm a twink!!
1315
mac.E.T Help! I'm carrying again!!
1316
macro.E.A You all suck even worse NOW!
1318
The suprising results would be that pressing XE would broadcast the
1319
first two messages, and then wait for the destination of the third.
1320
It would be impossible to ever use the last two. Unfortunately, multiline
1321
macros also do not work if they require a destination. There is no
1322
good reason for this, but since multiline macros annoy the hell out
1323
of me, I ain't fixing it. You can still do something like:
1331
This would properly broadcase 5 messages containing 1 character to all.
1332
If you tried to specify the destination for these by using "mac.D:",
1333
only 'D' would be sent.
1335
Also '?' can still not be used as a macro key.
1336
The following definitions will work in a macro:
1340
%o 3 charcter team name of sender
1341
%a armies carried by sender
1342
%d sender damage percentage
1343
%s sender shield percentage
1344
%f sender fuel percentage
1345
%w sender wtemp percentage
1346
%e sender etemp percentage
1347
%t team id character of target planet
1348
%T team id character of sender team
1349
%r team id character of target team
1350
%c sender id character
1351
%n armies on target planet
1352
%E 1 if etemped, 0 if not
1353
%W 1 if wtemped, 0 if not
1354
%S sender two character ship type
1355
%p id character of target player
1356
%g id char of target friendly player
1357
%h id char of target enemy player
1358
%P id character of player nearest sender
1359
%G id char of friendly player nearest sender
1360
%H id char of enemy player nearest sender
1361
%l three character name of target planet
1362
%N full name of target planet
1363
%i sender full player name (16 character max)
1364
%u full name of target player (16 character max)
1365
%z 3 letter team id of target planet
1366
%b 3 char name of sender nearest planet
1368
%K kills of target player
1371
%O three character team name of sender
1372
%L three character name of target planet
1373
%I sender full player name (16 character max)
1374
%U full name of target player (16 character max)
1375
%Z 3 letter team id of target planet
1376
%B 3 char id of sender nearest planet
1378
Ping stats: (may differ slightly from server '!' ping stats)
1379
%v average ping stat round trip time
1380
%V ping stat round trip standard deviation
1381
%y percent total packet loss as calculated by server formula
1384
%m the last message you sent
1385
%M the last message you sent in all caps
1386
%w whydead number for RCM
1387
%W whydead text for RCM only
1388
%>nn Tab stop at position nn
1390
As a further extension to NEWMACRO, a macro may now be sent
1391
to any of the following destinations:
1393
%i %I %c send message to self
1394
%u %U %p send message to player nearest mouse
1395
%t %z %Z send message to team of player nearest mouse
1396
%g send message to nearest friendly player to my ship
1397
%h send message to nearest enemy player to my ship
1407
mac.W.%t: SHUT UP, TWINKS!!
1408
mac.I.%u: %u: det when you escort!
1409
mac.O.%u: (%i) ogging
1411
What this does is allows you to send a macro to a player or
1412
team specified by your mouse location instead of requiring
1413
a 3rd character to be input. Also, it allows you to send
1414
message to yourself without having to actual sit there and
1415
figure out who you are (they tried and failed back in the '60s).
1418
>>>>The above is available when NEWMACRO is defined; from here on,
1419
>>>>SMARTMACRO must be defined *in addition*.
1421
Further, tests may be done within the macro system, the syntax
1422
for these test is as follows.
1423
%? introduces a test
1428
Expressions are evaluated on a character by character basis until the
1429
test is resolved. The text of the test is then replaced in the macro
1432
Test are then fed to a syntax I call conditional text. The best way
1433
to demonstrate how this works is example.
1435
1%{included if true%!included if false%}
1440
0%{included if true%!included if false%}
1443
Combining the whole package, a very robust macroing system is
1444
quickly generated. One can easily design or mimic Distress calls,
1445
including the variable NBT distress of the COW client and all the
1446
hardcoded message macroing built into my own client but never released.
1448
Here are a few more samples to work from:
1450
mac.F.T: Help! Carrying %a!!
1451
mac.f: Help! Carrying %a!!
1452
mac.c.T: %p++ near %l
1453
mac.b.T: %?%n>4%{bomb %l at %n%!bomb%}
1454
mac.d.T: %E%{%!%W%{%!I'm fine. How are you? %}%}%E%{ETEMPED!!! %}%W%{WTEMPED!!! %}Carrying %?%a>0%{%a armies!%!NO armies.%}
1455
mac.a.T: %E%{ETEMPED!!! %}%W%{WTEMPED!!! %}Carrying %?%a>0%{%a armies!%!NO armies.%}
1456
mac.R.A: I'm a %?%S=SB%{star base!%!twink!%}
1461
mac.B: bye, getting hungry/sleep/horny
1462
mac.e.T: need escort going to %l%?%a>0%{, carrying %a armies!%}
1463
mac.v.%t: %T%c PING stats: Average: %v ms, Stdv: %V ms, Loss: %y%%
1468
***************************************************************
1469
* Symbolic names for macro destinations - Kurt Siegl 27/4/95
1470
***************************************************************
1472
You always wanted to send a macro directly to the captain, base,
1473
or the second SC bomber?
1475
Symbolic macro keys will solve your problems. Here how it goes:
1477
In the .xtrekrc file you assign a key to a symbolic name:
1479
key.[key].[dest]: [name of key]
1481
If the destination isn't specified the key defaults to team.
1488
Then you can use that new key in your macros.
1491
mac.o.C: Hi Captain let me suggest a base ogg?
1492
mac.a.B: BASE: Free armies for me?
1495
Finally during runtime you may change the actual destination
1496
by sending a message:
1498
set [name of key] [destination id]
1500
to the shell ("!") tools. Of corse this may be done with macros as well.
1503
mac.^C.!: set captain %g
1506
You can check the settings on the shell tools window "M".
1509
***************************************************************
1510
Receiver Configurable Server Messages (RCM)
1511
***************************************************************
1513
Short package kill messages may be freely configured using
1514
the macro syntax interpreter where
1516
* the killed person corresponds to the sender,
1517
* the killer corresponds to the target player,
1518
* involved planet (killed by, destroyed, taken) to the target planet,
1519
* damage is int part of kills and shield fraction part.
1520
* whydead goes with wtmp.
1522
All others are undefined.
1524
The format of the messages is:
1526
msg.[name of message]: [RCM macro]
1528
Available messages and their defaults are:
1531
msg.kill:GOD->ALL %i (%S) (%T%c%?%a>0%{+%a armies%!%}) was kill %?%d>0%{%k%!NO CREDIT)%} for %u (%r%p) %?%w>0%{%W%!%}
1532
msg.planet:GOD->ALL %i (%S) (%T%c%?%a>0%{+%a armies%!%} killed by %l (%z) %?%w>0%{%W%!%}
1533
msg.bomb:%N->%Z We are being attacked by %i (%T%c) who is %d%% damaged.
1534
msg.destroy:%N->%Z %N destroyed by %i (%T%c)
1535
msg.take:%N->%O %N taken by %i (%T%c)
1536
msg.ghostbust:GOD->ALL %i (%S) (%T%c) was kill %k for the GhostBusters
1539
BRMH formated kill windows may be optain by something like:
1541
msg.kill: %i (%S) (%T%c%?%a>0%{+%a armies%!%}) %>30 kill %?%d>0%{%k%!NO CREDIT)%} for %u (%r%p) %?%w>0%{%>65%W%!%}
1544
***************************************************************
1545
7.0 MetaServer Options
1546
***************************************************************
1548
The MetaServer and the MetaServerCache are provided to help you find a
1549
netrek game to join. Both services provide a list of the popular
1550
netrek servers. The MetaServer is neat because provides information
1551
on the number of players at each site. The MetaServerCache is neat
1552
because it is much faster if you can guess where a game will be.
1554
To access the MetaServer, use the command line switch "-m" or "-M". For
1555
example "cow -m". To access the MetaServerCache, use the "-k" switch
1556
instead. The command line options are as follows:
1558
-m Default to UDP connection mode to metaserver if metaType not set
1559
-M Default to TCP connection mode to metaserver if metaType not set
1560
-k use TCP metaserver cache to display known servers
1562
If metaType (defined later) is set, -m or -M will connect to
1563
metaserver based on what metaType is set to.
1565
1) Where to find the MetaServer:
1567
You can use the options "metaport" and "metaserver" to point COW
1568
to a new MetaServer. The defaults for these options are:
1573
The metaserver usually resides at metaserver.netrek.org port 3521
1575
In UDP mode multiple metaservers can be listed on the "metaserver"
1576
option, comma separated. Example:
1578
metaserver: metaserver.netrek.org, metaserver.eu.netrek.org
1580
Also in UDP mode, if a hostname listed has more than 1 IP address, the
1581
client will attempt to connect to all IPs listed in that hostname. It
1582
will then merge all responses into 1 list and display that list.
1584
In TCP mode, only 1 hostname may be listed.
1586
2) How to create a list of known servers for the MetaServerCache:
1588
Before you can use the MetaServerCache, you must give COW a file in
1589
which to cache the information from the MetaServer. Use the .xtrekrc
1590
options "metaCache" and "metaUDPcache" to specify these files. The
1591
files path will be relative to your home directory unless you start
1592
the file name with a slash (/). "metaCache" defines the TCP cache,
1593
and "metaUDPcache" defines the UDP cache. The TCP and UDP cache can
1594
NOT be the same. They are incompatible formats.
1596
For example, to set the cache files to "~/.metaCache" and "~/.metaUDPcache"
1599
metaCache: .metaCache
1600
metaUDPcache: .metaUDPcache
1602
Unlike the MetaServer, the MetaServerCache will not show the number of
1603
people playing at a server. If a server is contactable, it will be
1606
Warning: If "metaCache" or "metaUDPcache" are set, COW will also use a
1607
second, temporary file. This file with have the name of the metaCache
1608
file with the last character changed to either a 'T' or an 'R'. Eg,
1609
".metaCache" becomes ".metaCachT" and "BEAST" becomes "BEASR". Ensure
1610
that this temporary file does not overwrite something important.
1612
3) How to set the connection type to the metaserver:
1614
The xtrekrc option "metaType" will determine how COW connects to the
1615
metaserver. The default for this option is:
1617
metaType: (default: whaterver the command line has, -m=1 -k=2 -M=3
1618
out of range values default to 3)
1620
where the values 1, 2, 3 are defined as:
1622
How to connect to the Metaserver. Connect with UDP, cache, or TCP.
1623
1 == cache, then UDP
1624
2 == cache, then TCP
1625
3 == TCP, then cache
1627
UDP mode offers more options and more recent information as well as a
1628
quicker startup and a refresh button, explained later. TCP mode is
1629
the normal method and should be used when connections are unreliable
1630
or if you're behind a firewall.
1632
4) How much information will be shown:
1634
You can now control the amount of information that the MetaServer
1635
displays for you by setting the "metaStatusLevel" flag. The default
1641
The status levels are coded as follows.
1643
0 Servers which have players but not a wait queue.
1644
1 + Servers with a wait queue.
1645
2 + Servers with nobody playing. (see NOTE1).
1646
3 + Servers which have Timed Out for the MetaServer (see NOTE2).
1647
4 + Servers which the MetaServer has not been able to connect to.
1649
NOTE1: When using the MetaServerCache, "metaStatusLevel" values of
1650
less than 3 are treated as the value 3. This minimum is enforced
1651
because the cache does not attempt to show the number of people
1654
NOTE2: If you are a long way from the MetaServer, you are advised to
1655
ignore TimeOut errors. For example, the MetaServer in America may
1656
have difficulty contacting to a server in Holland while the link from
1657
England to Holland is very good.
1662
If you attempt to contact the MetaServer, and the connection times
1663
out, COW will try to show the MetaServerCache instead.
1665
Similarly, if you attempt to use the MetaServerCache, and your
1666
"metaCache" file does not exist, COW will attempt to call
1669
In UDP mode, COW will show the UDP cache right away, and then update
1670
the screen as responses come in.
1674
COW will pop up a window with a list of game servers. The format of
1675
the window is 1 server per line, starting with the server name,
1676
followed by the server status, and the server type. In UDP mode it
1677
will also show the age of the data on that server. In UDP mode, a
1678
refresh button is also available. Hitting that line will re-query the
1679
metaservers for more up to date data. Please don't abuse this and
1680
rapidly click this button over and over as this may make the
1681
metaserver admins ban you from connecting.
1683
To choose a server to play on, LEFT click on the server. To join as
1684
an observer RIGHT click on the server. COW will then connect to the
1689
The option "metaverbose" will make UDP metaserver queries slightly
1690
more verbose. When on, COW will display who its connecting to and who
1691
responds. The default for this option is:
1696
***************************************************************
1698
***************************************************************
1700
COW has the best and easiest to use installation procedure a client
1703
1 *** If you are compiling COW and do not intend to release the client
1704
*** for public distribution with an RSA blessing, simply type:
1708
In case you will need some additional flags for your compiler or linker,
1709
edit the "sample_key.def" file and change the corresponding parameters
1712
2 *** If you are compiling COW with the intention of releasing a client
1713
*** for public distribution with an RSA blessing, read below.
1715
First, please contact cow@netrek.org so we know about
1716
the existance of the client and where other people might obtain it.
1718
Make sure that you have MP or GMP available on your system.
1719
If you do not have the GMP installation, you need to obtain it.
1720
It should be available from gatekeeper.dec.com.
1722
To install it do the following:
1724
1) Take the sample_key.def file as a basis to generate an own RSA key
1726
2) Edit the Makefile and set KEYDEF to the name of the new generated file.
1728
If you don't have already a key a new key will be generated.
1730
Sends a mail to the RSA key keeper to get your key installed
1732
5) you are done! watch that GPA hit the floor!!
1735
cow@netrek.org always likes to receive bug reports for
1736
the client and if you have any suggestion for how to improve the
1737
Makefiles or this description, please email us. Remember that
1738
fixes are the best way to complain. Working patches should be sent to:
1742
***************************************************************
1744
***************************************************************
1746
Local weenies cheat. They talk to each other. Those of us who have
1747
never met another netrek player are forced to relie heavily on the
1750
In order to even the playing field, the current feature was proposed.
1751
This feature causes certain types of RCD messages to beep or even
1752
highlite specific objects on the screen. This is done via a
1753
macro-like interface which is highly configurable. Further, bitmaps
1754
used to highlite can be substituted with your preferences.
1756
*** TURNING BEEPING AND HIGHLITING ON
1758
In order to turn message beeping and highliting on, you must include the
1759
following in your .xtrekrc.
1763
The above leaves you with the feature on, but nothing is automatically
1764
setup. If you want to configure it yourself, go to the "CONFIGURING
1765
VIA XTREKRC" section. You can include a set of reasonable defaults,
1766
instead of bothering to learn to configure it yourself by including
1771
At any time, you can extend these simply by including some of the
1772
configuration syntax in your .xtrekrc as described in the "CONFIGURING VIA
1775
WARNING: Use beep _sparingly_, people (including you) will get sick
1776
very quickly of hearing your workstation beep every 5 seconds.
1779
*** CONFIGURING VIA XTREKRC
1782
Message beeps are configured as on and off. They are turned on if the
1783
proper line is in your .xtrekrc. Otherwise they are left off.
1785
Message lites are configured in a way very similar to macros.
1786
However, in addition to the original set of macro arguments, a new
1787
class of arguments is introduced to handle the highliting.
1789
To configure message highliting, include something like the line below.
1790
Here "name of distress" is the RCD message type. "macro" is the macro
1791
style syntax specifying what is to be highlited.
1793
lite.[name of distress]: [macro]
1796
Below are the configurations which are equivalent to the defaults
1797
which are setup for you if using DefLite. These provide good
1798
examples for how the system works.
1803
lite.help: %?%S=SB%{/c%}
1805
The above does the following,
1806
"taking" message highlites the planet and taker
1807
"base_ogg" message highlites the person to sync and your ship
1808
(to REALLY get your attention)
1809
"pickup" message highlites the enemy who picked up
1810
"help" tests to see if the player sending the distress is a base, if so
1813
You might like to change the last one to:
1814
lite.help: %?%S=SB%{/c%}%?%a>0%{/c%}
1816
This will highlite bases who distress AND carriers who distress.
1818
Using TTS you may change the pickup macro to:
1819
lite.pickup: /h/|%p++ @ %l|
1821
This sends a big ++ message on the tactical map in addition to the light.
1823
Note that all the MACRO parsing routines are run on these, and plain
1824
text left over is ignored. Only the highlite argument matter.
1826
The following are the arguments for highliting.
1832
/g target friendly player
1833
/h target enemy player
1834
/P player nearest sender
1835
/G friendly player nearest sender
1836
/H enemy player nearest sender
1837
/b planet nearest sender
1840
The following are the arguments for sounds.
1842
/0 Standard window beep (incoming message sound if sound is on)
1843
/1 - /9 Play nt_message1 - nt_message9 sound.
1845
Tactical Text Solution for the Tactical Tunnel Syndrome (TTS):
1847
/| .. | displays Text in between via TTS.
1850
Additional defaults:
1852
planetCycleTime: highlighting time for planets
1853
playerCycleTime: highlighting time for players
1855
tts_color: color of TTS message (should be dark)
1856
tts_font: Font (large prefered)
1857
tts_max_len: Max length of a message
1858
tts_time: Time a TTS message is displayed
1859
tts_pos: y location of the TTS message
1862
*******************************************************************************