10.0 Table of Contents 2******************************************************************************* 3* * 4* General Documentation for the Client Of Win (COW) * 5* * 6* Comments, suggestions and bug reports to cow@netrek.org * 7* * 8* * 9******************************************************************************* 10 11 12 13 Table of Contents 14 1.0 Overview 15 16 2.0 Acknowledgements 17 18 3.0 Features 19 3.1 Command Line Options 20 3.2 Pixmaps (Full Color COW) 21 3.3 Other features 22 23 4.0 Xtrekrc 24 4.1 Windows, fonts, cursors, and colors 25 4.2 Startup options 26 4.3 Combat options 27 4.4 Messaging options 28 4.5 Net options 29 4.6 Galactic/tactical map options 30 4.7 Keymap (and buttonmap) options 31 4.8 Playerlist options 32 33 5.0 Connection Types: UDP, TCP. Short packets. 34 35 6.0 Macros, RCD, RCM: 36 37 7.0 MetaServer Options 38 39 8.0 Compiling 40 41 9.0 Beeplite 42 43 44 451.0 Overview 46 47 This document describes the COW client, its capabilities, and the client's 48features. COW started as the successor of the BRM client after release 3. 49BRM started as a merger of the Berkeley client with Rick's Moo 50client. Since then, all three clients have developed fairly independent of one 51other. Familiarity with netrek is presumed throughout this document. Please 52consult the newbie manual for information on the game itself. 53 54 COW has an expire function which insures that players obtain new copies 55regularly. This alleviates the client's caretakers from having to support 56ancient clients. Generally, a client will expire one year after its compile 57date. 58 592.0 Acknowledgements 60 61 Many people have contributed to COW and many many others contributed 62to its ancestor clients. Here is an undoubtedly incomplete list of credits 63presented in no particular order. Where possible their typical netrek name is 64provided in the hope that you will ogg them: 65 66 Scott Silvey 67 Kevin Smith 68 Rick Weinstein Videodrome 69 J. Mark Noworolski Passing Wind 70 Tedd Hadley pteroducktyl 71 Heiko Wengler Musashi 72 Andy McFadden ShadowSpawn 73 Chris Guthrie 74 Ed James 75 Eric Mehlhaff 76 Nick Trown Netherworld 77 Lars Bernhardsson lab 78 Sam Shen Buster 79 Jeff Nelson Miles Teg 80 Jeff Waller 81 Robert Kenney Zhi'Gau 82 Steve Sheldon Ceasar 83 Dave Gosselin Tom Servo 84 Kurt Siegl 007 85 Kevin Powell seurat 86 Alec Habig Entropy 87 Jonathan Shekter KillThemAll! 88 James Cameron 89 Michael Kellen 90 913.0 Features 92 93 The COW client has many features that make it stand out from earlier 94clients. This section will attempt to describe all of its features, including 95those that are common to all clients. 96 97 3.1 Command Line Options 98 99 This section will describe COW features that are selected from the command 100line when the client is invoked. Selecting "-u" for usage or any invalid 101option will provide a brief summary of this section (-help will work too). 102 103 104 3.1.1 SERVER SELECTION 105 106 The "-h server_address" option will allow the user to select a specific 107server. The client will look to the .xtrekrc file for a default server should 108this option be absent. Examples of server addresses would be 136.165.1.12 or 109starbase.louisville.edu. 110 111 3.1.2 PORT SPECIFICATION 112 113 The "-p port_number" option will allow the user to select a specific port 114address. An example of a port_number would be 1111, 2222, or 2592. 115 116 3.1.3 DEFAULTS FILE SPECIFICATION 117 118 The "-r defaultsfile" option will allow the user to select a defaults file 119other than .xtrekrc. The defaults file contains all of the user selectable 120defaults (please see Section 4.0 for more information on .xtrekrc). Using 121this option, two users can run netrek from the same userid / account and still 122have unique defaults files. 123 124 3.1.4 VERIFICATION OPTIONS 125 126 [deleted] 127 128 3.1.5 RECORD GAME OPTION 129 130 The "-f record_file" will record the game into record_file. 131 132 The "-F record_file" will play the recorded game from record_file. 133 134 3.1.6 METASERVER OPTION 135 136 The "-m" option will instruct the client to search the Meta Server at 137metaserver.ecst.csuchico.edu, port 3521 and present the user with a list of 138available servers. The user may then select the most desirable server 139directly from the client. 140 Alternatively, the "-k" option may be used to show the "known servers", 141using the same format as the Meta Server list. The client generates 142a list of "known servers" after each call to the meta server but only if 143the "metaCache" option is set in your .xtrekrc. 144 To find out about customising the meta-server, set the Chapter 145"MetaServer Options", later in this document. 146t 147 148 3.1.7 AUTOLOGIN OPTION 149 150 The "-A password" allows the client to automatically enter the specified 151character password without having to prompt the user. This option is normally 152used with the "-C character_name" option, which automatically enters the 153character name. The "-C" option must be followed by a character name string. 154 155 3.1.8 NEAREST COLOR OPTION 156 157 The "-n" option allows the client to accept the "closest match" to the 158colors requested for drawing. How good the match is is up to your windowing 159software. 160 161 3.1.9 NO PIXMAPS OPTION 162 163 The "-b" option disables the use of color pixmaps by the client. 164 165 3.1.10 GHOST START 166 167 After a client dies, or even if you kill the client on purpose, 168 you can recover the game and continue playing. In fact the 169 server won't have any idea that anything but bad lag (called 170 a ghostbust) has occurred. 171 172 The benefits of this feature include the ability to change 173 displays, recompile code (if you happen to be a code hack), 174 or simply recover from a core dump. 175 176 In order to use it, you have to pay attention to two numbers 177 which are displayed when you connect to the server. A line 178 like this appears: 179 *** socket 11323, player 0 *** 180 181 This indicates which player slot you have been assigned, and 182 which socket number has been chosen as your ghostbust socket. 183 184 Now in order to restart, just do: 185 cow -G 0 -s 11323 186 187 The important options are -G followed by the player slot you 188 occupy, and -s followed by the ghostbust socket. Notice that 189 you don't even specify a server! 190 191 This feature may NOT work on all servers. Many server gods use 192 server code which is too old to support this feature. Also, 193 keep an eye out for small details that are off. It is NOT 194 logically possible to account for everything with this feature. 195 Such things as the motd are not resent by the server when you 196 connect, so you won't have that around anymore. Further, the 197 client won't know who it is even connected to (see above), thus 198 don't be shocked if the client claims you are connected to a 199 bogus server. 200 201 WARNING: Some servers have *very* short ghostbust timeout 202 periods. You must reconnect before this timeout expires or 203 your slot will be given to someone else, you won't be able 204 to reconnect. On most servers it is around 6 minutes long. 205 206 3.1.11 ESOTERIC OPTIONS 207 208 -c this will check server_port-1 and spew out 209 a list of all players currently playing on that server - not all 210 servers are intelligent enough to do this 211 212 -s (integer) passive port to use, generally only server gods would ever 213 use this option and even they can get by without it 214 215 -l (filename) file to log messages 216 217 -d (string of chars) display name 218 219 -H (string of chars) Gateway name 220 221 -P log packets: generally don't want to use this 222 223 -t (string of chars) title - the name of the window the client makes 224 225 -D debug mode 226 227 -v display version/expiration info and exit 228 229 -i ignore signals (SIGSEGV and SIGBUS) 230 231 3.2 Pixmaps (Full Color COW) 232 233 With the release of COW 3.00, dynamic color images are available. No 234color images have been compiled into the client, so without the additional 235files (described below) the client will behave as before. 236 237 3.2.1 Setup 238 239 The xpm files should be available at the same site from which you got 240the client, in a file named pixmaps.tgz (PIXMAPS.ZIP for windows users). 241 242>>> YOU MUST DOWNLOAD AND UNPACK THIS FILE TO USE THE COLOR FEATURES. <<< 243 244 It should create a subdirectory named "pixmaps" which should have several 245(obviously named) subdirectories. There should be several XPM files in each 246(except for Planets, which has a further subdirectory). UNIX users will see 247that they are gzipped to save space. You do NOT need to ungzip them unless 248you do not have gzip on your machine. 249 250>>> DO NOT REARRANGE OR RENAME THESE FILES IF YOU WANT TO USE THEM. <<< 251 252 You need to add a line to your .xtrekrc telling the client where to look 253for the pixmaps. If you do not, it will assume that they are in a subdirectory 254of the directory you are in when you start the client. The option is called 255"pixmapDir". Tilde and environment variables WILL NOT WORK. Relative paths 256will only work if you always start netrek from the same directory. 257 258 You should be ready to rock and roll. Fire it up. You may see some 259warnings about not being able to read some pixmaps. Some of the pixmaps 260that the client looks for haven't been drawn yet. Feel free to make your 261own set. OTOH, if you see any lines which read 262 263 "TYPE <type> PIXMAPS NOT AVAILABLE" 264 265it means that none of a certain type of pixmap were found. Check to make sure 266that the pixmaps are where you told it to look. If they are, and you are on 267a UNIX system, you may not have gzip installed. Go get it from any GNU mirror 268and either install it or use it to ungzip the XPM files. 269 270 3.2.2 Configuration 271 272 In addition to simply creating your own XPMs with a paint program, you 273may want greater control over the pictures used. For example, you may find 274the explosions are too pretty, and you are dying because you forgot to dodge. 275The crude approach is to just remove that pixmap. The client will default back 276to the standard bitmaps in this case. 277 278 The more elegant approach is to turn off just those pixmaps you don't 279like and keep the rest. This also allows you to switch back and forth WITHOUT 280having to exit and restart. So if the machine you are playing on is busy 281today, you can turn off the pixmaps until things improve, then switch back to 282full color without losing your 5 kills. 283 284 Pixmaps can be turned on or off in groups on the new "Pixmap Menu" in the 285options window (shift-O). Each line in the window also corresponds to an 286.xtrekrc resource which you can use to set the initial values. If one type 287of pixmaps is not available, you will be unable to turn on that option. 288 289 resource name default description 290 291 indPix on \ 292 fedPix on | Control whether or not the XPMs 293 romPix on | for the ships of a given team 294 kliPix on | should be used 295 oriPix on / 296 297 weaponPix on Torps and plasmatorps & their clouds 298 explosionPix on ship and starbase explosions 299 cloakPix on fade-in/-out and cloak icon 300 mapPix on Color Planet icons on galactic 301 (replaces the "colorgalactic" option) 302 303 backgroundPix on Background stars & genocide/gb images 304 (replaces the "babes" option) 305 306 ownerhalo off Draws a colored ring around each 307 planet on the galactic 308 309as a convenience, the option "shipPix" may be used to control all of the 310ship XPMs in one line. 311 312 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 313 + POWER USERS + 314 + + 315 + The MegaResource "pixFlags" can be used in your .xtrekrc + 316 + to save a bit of typing. Simply bitwise OR together the + 317 + things you want turned off: + 318 + + 319 + 0x0001 IND pixmaps + 320 + 0x0002 FED pixmaps + 321 + 0x0004 ROM pixmaps + 322 + 0x0008 KLI pixmaps + 323 + 0x0010 ORI pixmaps + 324 + + 325 + 0x0020 Weapons + 326 + 0x0040 Explosions + 327 + 0x0080 Cloaking + 328 + 0x0100 Galactic Map Planet Icons + 329 + + 330 + 0x0400 Backgrounds + 331 + + 332 + 0x1000 Halos + 333 + + 334 + so, for exaple, no halos and no explosions would be + 335 + specified as: (0x1040=4160) + 336 + + 337 + pixFlags: 4160 + 338 + + 339 + + 340 + (Note that this OVERRIDES all the other resources) + 341 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 342 343 344 If you hate them all, you can either set the "pixmapDir" to "None" or 345start the client with the -b (bitmap only) command line option. Then go ahead 346and delete all of the XPMS. Go ahead. We don't mind at all. It's not like 347we put any WORK into this ... :,-( 348 349 3.2.3 Babes/M31 and Generalized Backgrounds 350 351 Gone. You can put up any picture you like when you GENO, GB, or just 352enter or hit shift-K. Just specify the genocide.xpm, ghostbust.xpm and/or 353hello.xpm. It's really none of my business what you look at in your off time. 354 355 Absolutely no picture will be shown if you do not have an XPM in the 356specified place. It didn't belong in the client in the first place. 357 358 DEAL WITH IT. 359 360 And BTW, the ' key (quote) has the default action of retiling your local 361and galactic windows with the normal background (either black or your specified 362pixmap) to repair the damage done by the other possible pix. 363 364 3.2.4 AGRI pixmaps and FEATURE_PACKETS 365 366 The client shows a different pixmap for AGRI planets than all others. 367This was announced, voted on and overwhelmingly adopted (80%+ in favor). But 368JUST IN CASE, this option can be disabled at the server by use of the 369feature packet "AGRI_PIXMAP". 370 371 Users can choose to remove the AGRI.xpm file. The client will default 372to using the regular planet pixmap if it is missing. 373 374 3.3 Other features 375 376*** Hockey Lines 377Due to popular demand, hockey lines have been added. 378For those of you who want to see a hockey rink on the tactical, 379just use the features menu (shift-O) and toggle them on. 380 381You get: 382 Blue lines (blue) 383 Center line (red) 384 Side lines, i.e. the rink edges (grey) 385 Goal lines (red) 386 Goal boxes (the color of the team) 387 388They are a little awkward at first, but once you get used to them, 389you'll wonder how you lived without them. 390 391Since this is a first pass, I'm looking for more input on what 392would make them better. Here are some of my comments: 393 3941) Lines are hardcoded into the software. They should be 395based upon planet location, so the hockey gods can move the 396planets around. 397 3982) You either have them all or none. Perhaps the set of 399desired lines should be configurable from the xtrekrc. Also, 400you cannot change the colors. 401 4023) Lines on the galactic would look pretty 403 404If you have any comments, mail them to kantner@hot.caltech.edu 405 406*** Shell escape tool 407You may execute any Unix shell command within the client. Read your mail 408now within the client. To do so, just send a message to the destination 409"!" and you get a shell prompt. Enter the command and its output will 410be displayed in the tools window. Works also with macros to "!". 411You may disable it in the .xtrekrc for security reasons with shellTools: off 412CAUTION: The client will be blocked for the time the command is executed. 413Also some programs suspend the client if it is started in the background. 414 415*** Fast quit 416Hitting 'q' will quit the client without ever going back to the 417team selection window, the normal 'Q' still goes back to the team 418selection window. 419 420*** Reread defaults file 421You can reread your netrek default file by hitting '&', it is also 422possible to enter a new default file name at any time by sending 423a message to 'M' which contains the file name. 424 425*** Galactic rotation 426For those who like to fight with some specific orientation, the 427galaxy is now rotate-able. This can be done in the options window. 428This works now also with short packages. 429 430*** Gateway 431Lots of cool gateway code in this client, unfortunately I don't 432use nor do I know what it does other than get past firewalls. 433 434*** Observer support 435Many servers allow you to *observe* a game instead of playing, sort of 436like watching football. COW supports this feature. Currently in order 437to be an observer, all you have to do is connect to the observer port 438for a server. A good guess at the observer ports for a pickup server is 4392593; for INL, 4000 and 5000. 440 441*** Lagmeter 442This is pretty pointless: a continuously updated bar graph of how bad 443your lag is. Perfect for the whiny player who needs an excuse. ;) 444This can be turned on with the '\' key, from the options menu, or from 445the .xtrekrc. (lagmeter.parent, lagmeter.mapped, lagmeter.geometry) 446Requres netstats to be on. 447 448*** Pingstats 449In a similar vein, the pingstats window can be turned on from the .xtrekrc, 450the options menu, or the key ','. 451 452*** The Pig call 453COW supports sending five spaces to a player as the de facto method of 454requesting info on the client. (So called because it was used by the Pig 455borg, AFAIK.) For instance: 456 COW 3.00pl0, linux, 03/03/98, RMCSE365AmTsr 457The letters in the fourth field indicate which #ifdefs were specified 458at compile time. Possibilities are: 459M: Macros 460D: Debugging information 461C: Corrupted packet handling 462S: Short packets 463E%d: Expiration date, in days after compilation 464A: Stat window contains a slider showing armies carried 465 (does not affect the newdashboard code) 466m: Metaserver support 467T: "Various tools, like shell escape, ..." 468s: Sound 469r: RCD support 470 471*** Improved help window: 472 Basically, this was done to show what keys were 473 actually mapped to what functions. Every key function has a line in 474 the help window. Here's a sample line: 475 476 s gb Toggle shields 477 ||\\_ The 'b' key has been mapped to toggle shields 478 || \_ The 'g' key has also been mapped to toggle shields 479 |\____This space is always there, as a separator. 480 \_____This is the default key for this function, and the hook that you 481 use when defining things to this function. I.e. to set the 'g' 482 and 'b' mappings mentioned here, you'd have to put 'gsbs' in 483 your .xtrekrc or your keymap options. 484 NOTE: This character will appear here, even if it is mapped 485 to something else. 486 487*** Message-Warp: The non-warp version. 488 Hit the 'm' key and start typing. Your cursor changes to the 489 'text' cursor, and all keystrokes go to the message window. Sending 490 the mesage or the ESC key ends this. Again, the mouse pointer is not 491 moved. 492 493*** Documentation Window 494 495The documentation window is used to view documentation while actually 496playing. In order to do this you must either have the COW.DOC file in 497the directory you are running the client from or you must set the 498documentation resource value to the full path to the file with the 499documentation. Control-y brings this window up. Also available via 500shift-O option menu under "info." 501 502The 'f', 'b' keys scroll forward and back by 28 lines, like the motd 503window. While 'F' and 'B' keys scroll by 4 lines. 504 505In .xtrekrc: 506documentation: /home/kensho/powell/misc/netrek/brm3002/myCOW.DOC 507 508*** Xtrekrc File Window 509 510The xtrekrc file window is used to view your current xtrekrc file online. 511It is currently very stupid in that if you used the command line 512option '-r' to specify your xtrekrc file, this viewer will not find 513it (it's currently hardwired for $HOME/.xtrekrc:( Control-X (that 514is control-shift-x) will bring up this window, or shift-O under "info." 515 516The 'f', 'b' keys scroll forward and back by 28 lines, like the motd 517window. While 'F' and 'B' keys scroll by 4 lines. 518 519*** Auto torp aiming and dodge 520Get outa here... 521 522 523*************************************************************** 5244.0 Xtrekrc: 525*************************************************************** 526 527COW looks for a .xtrekrc file in your home directory. Alternatively 528this file may be called home, and it may be in whatever directory 529the client is executed from. 530 531A file called "SAMPLE.xtrekrc" should have been included with this 532client. Below is an attempt to explain the many, many options you 533can include in a .xtrekrc file. Some of this was borrowed from 534various other documentation such as MOO documentation. 535 536For other options, see MACROs and Receiver Configurable Distress Calls. 537 538 539 4.1 Windows, fonts, and colors 540 541rank.mapped: (on/off) 542rank.parent: (window name) ie root, review_all, netrek, etc 543rank.geometry: (geometry specification) ie 80x26+554+624 544 Every window may have these three defaults set for it. 545 Some windows are resizeable, others are not. 546 547font: fixed 548bigfont: lucidasans-24 549italicfont: -schumacher-clean-medium-i-normal--10-*-*-*-c-80-iso8859-1 550boldfont: -schumacher-clean-bold-r-normal--10-100-*-*-c-60-iso8859-1 551 Specifies which fonts you want to use, 552 not sure that all of these are still used in COW 553 554The personalized cursor extensions allows the user to specify their own 555cursors for the map, local, text, menus and info list windows. 556 557localCursorDef: /usr/me/.local.xbm 558mapCursorDef: /usr/me/.map.xbm 559infoCursorDef: /usr/me/.info.xbm 560textCursorDef: /usr/me/.text.xbm # the mask would be called /usr/me/.text.xbm.mask 561arrowCursorDef: /usr/me/.arrow.xbm 562 563For infoCursorDef, textCursorDef, arrowCursorDef an optional mask may 564be specified. To specify a mask, first create your new cursor, say called 565mycursor, then create the mask and call it mycursor.mask. They both need to 566be on the same path. Cursor and mask *must* be the same size, if not the 567cursor cannot be used (why anybody would want to do this makes no sense, 568but...:) 569 570color.white: white 571color.black: black 572color.red: #ffa0ff 573color.green: green 574color.yellow: yellow 575color.cyan: cyan 576color.light grey: light grey 577 Specify what colors should be used by the client. 578 This is generic X color specification (right?). 579 All the possible left hand sides are listed I think. 580color.Ind: light grey 581color.Fed: yellow 582color.Rom: tomato 583color.Kli: green2 584color.Ori: light steel blue 585 Race Colors may be set separately. 586 587 4.2 Startup options 588 589name: (string of chars) default name 590 591password: (string of chars) default password; if both name and password 592 are included in your .xtrekrc, COW will attempt to do 593 an autologin for you. 594 595server: bronco.ece.cmu.edu 596 default server that is called when no -h argument is 597 specified. Leave this blank to have cow call the 598 metaserver by default. 599 600port: 2596 601 default port that gets called. The compiled default is 2592. 602 603server.rio: riovista.berkeley.edu 604 Allows you to specify a server abbreviation. Thus instead of 605 using "-h riovista.berkeley.edu" you now use only "-h rio" 606port.rio: 4566 607 default port that gets called for the server abbreviation. 608 609showmotd: (on/off) display motd if in wait queue 610 611autoquit: (integer) length of time to wait on team selection screen 612 before Auto-quit exits for you. 613 614ignoreSignals: (on/off) ignore SIGSEGV and SIGBUS. COW will try to reset 615 the game so you can continue. 616 617 4.3 Combat options 618 619warnShields: (on/off) In color, you can have your shield be color of your 620 alert status (red, yellow, green) 621 622varyShields: (on/off) Shield color and bitmap depends on shield strength. 623 624varyHull: (on/off) graphical indication of your hull condition. Kinda 625 like varyShields. When varyHull is on your ship looks like it 626 has small spikes sticking out of the shields, each spike 627 representing 12.5% of your hull strength. 628 629cloakChars: (string of one or two chars) what to use for cloakers on 630 galactic instead of '??'. 631 632enemyPhasers: (integer 0-10) enemy phasers thickness at starting point. 633 634phaserShrink: (integer 0-16) Don't draw the first "phaserShrink"/16th of 635 your phaser. This makes it easier to see incomming torps. 636 637theirPhaserShrink: (integer 0-16) "phaserShrink" for other players' ships. 638 639shrinkPhaserOnMiss: (on/off) Use "phaserShrink" and "theirPhaserShrink" even 640 if a phaser misses. 641 642highlightFriendlyPhasers: (on/off) phaser hits by your team are solid white 643 (instead of the default "rainbow" a la COW-lite. 644 645showtractorpressor: (on/off) toggle showing tractor/pressor beams 646 647continueTractors: (on/off) off = turns off the visible t/p after 2 updates. 648 649showstats: (on/off) show stats window 650 651 652 4.4 Messaging options 653 654newDistress: (on/off) right-justified distress call or not, default value 655 is to right-justify (on) 656 657reportkills: (on/off) display kill messages or ignore these 658 659censorMessages: (on/off) attempts to remove profanity from messages sent. 660 They'll look like this: "F0->FED @$%# you twink" 661 662logging: (on/off) displays messages to stdout if set. 663 664logfile: (filename) alternatively saves messages to a text file 665 666PhaserMsg: [0, 1, 2, 3, 4, 5] 667 668 0 = Don't log phaser hits 669 1 = Log phasers on all window 670 2 = Log phasers on team window 671 3 = Log phasers on indiv window 672 4 = Log phasers on kill window 673 5 = Log phasers on review window 674 675 the additional phaser window is controlled just like the other 676 review windows. e.g.: 677 review_phaser.mapped: on 678 review_phaser.parent: netrek 679 review_phaser.geometry: 81x2+0+555 680 681 682 4.5 Net options 683 684netstats: (on/off) collect network statistics for measuring lag 685 686netstatfreq: (integer) how often to update the network statistics 687 688tryShort: (on/off) default setting for whether to use short packets. 689 690tryUdp: (on/off) try to automatically connect with UDP 691udpDebug: 0 = OFF 1 = ON (conect msgs only) 2 = ON (verbose output) 692udpClientSend: 0 = TCP only, 1 = simple UDP 693 2 = enforced UDP--"state", including the following flags: 694 SPEED 695 DIRECTION 696 SHIELD (up or down) 697 ORBIT 698 REPAIR 699 CLOAK 700 BOMB 701 DOCKingPERMission 702 PLAYerLOCK and PLANetLOCK 703 BEAMing of armies 704 3 = enforced UDP--"state & weapons" all of the above plus 705 PHASER commands 706 PLASMA commands 707 Note that TORP commands are not included. 708 709udpClientRecv: 0 = TCP, 1 = simple, 2 = fat, 710 3 = double (not currently supported) 711 712udpSequenceChk: ? 713 714 715 4.6 Galactic/tactical map options 716 717useTNGBitmaps: (on/off) Different bitmaps for fed. Not the new pixmaps. 718 719ROMVLVS: (on/off) Replacement for dorky Rom CA bitmap. Not a pixmap. 720 721showIND: (on/off) mark independent planets with a X drawn over it. 722 723newPlanetBitmaps: removed. Use showlocal/showgalactic instead. 724whichNewPlanetBitmaps: ditto. 725 726newDashboard: (integer 0-3) Uses sliding bars instead of numbers to display 727 speed, shield/hull status, etc, on the dashboard. 1 is 728 'vanilla'; just like the old stat graph. When set at 2, 729 besides defaulting to green, displays how much hull/shield 730 you have LEFT, not how much you have lost (i.e. this is an 731 optimistic dashboard, it sees the cup as half full ;). At 3, 732 uses triangle sliders AND numbers. 733 734keepInfo: (integer) number of updates to keep info windows on the 735 screen before automatically removing them 736 737extraAlertBorder: Draws border in internal netrek windows, as well 738 as external ones (which get ignored in X11 with window-managers) 739 740forcemono: if on, the client windows are set to be monochrome 741 742redrawDelay: if >0 synchron screen refresh every n/10 sec 743 (useful for slow X-terms and high lag). 744 745showgalactic: 0 = nothing, 1 = ownership, 2 = standard resources, 746 3 = MOO/ZZ resources, 4 = rabbit ear resources 747 Determines what kind of information will be shown on planets 748 displayed on the galactic. With option 2, the planet bitmap 749 has symbolic icons for armies > 4, repair, and fuel resources. 750 With option 3, the planet has a dot in its center to represent 751 fuel and four tickmarks in the corners to represent repair. 752 With option 4, an ear on the left indicates repair and an 753 ear on the right fuel. 754 755showlocal: 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 local map. 759 760showLock: 0 = none, 1 = galactic, 2 = local, 3 = both 761 Where to display the locked-on triangle. 762 763showplanetnames: (on/off) turn on planet names by default. 764 765colorgalactic: Use color pixmaps instead of bitmaps on galactic. 766(Obsolete -- see section 3.2.2) 767 768showstars: Use starry background on galactic map. 769(Obsolete -- see section 3.2.2) 770 771Color pixmap controls. (See section 3.2.2) 772resource-- indPix: (on/off) default on 773resource-- fedPix: (on/off) default on 774resource-- romPix: (on/off) default on 775resource-- kliPix: (on/off) default on 776resource-- oriPix: (on/off) default on 777resource-- weaponPix: (on/off) default on 778resource-- ex:plosionPix (on/off) default on 779resource-- cloakPix: (on/off) default on 780resource-- mapPix: (on/off) default on 781resource-- backgroundPix: (on/off) default on 782resource-- pixFlags: (int) default 0 (== all on) 783 784ownerhalo: (on/off) default off 785 Draw a circle around the planet pixmap in the color of the 786 owning team. (pixmaps only) 787 788 789 4.7 Keymap (and mouse) options 790 791keymap: (string of chars) remaps the keyboard, syntax is simply the 792 key to map onto, followed by the key to map, repeated. 793 Thus to map the "fire torps" key 't' onto 'f', use 794 keymap: ft 795 (See also the sections on control keymaps and ship 796 dependent keymaps below.) 797 798ignoreCaps: (on/off) ignore the Capslock key. 799 800buttonmap: map the mouse buttons to something else. 801 i.e. the default mapping is: 802 1t2p3k 803 804shiftedMouse: (on/off) 805 The shift and control keys can be used to modify the default function 806 assigned to a button. The shift key acts as a switch which brings an 807 alternate mapping to the mouse buttons. In a similar way control and 808 shift + control act to switch mappings again. 809 Breakdown of values: 810 Normal buttons 1, 2, 3, 811 <shift + button 1, 2, or 3> maps to 4, 5, 6, 812 <control + button 1, 2, or 3> maps to 7, 8, 9, 813 <shift + control + button 1, 2, or 3> maps to a, b, and c. 814 This remaps all the possible mouse buttons: 815 buttonmap: 1t2p3k4c5s6y7E8z9xaFbdcD 816 817mouseAsShift: (on/off) Not to be confused with "shiftedMouse." ;) 818 Makes the mouse buttons 1-3 act like shift keys. Each button 819 "shifts" or causes a new set of key mappings to come into 820 effect: Instead of the keyboard remapping the mouse, the 821 mouse now remaps the keyboard. Each key on the keyboard now 822 has several possible mappings. Use the b[123]keymap 823 option to specify commands. For example, to have the 'a' 824 key fire a torpedo while button1 is pressed, and a phaser 825 while button2 is pressed, add the lines: 826 b1keymap: at 827 b2keymap: ap 828 829continuousMouse: (on/off) allows you to cause multiple commands to be issued 830 to the server when dragging the mouse with a button down. 831 For instance you can drag the mouse while pressing button 3 832 (which defaults to set_course). Saves on button wear and 833 tear. ;) 834 835 4.7.1 Ship dependent keymaps, buttonmaps and .xtrekrc files 836 837You can add one of: sc, dd, ca, bb, as, sb, ga, att, default to the 838following default options to override them based on ship type: 839 840rcfile-??: ship specific .xtrekrc file, 841keymap-??: ship dependent keymap, 842ckeymap-??: ship dependent CTRL keymap, 843buttonmap-??: ship dependent buttonmap. 844 845It will automatically reload the specified defaults if you change the 846shiptype. If a ship-specific option is not specified, the default 847option is used for that ship. For e.g., keymap-sc: will be used 848instead of keymap: whenever you switch to an SC. 849 850Used well, this is a very powerful feature. For instance, you might 851bind a key to your prefered cruising speed, with a different speed for 852each ship type. 853 854Here's part of my keymap as an example. 855# default: q = warp 2, w = 1/2 maxwarp, e = maxwarp 856ckeymap: q2w#e% 857# override some of the above, based on ship type 858ckeymap-ca: w4 859ckeymap-bb: w3 860ckeymap-sb: q1w2 861 862 4.7.2 Control keymaps 863 864Control keymaps (ckeymap) handle the remapping of keys in an 865analoguous manner to the normal keymap (keymap). The control keymap 866also allows the user to map both *upper* and *lower* case letters keys 867when pressed with the control key. This means that ^u and ^U are 868*different* keys when it come to mapping them. 869 870Any combination of normal keys and control keys can be mapped to one 871another. In other words, you can map from control key to control key, 872control key to normal key, normal key to normal key, and normal key 873to control key. 874 875New format for ckeymap is: 876c = any printable ascii character. 877^ = introduce control mapping (the key '^' not control + key.) 878 879Each entry is a pair, like: 880cc # regular format 881c^c # regular->control 882^cc # control->regular 883^c^c # control->control 884 885Example ckeymap: 886ckeymap: ^a%r^b^m^ca%d5 tfDFf^^E 887 888Special case: 889The '^' must be mapped with a double ^ ("^^") in either the bound or 890binding key position. 891 892Notes: 893* If you experience difficulties (you shouldn't) you might wish to use 894 a normal keymap and a new ckeymap in combination. Both are read in, 895 the keymap first then the ckeymap. This means that if a key is 896 defined in both the keymap and ckeymap, the ckeymap's definition 897 will be the one used. 898* If you wish to use ckeymaps in conjunction with keymaps based on 899 ship type (keymap-??, etc.), note that ckeymap still overrides 900 keymap-??. For e.g., if you define a key in ckeymap and in 901 keymap-bb, the ckeymap binding hides the other binding. You should 902 use ckeymap-bb instead. 903* Since ckeymaps are a superset of keymaps, you might consider using 904 ckeymaps in all situations where you would use keymaps. This will 905 make things a lot simpler for you. (But keep in mind that `^' has a 906 special meaning in ckeymaps!) 907 908Analogously, control keys may be used for buttonmap, singleMacro and 909all macro and RCD definitions. 910 911 4.8 Playerlist options 912 913newPlist: (on/off) new playerlist, instead of total kills, deaths 914 offense and defense it shows login and stats (off+bomb+planet). 915 Provided for backwards compatibility; use playerListStyle 916 instead. 917 918sortPlayers: (on/off) Sort the playerlist with the enemy team players 919 first, then your team and then the neutral players. 920 921sortMyTeamFirst: (on/off) Modifies "sortPlayers" so that your team is sorted 922 immediately before the enemy teams. 923 924partitionPlist: Add blank lines to a sorted player list to separate the 925 different teams. This is useful in mono where the teams 926 can not be distinguished by their color. 927 928playerListStyle: (0-4) The style for the player list. The options are: 929 930 (0) Custom player list as defined by the 931 playerlist variable above, 932 (1) Old player list, 933 (2) Traditional COW player list, 934 (3) Kill watch player list, 935 (4) BRMH Player list. 936 937 If "playerListStyle" is set, newPlist is ignored. 938 Use the options menu (shift-O) to try the different styles. 939 If no options are specified, defaults to (1). 940 941playerlist: (string) The layout for the player list. What it allows 942you to do is specify which columns of the player list you want to show 943and in what order. The following is a table of the available columns. 944 945Spc Let Name Header 946--- --- -------------------- ------------------- 947 3 'n' Ship Number " No" 948 3 'T' Ship Type " Ty" 949 11 'R' Rank " Rank " 950 17 'N' Name " Name " 951 6 'K' Kills " Kills" 952 17 'l' Login Name " Login " 953 6 'O' Offense " Offse" 954 6 'W' Wins " Wins" 955 6 'D' Defense " Defse" 956 6 'L' Losses " Loss" 957 6 'S' Total Rating (stats) " Stats" 958 6 'r' Ratio " Ratio" 959 8 'd' Damage Inflicted(DI) " DI" 960 1 ' ' White Space " " 961 962options available when compiled with PLIST1 963 6 'B' Bombing " Bmbng" 964 6 'b' Armies Bombed " Bmbed" 965 6 'P' Planets " Plnts" 966 6 'p' Planets Taken " Plnts" 967 17 'M' Display/Host Machine " Host Machine " 968 7 'H' Hours Played " Hours " 969 6 'k' Max Kills " Max K" 970 6 'V' Kills per Hour " KPH" 971 6 'v' Deaths per Hour " DPH" 972 973options available when compiled with PLIST2 974 9 'w' War staus " War Stat" 975 3 's' Speed " Sp" 976 977So for example if you just wanted to see names and rank you'd add this 978line to your .xtrekrc: 979 980playerlist: NR 981 982The styles defined by "playerListStyle" are 983 1: Old style = "nTRNKWLr O D d " 984 2: COW style = "nTR N K lrSd" 985 3: Kill watch style = "nTK RNlr Sd" 986 4: BRMH style = "nTR N K l M" 987 988 In order for this mod to be in effect you must compile with PLIST 989defined. The things shown after PLIST1 are only available if you 990have PLIST1 defined, the same goes for the things after PLIST2, but 991you must have PLIST defined or neither of these will do anything. 992 993NOTE FROM SOURCE KEEPER: 994PLIST2 is not active in COW currently. Some players feel that placing 995speed on the playerlist gives a strategic advantage. 996 997NOTE ON SB STATS : 998On servers which support the SBHOURS .feature, you will see slightly 999different things when you info a SB, or show the SB player on the 1000playerlist. The usual offense and defense lines are replaced with SB 1001kills/hour and deaths/hour. The kills, deaths, hours and ratio entries 1002are all the player's SB stats as long as he is in the SB, and his normal 1003stats otherwise. 1004 1005*************************************************************** 10065.0 Connection Types: UDP, TCP. Short packets. 1007*************************************************************** 1008 1009UDP provides an unreliable, packet-based protocol for sending data 1010across an IP network. There are a variety of ways that a UDP packet 1011can be lost or discarded, including a failure of the underlying 1012communication mechanism. UDP implements a checksum over the data 1013portion of the packet. If the checksum of a received packet is in 1014error, the packet will be dropped with no indication given to the 1015user. A queue of received packets is provided for each UDP socket. 1016This queue has a limited capacity. Arriving datagrams which will not 1017fit within its high-water capacity are silently discarded. 1018 1019Guest Rd 71 27 2% / 13% 1020 1021The stats above show a typically UDP connection. It has loss of 1022packets but its round-trip times are fairly low. 1023 1024 1025TCP provides a reliable, flow-controlled, in order transfer of data 1026across an IP network. There is nothing fundamentally different about 1027the way UDP and TCP packets travel over the wire. The only real 1028difference is that TCP will keep sending the same packet over and over 1029again until it gets an acknowledgement back. As a result, TCP 1030connects are typically slower than UDP connections and usually require 1031more bandwidth. TCP is slower because it guarantees that packets will 1032arrive in order and so a lost packet can hold up later packets. 1033 1034Example: 1035 1036Guest Ff 405 669 0% / 0% 1037 ^^^ ^^^ ^^^^^^^^^ 1038 1039The above shows possibly the same connection with UDP turned off. 1040There is no loss but the round trip times are much higher. 1041 1042 1043NOTES: 1044 1045* COW always uses TCP for some things. For example, the text messages 1046 that you can send to other players are implement in TCP to guarentee 1047 that they always arrive. However, if a UDP connection is also 1048 available, it is used for the vast majority of communication. 1049 1050* COW will fall back to using a TCP only if it fails to open 1051 a UDP link. If you find that you have high lag and no loss, you 1052 probably should display the UDP control window (the default key is 1053 `+') and turn UDP back on by pressing the top button. 1054 1055* It is recommended to use a TCP connection if you are at the same 1056 site (within a few milliseconds lag) of the server you are playing on. 1057 The main reason for using UDP is to reduce your round trip times. 1058 1059* The option "tryUdp" can be used to set a preference for using 1060 UDP (tryUdp: on) or TCP only (tryUdp: off). 1061 1062 1063 1064*************************************************************** 1065Short Packets: 1066*************************************************************** 1067 1068For a more technical description of short packets, see README.SHORT_PCK. 1069 1070Short packets are supported by COW. These have been shown 1071to substantially reduce the volume of traffic between the client 1072and server, and will improve lag in many situations. Not all 1073servers support short packets yet, but that is changing rapidly. 1074 1075COW has a short packet window which is brought up with the ` key. 1076In this window you can turn short packets on and off as well as 1077configure it in various ways. 1078 1079Also in your netrek defaults file you can add the line 1080 1081tryShort: on 1082 1083in order to have short packets automatically turned on whenever 1084you connect to a server which allows it. 1085 1086Don't forget about the - and | keys for requesting updates. 1087 1088 1089*************************************************************** 10906.0 MACROs, RCD, RCM: 1091*************************************************************** 1092 1093Three types of macros exist in the COW client: NBT, NEWMACRO, and 1094SMARTMACRO. NBT is always on, however NEWMACRO and SMARTMACRO can 1095be turned off by a server which does not allow them. 1096 1097You may see a list of what macros are in your client by hitting 1098'X' followed by '?'. At the top of this list it shows which macros 1099are enabled in the client right now. 1100 1101NBT macros allow you enter a message in your .xtrekrc which you 1102send regularly. 1103 1104macro.x.X: <text here> 1105#x is any ascii character; it is the "name" of the macro (the key you press 1106#in macro mode to send the associated macro) 1107#X can be A,T,F,R,K,O where A=all, T=team, F=fed, R=rom, K=kli, O=ori 1108#(determines the message board to which the text body of the macro is sent) 1109Example: 1110macro.b.T: BOMB!!!! 1111 1112For more information on NEWMACRO and SMARTMACRO see the NEWMACRO 1113section below. 1114 1115 1116*************************************************************** 1117Receiver Configurable Distress Calls (RCD): 1118*************************************************************** 1119 11209/2/93 - jmn, jn (no relation 8^) 11216/7/95 - updated by ATH 1122 1123Receiver configurable distress calls have been added to the client 1124and use a MACRO-like syntax. 1125 1126In order to change the distress type a line such as the following 1127should be in your defaults file. 1128 1129dist.T.taking: (%i) Carrying %a to %l%?%n>-1%{ @ %n%} 1130 1131 or simply 1132 1133dist.taking: (%i) Carrying %a to %l%?%n>-1%{ @ %n%} 1134 1135This has the format 1136dist.[key].[name of distress]: [macro] 1137 1138Arguments for the macro and SMARTMACRO syntax are exactly the same 1139as before. Any argument can be used, but usually only those 1140in the groups "Standard" and "FULLY CAPITALIZED" apply. 1141 1142Note that if you don't want to ever see a certain distress, use the 1143macro characters : %*. For example, 1144 1145 dist.free_beer: %* 1146 1147will allow your client to simply ignore any "free beer" RCD's that get sent. 1148 1149Below is a table giving the name of each distress, the key it 1150is assigned to, and the default macro (at the time of this writing). 1151Note that except for E and F, these are all control keys. 1152 1153Key Name Default Distress Macro 1154t taking %T%c->%O (%S) Carrying %a to %l%?%n>-1%{ @ %n%} 1155o ogg %T%c->%O Help Ogg %p at %l 1156b bomb %T%c->%O %?%n>4%{bomb %l @ %n%!bomb%} 1157c space_control %T%c->%O Help Control at %L 11581 save_planet %T%c->%O Emergency at %L!!!! 11592 base_ogg %T%c->%O Sync with --]> %g <[-- OGG ogg OGG base!! 11603 help1 %T%c->%O Help me! %d%% dam, %s%% shd, %f%% fuel %a armies. 11614 help2 %T%c->%O Help me! %d%% dam, %s%% shd, %f%% fuel %a armies. 1162e escorting %T%c->%O ESCORTING %g (%d%%D %s%%S %f%%F) 1163O ogging %T%c->%O Ogging %h 1164B bombing %T%c->%O Bombing %l @ %n 1165C controlling %T%c->%O Controlling at %l 11665 asw %T%c->%O Anti-bombing %p near %b. 11676 asbomb %T%c->%O DON'T BOMB %l. Let me bomb it (%S) 11687 doing1 %T%c->%O (%i)%?%a>0%{ has %a arm%?%a=1%{y%!ies%}%} at %l. %d%% dam, %s%% shd, %f%% fuel 11698 doing2 %T%c->%O (%i)%?%a>0%{ has %a arm%?%a=1%{y%!ies%}%} at %l. %d%% dam, %s%% shd, %f%% fuel 1170f free_beer %T%c->%O %p is free beer 1171n no_gas %T%c->%O %p @ %l has no gas 1172h crippled %T%c->%O %p @ %l crippled 11739 pickup %T%c->%O %p++ @ %l 11740 pop %T%c->%O %l%?%n>-1%{ @ %n%}! 1175F carrying %T%c->%O %?%S=SB%{Your Starbase is c%!C%}arrying %?%a>0%{%a%!NO%} arm%?%a=1%{y%!ies%}. 1176@ other2 %T%c->%O (%i)%?%a>0%{ has %a arm%?%a=1%{y%!ies%}%} at %l. (%d%%D, %s%%S, %f%%F) 1177# other3 %T%c->%O (%i)%?%a>0%{ has %a arm%?%a=1%{y%!ies%}%} at %l. (%d%%D, %s%%S, %f%%F) 1178E help %T%c->%O Help(%S)! %s%% shd, %d%% dmg, %f%% fuel,%?%S=SB%{ %w%% wtmp,%!%}%E%{ ETEMP!%}%W%{ WTEMP!%} %a armies! 1179 1180 1181Here is some documentation written by jmn about how receiver 1182configurable distress calls work: 1183 1184=========================== 1185Well... here's how it works.... Each RC_DISTRESS compatible client can make 1186the distress call appear as whatever you like through their .xtrekrc... 1187If you DONT have a new enough client the server will do a default parsing 1188of the distress call and you will see it like that. Also if the server is 1189old then the distress call sent out by each client will appear the way 1190_the sender_ likes to have them displayed. 1191 1192Let me summarize with an example: 1193F0 likes 'F' to say 'Carrying 4 maggots.' 1194F1 likes 'F' to say 'Carrying 4 armies.' 1195F2 likes 'F' to say 'Carrying 4 lawyers. 20% fuel' 1196The server default is 'Carrying 4.' 1197Note: 1198Advanced RC_DISTRESS users should note that 'F' can be remapped easily in 1199at least 2 different ways. For example throught .xtrekrc 1200 1201dist.(.carrying: %T%c: Carrying %a maggots. 1202singleMacro: ( 1203(this will make 'X(' or '(' be the same as 'F' used to be) 1204There will be more documentation on this coming later but basically the 1205syntax is the same as SMARTMACRO and NEWMACRO. 1206 1207----------- 1208On a NEW server: 1209Case 1: All of them are using a new client. 1210F1 will ALWAYS see 'Carrying x armies.' No matter who sent it. 1211 1212Case 2: Only F1 is using an old client. 1213F1 will see the _server_ set defaults for the carrying call from everybody. 1214Note that the calls from F0 and F2 will appear in the same format to him on 1215this server (but may appear in a different format on different servers). 1216F2 and F0 will see F1's client-defined distress calls. 1217 1218--------------- 1219On an old server: 1220F1 will see whatever the sender likes to see (in this case the sender sends 1221the pre-formatted text instead of the RC_DISTRESS short-hand). 1222So a 'F' from F2 will appear to everybody as: 1223'Carrying 4 lawyers. 20% fuel' 1224a 'F' from F0 will appear to everybody as: 1225'Carrying 4 maggots.' 1226=========================== 1227 1228 1229------------------------------------------------------------------------- 12308/16/93 - jn 1231New feature for default file... 1232rejectMacro: on (on/off) default to off, if on, COW automatically 1233 stops NEWMACROs from being sent when the server 1234 has turned NEWMACROs off. That is any 1235 macro in your defaults file defined by a 1236 mac.*.*: (TEXT) line. 1237 1238*************************************************************** 1239NEWMACRO and SMARTMACRO documentation - Jeff Nelson 6/4/1993 1240*************************************************************** 1241 1242 1243*WARNING* *WARNING* *WARNING* *WARNING* *WARNING* 1244 1245These features default ON in the COW client! A server may turn them 1246off *for you* if they are not allowed at that server. The BRM client will 1247inform you by sending you a message line like: 1248BRM: Features enabled: NO_NEWMACRO, NO_SMARTMACRO 1249 1250If you are not at a server that allows NEWMACRO, then all targetted 1251macros will be treated as normal NBT macros (no argument substitution, 1252%a will broadcast as %a). If you are not on a server that allows 1253SMARTMACRO, then any conditional text or tests will *not* be evaluated, 1254instead they will be sent as the macro appears in your defaults file! 1255 1256If you don't like this, complain to the server god!! Make a difference!! 1257 1258 1259Compilers: 1260In order to use the below features, NBT and NEWMACRO must be defined. 1261In addition, SMARTMACRO must be defined to use the most advanced 1262features. 1263 1264 1265Here is the idea: 1266A player should be able to include in his/her macros whatever 1267reasonable information is available. And configuring its display 1268in whatever way is desired. In order to do this, the following 1269syntax is used (while remaining completely compatible with old NBT 1270macros). 1271 1272A key is assigned in the defaults file (ie .xtrekrc, etc) 1273by a line like: 1274 1275mac.F.T Help! Carrying %a!! 1276 1277This defines a macro which will send a distress containing 1278the number of armies a player is carrying to his team. 1279 1280Note, this is NOT printf syntax! Any attempt to use formatting will 1281fail miserably. Maybe in the future someone will want to develop 1282a means of formatting the variables used in macros, but the only 1283means I can think of are both bulky and ugly. 1284 1285Here is another example: 1286 1287mac.f Help! Carrying %a!! 1288 1289Unlike the first, this macro will not send directly to the team, 1290instead it requires that you give a third keystroke specifying the 1291recipient. For example, it could be invoked by: 1292 1293XfT <- to your team 1294Xf1 <- to player 1 1295XfG <- if you are desperate, send to God 1296XfA <- if you are stupid, send to ALL 1297 1298Old macros will still work in addition to these, thus be sure there are 1299no conflicts. These generally cause suprising results. For example, 1300if this is in your macro file: 1301 1302mac.E.T Help! I'm carrying!! 1303macro.E.A You all suck! 1304mac.E Help! I'm a twink!! 1305mac.E.T Help! I'm carrying again!! 1306macro.E.A You all suck even worse NOW! 1307 1308The suprising results would be that pressing XE would broadcast the 1309first two messages, and then wait for the destination of the third. 1310It would be impossible to ever use the last two. Unfortunately, multiline 1311macros also do not work if they require a destination. There is no 1312good reason for this, but since multiline macros annoy the hell out 1313of me, I ain't fixing it. You can still do something like: 1314 1315mac.D.A: D 1316mac.D.A: O 1317mac.D.A: O 1318mac.D.A: S 1319mac.D.A: H 1320 1321This would properly broadcase 5 messages containing 1 character to all. 1322If you tried to specify the destination for these by using "mac.D:", 1323only 'D' would be sent. 1324 1325Also '?' can still not be used as a macro key. 1326The following definitions will work in a macro: 1327 1328Standard: 1329 1330%o 3 charcter team name of sender 1331%a armies carried by sender 1332%d sender damage percentage 1333%s sender shield percentage 1334%f sender fuel percentage 1335%w sender wtemp percentage 1336%e sender etemp percentage 1337%t team id character of target planet 1338%T team id character of sender team 1339%r team id character of target team 1340%c sender id character 1341%n armies on target planet 1342%E 1 if etemped, 0 if not 1343%W 1 if wtemped, 0 if not 1344%S sender two character ship type 1345%p id character of target player 1346%g id char of target friendly player 1347%h id char of target enemy player 1348%P id character of player nearest sender 1349%G id char of friendly player nearest sender 1350%H id char of enemy player nearest sender 1351%l three character name of target planet 1352%N full name of target planet 1353%i sender full player name (16 character max) 1354%u full name of target player (16 character max) 1355%z 3 letter team id of target planet 1356%b 3 char name of sender nearest planet 1357%k kills of sender 1358%K kills of target player 1359 1360FULLY CAPITALIZED: 1361%O three character team name of sender 1362%L three character 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 id of sender nearest planet 1367 1368Ping stats: (may differ slightly from server '!' ping stats) 1369%v average ping stat round trip time 1370%V ping stat round trip standard deviation 1371%y percent total packet loss as calculated by server formula 1372 1373Miscellanous: 1374%m the last message you sent 1375%M the last message you sent in all caps 1376%w whydead number for RCM 1377%W whydead text for RCM only 1378%>nn Tab stop at position nn 1379 1380As a further extension to NEWMACRO, a macro may now be sent 1381to any of the following destinations: 1382 1383%i %I %c send message to self 1384%u %U %p send message to player nearest mouse 1385%t %z %Z send message to team of player nearest mouse 1386%g send message to nearest friendly player to my ship 1387%h send message to nearest enemy player to my ship 1388 1389with a syntax like 1390 1391#useful for INL... 1392mac.C.%i: CAPTAIN 1393mac.N.%i: NEWGALAXY 1394mac.S.%i: START 1395mac.T.%i: %Z 1396 1397mac.W.%t: SHUT UP, TWINKS!! 1398mac.I.%u: %u: det when you escort! 1399mac.O.%u: (%i) ogging 1400 1401What this does is allows you to send a macro to a player or 1402team specified by your mouse location instead of requiring 1403a 3rd character to be input. Also, it allows you to send 1404message to yourself without having to actual sit there and 1405figure out who you are (they tried and failed back in the '60s). 1406 1407 1408>>>>The above is available when NEWMACRO is defined; from here on, 1409>>>>SMARTMACRO must be defined *in addition*. 1410 1411Further, tests may be done within the macro system, the syntax 1412for these test is as follows. 1413%? introduces a test 1414= equivalence 1415> greater 1416< less 1417 1418Expressions are evaluated on a character by character basis until the 1419test is resolved. The text of the test is then replaced in the macro 1420by 1 or 0. 1421 1422Test are then fed to a syntax I call conditional text. The best way 1423to demonstrate how this works is example. 1424 14251%{included if true%!included if false%} 1426 1427This would print: 1428included if true 1429 14300%{included if true%!included if false%} 1431included if false 1432 1433Combining the whole package, a very robust macroing system is 1434quickly generated. One can easily design or mimic Distress calls, 1435including the variable NBT distress of the COW client and all the 1436hardcoded message macroing built into my own client but never released. 1437 1438Here are a few more samples to work from: 1439 1440mac.F.T: Help! Carrying %a!! 1441mac.f: Help! Carrying %a!! 1442mac.c.T: %p++ near %l 1443mac.b.T: %?%n>4%{bomb %l at %n%!bomb%} 1444mac.d.T: %E%{%!%W%{%!I'm fine. How are you? %}%}%E%{ETEMPED!!! %}%W%{WTEMPED!!! %}Carrying %?%a>0%{%a armies!%!NO armies.%} 1445mac.a.T: %E%{ETEMPED!!! %}%W%{WTEMPED!!! %}Carrying %?%a>0%{%a armies!%!NO armies.%} 1446mac.R.A: I'm a %?%S=SB%{star base!%!twink!%} 1447mac.K.A: KissMy%S 1448mac.t: thanks 1449mac.y: yes 1450mac.n: no 1451mac.B: bye, getting hungry/sleep/horny 1452mac.e.T: need escort going to %l%?%a>0%{, carrying %a armies!%} 1453mac.v.%t: %T%c PING stats: Average: %v ms, Stdv: %V ms, Loss: %y%% 1454 1455#My Favorite: 1456mac.m: %m 1457 1458*************************************************************** 1459* Symbolic names for macro destinations - Kurt Siegl 27/4/95 1460*************************************************************** 1461 1462You always wanted to send a macro directly to the captain, base, 1463or the second SC bomber? 1464 1465Symbolic macro keys will solve your problems. Here how it goes: 1466 1467In the .xtrekrc file you assign a key to a symbolic name: 1468 1469 key.[key].[dest]: [name of key] 1470 1471If the destination isn't specified the key defaults to team. 1472 1473Examples: 1474key.C: captain 1475key.B.t: base 1476key.m.A: me 1477 1478Then you can use that new key in your macros. 1479 1480Examples: 1481mac.o.C: Hi Captain let me suggest a base ogg? 1482mac.a.B: BASE: Free armies for me? 1483mac.t.m: TIME 1484 1485Finally during runtime you may change the actual destination 1486by sending a message: 1487 1488 set [name of key] [destination id] 1489 1490to the shell ("!") tools. Of corse this may be done with macros as well. 1491 1492Examples: 1493mac.^C.!: set captain %g 1494mac.^m.!: set me %c 1495 1496You can check the settings on the shell tools window "M". 1497 1498 1499*************************************************************** 1500Receiver Configurable Server Messages (RCM) 1501*************************************************************** 1502 1503Short package kill messages may be freely configured using 1504the macro syntax interpreter where 1505 1506* the killed person corresponds to the sender, 1507* the killer corresponds to the target player, 1508* involved planet (killed by, destroyed, taken) to the target planet, 1509* damage is int part of kills and shield fraction part. 1510* whydead goes with wtmp. 1511 1512All others are undefined. 1513 1514The format of the messages is: 1515 1516msg.[name of message]: [RCM macro] 1517 1518Available messages and their defaults are: 1519 1520msg.kill: ........ 1521msg.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%!%} 1522msg.planet:GOD->ALL %i (%S) (%T%c%?%a>0%{+%a armies%!%} killed by %l (%z) %?%w>0%{%W%!%} 1523msg.bomb:%N->%Z We are being attacked by %i (%T%c) who is %d%% damaged. 1524msg.destroy:%N->%Z %N destroyed by %i (%T%c) 1525msg.take:%N->%O %N taken by %i (%T%c) 1526msg.ghostbust:GOD->ALL %i (%S) (%T%c) was kill %k for the GhostBusters 1527 1528 1529BRMH formated kill windows may be optain by something like: 1530 1531msg.kill: %i (%S) (%T%c%?%a>0%{+%a armies%!%}) %>30 kill %?%d>0%{%k%!NO CREDIT)%} for %u (%r%p) %?%w>0%{%>65%W%!%} 1532 1533 1534*************************************************************** 15357.0 MetaServer Options 1536*************************************************************** 1537 1538The MetaServer and the MetaServerCache are provided to help you find a 1539netrek game to join. Both services provide a list of the popular 1540netrek servers. The MetaServer is neat because provides information 1541on the number of players at each site. The MetaServerCache is neat 1542because it is much faster if you can guess where a game will be. 1543 1544To access the MetaServer, use the command line switch "-m" or "-M". For 1545example "cow -m". To access the MetaServerCache, use the "-k" switch 1546instead. The command line options are as follows: 1547 1548 -m Default to UDP connection mode to metaserver if metaType not set 1549 -M Default to TCP connection mode to metaserver if metaType not set 1550 -k use TCP metaserver cache to display known servers 1551 1552If metaType (defined later) is set, -m or -M will connect to 1553metaserver based on what metaType is set to. 1554 15551) Where to find the MetaServer: 1556 1557You can use the options "metaport" and "metaserver" to point COW 1558to a new MetaServer. The defaults for these options are: 1559 1560 metaport: 3521 1561 metaserver: none 1562 1563The metaserver usually resides at metaserver.netrek.org port 3521 1564 1565In UDP mode multiple metaservers can be listed on the "metaserver" 1566option, comma separated. Example: 1567 1568 metaserver: metaserver.netrek.org, metaserver.eu.netrek.org 1569 1570Also in UDP mode, if a hostname listed has more than 1 IP address, the 1571client will attempt to connect to all IPs listed in that hostname. It 1572will then merge all responses into 1 list and display that list. 1573 1574In TCP mode, only 1 hostname may be listed. 1575 15762) How to create a list of known servers for the MetaServerCache: 1577 1578Before you can use the MetaServerCache, you must give COW a file in 1579which to cache the information from the MetaServer. Use the .xtrekrc 1580options "metaCache" and "metaUDPcache" to specify these files. The 1581files path will be relative to your home directory unless you start 1582the file name with a slash (/). "metaCache" defines the TCP cache, 1583and "metaUDPcache" defines the UDP cache. The TCP and UDP cache can 1584NOT be the same. They are incompatible formats. 1585 1586For example, to set the cache files to "~/.metaCache" and "~/.metaUDPcache" 1587use: 1588 1589 metaCache: .metaCache 1590 metaUDPcache: .metaUDPcache 1591 1592Unlike the MetaServer, the MetaServerCache will not show the number of 1593people playing at a server. If a server is contactable, it will be 1594shown as "Active". 1595 1596Warning: If "metaCache" or "metaUDPcache" are set, COW will also use a 1597second, temporary file. This file with have the name of the metaCache 1598file with the last character changed to either a 'T' or an 'R'. Eg, 1599".metaCache" becomes ".metaCachT" and "BEAST" becomes "BEASR". Ensure 1600that this temporary file does not overwrite something important. 1601 16023) How to set the connection type to the metaserver: 1603 1604The xtrekrc option "metaType" will determine how COW connects to the 1605metaserver. The default for this option is: 1606 1607 metaType: (default: whaterver the command line has, -m=1 -k=2 -M=3 1608 out of range values default to 3) 1609 1610where the values 1, 2, 3 are defined as: 1611 1612 How to connect to the Metaserver. Connect with UDP, cache, or TCP. 1613 1 == cache, then UDP 1614 2 == cache, then TCP 1615 3 == TCP, then cache 1616 1617UDP mode offers more options and more recent information as well as a 1618quicker startup and a refresh button, explained later. TCP mode is 1619the normal method and should be used when connections are unreliable 1620or if you're behind a firewall. 1621 16224) How much information will be shown: 1623 1624You can now control the amount of information that the MetaServer 1625displays for you by setting the "metaStatusLevel" flag. The default 1626is: 1627 1628 metaStatusLevel: 3 1629 1630 1631The status levels are coded as follows. 1632 16330 Servers which have players but not a wait queue. 16341 + Servers with a wait queue. 16352 + Servers with nobody playing. (see NOTE1). 16363 + Servers which have Timed Out for the MetaServer (see NOTE2). 16374 + Servers which the MetaServer has not been able to connect to. 1638 1639NOTE1: When using the MetaServerCache, "metaStatusLevel" values of 1640less than 3 are treated as the value 3. This minimum is enforced 1641because the cache does not attempt to show the number of people 1642playing at a site. 1643 1644NOTE2: If you are a long way from the MetaServer, you are advised to 1645ignore TimeOut errors. For example, the MetaServer in America may 1646have difficulty contacting to a server in Holland while the link from 1647England to Holland is very good. 1648 1649 16505) The Fallback 1651 1652If you attempt to contact the MetaServer, and the connection times 1653out, COW will try to show the MetaServerCache instead. 1654 1655Similarly, if you attempt to use the MetaServerCache, and your 1656"metaCache" file does not exist, COW will attempt to call 1657theMetaServer. 1658 1659In UDP mode, COW will show the UDP cache right away, and then update 1660the screen as responses come in. 1661 16626) The display 1663 1664COW will pop up a window with a list of game servers. The format of 1665the window is 1 server per line, starting with the server name, 1666followed by the server status, and the server type. In UDP mode it 1667will also show the age of the data on that server. In UDP mode, a 1668refresh button is also available. Hitting that line will re-query the 1669metaservers for more up to date data. Please don't abuse this and 1670rapidly click this button over and over as this may make the 1671metaserver admins ban you from connecting. 1672 1673To choose a server to play on, LEFT click on the server. To join as 1674an observer RIGHT click on the server. COW will then connect to the 1675game server. 1676 16777) Miscellaneous 1678 1679The option "metaverbose" will make UDP metaserver queries slightly 1680more verbose. When on, COW will display who its connecting to and who 1681responds. The default for this option is: 1682 1683 metaverbose: off 1684 1685 1686*************************************************************** 16878.0 Compiling: 1688*************************************************************** 1689 1690COW has the best and easiest to use installation procedure a client 1691ever had. 1692 1693make 1694 1695In case you will need some additional flags for your compiler or linker, 1696edit the "sample_key.def" file and change the corresponding parameters 1697at the bottom. 1698 1699You are done! watch that GPA hit the floor!! 1700 1701cow@netrek.org always likes to receive bug reports for 1702the client and if you have any suggestion for how to improve the 1703Makefiles or this description, please email us. Remember that 1704fixes are the best way to complain. Working patches should be sent to: 1705cow@netrek.org 1706 1707 1708*************************************************************** 17099.0 BEEPLITE.DOC 1710*************************************************************** 1711 1712Local weenies cheat. They talk to each other. Those of us who have 1713never met another netrek player are forced to relie heavily on the 1714message window. 1715 1716In order to even the playing field, the current feature was proposed. 1717This feature causes certain types of RCD messages to beep or even 1718highlite specific objects on the screen. This is done via a 1719macro-like interface which is highly configurable. Further, bitmaps 1720used to highlite can be substituted with your preferences. 1721 1722*** TURNING BEEPING AND HIGHLITING ON 1723 1724In order to turn message beeping and highliting on, you must include the 1725following in your .xtrekrc. 1726 1727UseLite: on 1728 1729The above leaves you with the feature on, but nothing is automatically 1730setup. If you want to configure it yourself, go to the "CONFIGURING 1731VIA XTREKRC" section. You can include a set of reasonable defaults, 1732instead of bothering to learn to configure it yourself by including 1733the lines. 1734 1735DefLite: on 1736 1737At any time, you can extend these simply by including some of the 1738configuration syntax in your .xtrekrc as described in the "CONFIGURING VIA 1739XTREKRC" section. 1740 1741WARNING: Use beep _sparingly_, people (including you) will get sick 1742very quickly of hearing your workstation beep every 5 seconds. 1743 1744 1745*** CONFIGURING VIA XTREKRC 1746 1747 1748Message beeps are configured as on and off. They are turned on if the 1749proper line is in your .xtrekrc. Otherwise they are left off. 1750 1751Message lites are configured in a way very similar to macros. 1752However, in addition to the original set of macro arguments, a new 1753class of arguments is introduced to handle the highliting. 1754 1755To configure message highliting, include something like the line below. 1756Here "name of distress" is the RCD message type. "macro" is the macro 1757style syntax specifying what is to be highlited. 1758 1759lite.[name of distress]: [macro] 1760 1761 1762Below are the configurations which are equivalent to the defaults 1763which are setup for you if using DefLite. These provide good 1764examples for how the system works. 1765 1766lite.taking: /c/l 1767lite.base_ogg: /g/m 1768lite.pickup: /h 1769lite.help: %?%S=SB%{/c%} 1770 1771The above does the following, 1772"taking" message highlites the planet and taker 1773"base_ogg" message highlites the person to sync and your ship 1774 (to REALLY get your attention) 1775"pickup" message highlites the enemy who picked up 1776"help" tests to see if the player sending the distress is a base, if so 1777 he is highlited 1778 1779You might like to change the last one to: 1780lite.help: %?%S=SB%{/c%}%?%a>0%{/c%} 1781 1782This will highlite bases who distress AND carriers who distress. 1783 1784Using TTS you may change the pickup macro to: 1785lite.pickup: /h/|%p++ @ %l| 1786 1787This sends a big ++ message on the tactical map in addition to the light. 1788 1789Note that all the MACRO parsing routines are run on these, and plain 1790text left over is ignored. Only the highlite argument matter. 1791 1792The following are the arguments for highliting. 1793 1794/c /i /I sender 1795/m /M _your_ ship 1796 1797/p target player 1798/g target friendly player 1799/h target enemy player 1800/P player nearest sender 1801/G friendly player nearest sender 1802/H enemy player nearest sender 1803/b planet nearest sender 1804/l target planet 1805 1806The following are the arguments for sounds. 1807 1808/0 Standard window beep (incoming message sound if sound is on) 1809/1 - /9 Play nt_message1 - nt_message9 sound. 1810 1811Tactical Text Solution for the Tactical Tunnel Syndrome (TTS): 1812 1813/| .. | displays Text in between via TTS. 1814 1815 1816Additional defaults: 1817 1818planetCycleTime: highlighting time for planets 1819playerCycleTime: highlighting time for players 1820 1821tts_color: color of TTS message (should be dark) 1822tts_font: Font (large prefered) 1823tts_max_len: Max length of a message 1824tts_time: Time a TTS message is displayed 1825tts_pos: y location of the TTS message 1826 1827 1828******************************************************************************* 1829End of COW.DOC 1830