This file contains the most recent changes to the COW client, with example .xtrkrc options to deal with them, and the clips from the documentation that explain them. If you're upgrading from an old version of COW, this file should make it a painless experience. ***************************************************************** 1) Change Log ***************************************************************** 1.03 pl0 - configurable destination macro keys [siegl] - added lots of tricks to XTREKRC.example [siegl] - invalid robots race char fix [siegl] - upgraded to autoconfig 2 [siegl] - add external rint() replacement function [siegl] Fixes by [Soutter] * Added a playerlist option "sortMyTeamFirst". * Added phaser shrink options "shrinkPhaserOnMiss" and "theirPhaserShrink". * map() now has its own module and is a little faster I think. * local() now has its own module and is a little faster I think. * Bug fixed: Lock symbol sometimes blurs on the galactic. * Bug fixed: Macros of the form "mac.: " don't work. * Bug fixed: Tractors sometimes drawn out of place if shrinkPhasers used. * Bug fixed: Local map not updated until you first move. * Bug fixed: Playerlist kills not updated when you first enter the game. * Bug fixed: Some buttons in the Short Packet window are not always drawn. * Bug fixed: When two ships overlap, the resulting color is sometimes black. * Bug fixed: Planets on the galactic are sometimes partially erased. * Bug fixed: You can write slightly longer messages than can be sent. * Bug improved: Stationary players can be hidden by planets on the galactic. * Bug fixed: When observing a player, the dashboard does not show torps, kills or max armies as it would in normal mode. * Bug Fixed: Holding down the `n' key for a few seconds will crash the client. * Bug fixed: Obviously dead torps/phasers/plasmas are sometimes drawn. * Bug fixed: The why-dead message is slightly different after window refresh. * Bug Fixed: Failed meta-server reads effect the metaCache file. * Bug Fixed: No positive feedback of selection from the meta-server window. ***************************************************************** 2) Cut and past changes to make COW work like it used to. ***************************************************************** 1.03 pl0 No changes visible exept all the bug fixes :) ***************************************************************** 3) Cut and past changes to turn on *all* new features. ***************************************************************** 1.03 pl0 # # Set symbolic names for macro # key.[key].[dest]: [name of key] # If the destination isn't specified the key default to team. # Set the actual destination by sending a message: # set [name of key] [destination id] # to the shell ("!") # key.C: captain # Set Captian to target player mac.^C.!: set captain %g # Macros to the captain. mac.o.C: Hi Captain let me suggest a base ogg? # key.B: base # Set Base to target player mac.^B.!: set base %g # Macros to the Base mac.a.B: BASE: Free armies for me? # key.m.A: me # set the me (m) key to myself mac.^m.!: set me %c # some Macro sent to myself mac.t.m: TIME theirPhaserShrink: 6 # # Range: 0-16 # # How much to shrink everybody else's phasers by. "phaserShrink" # still effects your own phasers. # shrinkPhaserOnMiss: on # # If on, a phaser is shrunk even if the phaser does not hit. # sortMyTeamFirst: on # # This option only applies if "sortPlayers" is on. # # With this option, the playerlist is order with your team at the top. # Otherwise, the playerlist has the enemy team(s) first. # **************************************************************** 4) New manual sections **************************************************************** *************************************************************** * Symbolic names for macro destinations - Kurt Siegl 27/4/95 *************************************************************** You always wanted to send a macro directly to the captain, base, or the second SC bomber? Symbolic macro keys will solve your problems. Here how it goes: In the .xtrekrc file you assign a key to a symbolic name: key.[key].[dest]: [name of key] If the destination isn't specified the key defaults to team. Examples: key.C: captain key.B.t: base key.m.A: me Then you can use that new key in your macros. Examples: mac.o.C: Hi Captain let me suggest a base ogg? mac.a.B: BASE: Free armies for me? mac.t.m: TIME Finally during runtime you may change the actual destination by sending a message: set [name of key] [destination id] to the shell ("!") tools. Of corse this may be done with macros as well. Examples: mac.^C.!: set captain %g mac.^m.!: set me %c You can check the settings on the shell tools window "M". *************************************************************** Connection Types: UDP and TCP explained *************************************************************** UDP provides an unreliable, packet-based protocol for sending data across an IP network. There are a variety of ways that a UDP packet can be lost or discarded, including a failure of the underlying communication mechanism. UDP implements a checksum over the data portion of the packet. If the checksum of a received packet is in error, the packet will be dropped with no indication given to the user. A queue of received packets is provided for each UDP socket. This queue has a limited capacity. Arriving datagrams which will not fit within its high-water capacity are silently discarded. Guest Rd 71 27 2% / 13% The stats above show a typically UDP connection. It has loss of packets but its round-trip times are fairly low. TCP provides a reliable, flow-controlled, in order transfer of data across an IP network. There is nothing fundamentally different about the way UDP and TCP packets travel over the wire. The only real difference is that TCP will keep sending the same packet over and over again until it gets an acknowledgement back. As a result, TCP connects are typically slower than UDP connections and usually require more bandwidth. TCP is slower because it guarantees that packets will arrive in order and so a lost packet can hold up later packets. Example: Guest Ff 405 669 0% / 0% ^^^ ^^^ ^^^^^^^^^ The above shows possibly the same connection with UDP turned off. There is no loss but the round trip times are much higher. NOTES: * COW always uses TCP for some things. For example, the text messages that you can send to other players are implement in TCP to guarentee that they always arrive. However, if a UDP connection is also available, it is used for the vast majority of communication. * COW will fall back to using a TCP only if it fails to open a UDP link. If you find that you have high lag and no loss, you probably should display the UDP control window (the default key is `+') and turn UDP back on by pressing the top button. * You are recommended to use a TCP connection if you are at the same site (within a few milliseconds lag) of the server you are playing on. The main reason for using UDP is to reduce your round trip times. * The option "tryUdp" can be used to set a preference for using UDP (tryUdp: on) or TCP only (tryUdp: off).