Sophie

Sophie

distrib > Mageia > 5 > x86_64 > media > core-release > by-pkgid > b5ecfee6cedc9ad13f5340a23149a202 > files > 7

netrek-client-cow-3.3.1-5.mga5.x86_64.rpm

Changes to MACRO:

9/10/93 - jn

By pressing a single character you can now invoke a macro.
Put a line in your defaults file like the following.

singleMacro:	EFTc

This will make whatever macros normally assigned to keys
E, F, T, and c, be invoked immediately, without needing
a 'X' before them to enter macro mode.


-------------------------------------------------------------------------
9/2/93 - jmn, jn (no relation 8^)

Receiver configurable distress calls have been added to the client
and use a MACRO-like syntax.

In order to change the distress type a line such as the following
should be in your defaults file.

dist.T.taking:		(%i) Carrying %a to %l%?%n>-1%{ @ %n%}

This has the format 
dist.[key].[name of distress]:		[macro]

Arguments for the macro and SMARTMACRO syntax are exactly the same
as before.  Any argument can be used, but usually only those
in the groups "Standard" and "FULLY CAPITALIZED" apply.

Below is a table giving the name of each distress, the key it
is assigned to, and the default macro (at the time of this writing).

Key  Name	Default Distress Macro
T    taking	%T%c: (%i) Carrying %a to %l%?%n>-1%{ @ %n%}
o    ogg	%T%c: Help Ogg %p at xx
b    bomb	%T%c: %?%n>4%{bomb %l @ %n%!bomb%}
c    space_control	%T%c: Help Control at %l
1    help1	%T%c: Help me! %d%% dam, %s%% shd, %f%% fuel %a lawyers.
2    help2	%T%c: Help me! %d%% dam, %s%% shd, %f%% fuel %a lawyers.
3    help3	%T%c: Help me! %d%% dam, %s%% shd, %f%% fuel %a lawyers.
4    help4	%T%c: Help me! %d%% dam, %s%% shd, %f%% fuel %a lawyers.
e    escorting	%T%c: Escorting %p
O    ogging	%T%c: Ogging %p
B    bombing	%T%c: Bombing %l @ %n
C    controlling	%T%c: Controlling at %l
5    doing1	%T%c: @%b %d%% dam, %s%% shd, %f%% fuel %a lawyers.
6    doing2	%T%c: @%b %d%% dam, %s%% shd, %f%% fuel %a lawyers.
7    doing3	%T%c: @%b %d%% dam, %s%% shd, %f%% fuel %a lawyers.
8    doing4	%T%c: @%b %d%% dam, %s%% shd, %f%% fuel %a lawyers.
f    free_beer	%T%c: %p is free beer
n    no_gas	%T%c: %p no gas
h    crippled	%T%c: %p crippled
9    pickup	%T%c: %p++ @ %l
0    pop	%T%c: %l%?%n>-1%{ @ %n%}!
F    carrying	%T%c@%b: %d%% dam, %s%% shd, %f%% fuel %a lawyers.
@    other2	%T%c: @%b %d%% dam, %s%% shd, %f%% fuel %a lawyers.
#    other3	%T%c: @%b %d%% dam, %s%% shd, %f%% fuel %a lawyers.
E    help	%T%c@%b: %?%S=SB%{SB%!%} Help!  %d%% dam, %s%% shd, %f%% fuel  %E%{ETEMPED!!! %}%W%{WTEMPED!!!  %}%?%a>0%{%a armies!!%!%}



Here is some documentation written by jmn about how receiver
configurable distress calls work:

===========================
Well... here's how it works.... Each RC_DISTRESS compatible client can make
the distress call appear as whatever you like through their .xtrekrc...
If you DONT have a new enough client the server will do a default parsing
of the distress call and you will see it like that. Also if the server is
old then the distress call sent out by each client will appear the way
_the sender_ likes to have them displayed.

Let me summarize with an example:
F0 likes 'F' to say 'Carrying 4 maggots.'
F1 likes 'F' to say 'Carrying 4 armies.'
F2 likes 'F' to say 'Carrying 4 lawyers. 20% fuel'
The server default is 'Carrying 4.'
Note:
Advanced RC_DISTRESS users should note that 'F' can be remapped easily in
at least 2 different ways. For example throught .xtrekrc

dist.(.carrying: %T%c: Carrying %a maggots.
singleMacro: (
(this will make 'X(' or '(' be the same as 'F' used to be)
There will be more documentation on this coming later but basically the
syntax is the same as SMARTMACRO and NEWMACRO.

-----------
On a NEW server:
Case 1: All of them are using a new client.
F1 will ALWAYS see 'Carrying x armies.' No matter who sent it.

Case 2: Only F1 is using an old client.
F1 will see the _server_ set defaults for the carrying call from everybody.
Note that the calls from F0 and F2 will appear in the same format to him on
this server (but may appear in a different format on different servers).
F2 and F0 will see F1's client-defined distress calls.

---------------
On an old server:
F1 will see whatever the sender likes to see (in this case the sender sends
the pre-formatted text instead of the RC_DISTRESS short-hand).
So a 'F' from F2 will appear to everybody as:
'Carrying 4 lawyers. 20% fuel'
a 'F' from F0 will appear to everybody as:
'Carrying 4 maggots.'
===========================


-------------------------------------------------------------------------
8/16/93 - jn
New feature for default file...	
rejectMacro:  on	(on/off) default to off, if on, BRM automatically
			stops NEWMACROs from being sent when the server
			has turned NEWMACROs off.  That is any
			macro in your defaults file defined by a
			mac.*.*:   (TEXT)    line.			

Multiline macros are no-longer allowed at all.
Primarily this is based on network traffic arguments.

-------------------------------------------------------------------------
NEWMACRO and SMARTMACRO documentation - Jeff Nelson 6/4/1993 


*WARNING*  *WARNING*  *WARNING*  *WARNING*  *WARNING*

These features default OFF in the BRM client!  A server will turn them
on *for you* if they are allowed at that server.  The BRM client will
inform you by sending you a message line like:
BRM: Features enabled: NEWMACRO, SMARTMACRO

If you are not at a server that allows NEWMACRO, then all targetted
macros will be treated as normal NBT macros (no argument substitution,
%a will broadcast as %a).  If you are not on a server that allows
SMARTMACRO, then any conditional text or tests will *not* be evaluated,
instead they will be sent as the macro appears in your defaults file!

If you don't like this, complain to the server god!!  Make a difference!!


Compilers:
In order to use the below features, NBT and NEWMACRO must be defined.
In addition, SMARTMACRO must be defined to use the most advanced
features.


Here is the idea:
A player should be able to include in his/her macros whatever
reasonable information is available.  And configuring its display
in whatever way is desired.  In order to do this, the following
syntax is used (while remaining completely compatible with old NBT
macros).

A key is assigned in the defaults file (ie .xtrekrc, etc)
by a line like:

mac.F.T		Help!  Carrying %a!!

This defines a macro which will send a distress containing
the number of armies a player is carrying to his team.

Note, this is NOT printf syntax!  Any attempt to use formatting will
fail miserably.  Maybe in the future someone will want to develop
a means of formatting the variables used in macros, but the only
means I can think of are both bulky and ugly.

Here is another example:

mac.f		Help!  Carrying %a!!

Unlike the first, this macro will not send directly to the team,
instead it requires that you give a third keystroke specifying the
recipient.  For example, it could be invoked by:

XfT		<- to your team
Xf1		<- to player 1
XfG		<- if you are desperate, send to God
XfA		<- if you are stupid, send to ALL

Old macros will still work in addition to these, thus be sure there are
no conflicts.  These generally cause suprising results.  For example,
if this is in your macro file:

mac.E.T		Help!  I'm carrying!!
macro.E.A	You all suck!
mac.E		Help!  I'm a twink!!
mac.E.T		Help!  I'm carrying again!!
macro.E.A	You all suck even worse NOW!

The suprising results would be that pressing XE would broadcast the
first two messages, and then wait for the destination of the third.
It would be impossible to ever use the last two.  Unfortunately, multiline
macros also do not work if they require a destination.  There is no
good reason for this, but since multiline macros annoy the hell out
of me, I ain't fixing it.  You can still do something like:

mac.D.A:	D
mac.D.A:	O
mac.D.A:	O
mac.D.A:	S
mac.D.A:	H

This would properly broadcase 5 messages containing 1 character to all.
If you tried to specify the destination for these by using "mac.D:",
only 'D' would be sent.

Also '?' can still not be used as a macro key.
The following definitions will work in a macro:

Standard:

%a      armies carried by sender
%d      sender damage percentage
%s      sender shield percentage
%f      sender fuel percentage
%w      sender wtemp percentage
%e      sender etemp percentage
%t      team id character of target planet
%T      team id character of sender team
%c      sender id character
%n      armies on target planet
%E      1 if etemped, 0 if not
%W      1 if wtemped, 0 if not
%S      sender two character ship type
%p      id character of target player
%g	id char of target friendly player
%h	id char of target enemy player
%P      id character of player nearest sender
%G	id char of friendly player nearest sender
%H	id char of enemy player nearest sender
%l      three character name of target planet
%i	sender full player name (16 character max)
%u	full name of target player (16 character max)
%z	3 letter team id of target planet
%b      sender nearest planet

FULLY CAPITALIZED:
%L	three character name of target planet
%I	sender full player name (16 character max)
%U	full name of target player (16 character max)
%Z	3 letter team id of target planet
%B      sender nearest planet

Ping stats: (may differ slightly from server '!' ping stats)
%v    average ping stat round trip time 
%V    ping stat round trip standard deviation
%y    percent total packet loss as calculated by server formula

Miscellanous:
%m      the last message you sent
%M	the last message you sent in all caps

As a further extension to NEWMACRO, a macro may now be sent
to any of the following destinations:

%i %I %c	send message to self
%u %U %p	send message to player nearest mouse
%t %z %Z	send message to team of player nearest mouse
%g		send message to nearest friendly player to my ship
%h		send message to nearest enemy player to my ship

with a syntax like

#useful for INL...
mac.C.%i:	CAPTAIN
mac.N.%i:	NEWGALAXY
mac.S.%i:	START
mac.T.%i:	%Z

mac.W.%t:	SHUT UP, TWINKS!!
mac.I.%u:	%u: det when you escort!
mac.O.%u:	(%i) ogging

What this does is allows you to send a macro to a player or
team specified by your mouse location instead of requiring
a 3rd character to be input.  Also, it allows you to send
message to yourself without having to actual sit there and
figure out who you are (they tried and failed back in the '60s).


>>>>The above is available when NEWMACRO is defined;  from here on,
>>>>SMARTMACRO must be defined *in addition*.

Further, tests may be done within the macro system, the syntax
for these test is as follows.
%?	introduces a test
=	equivalence
>	greater
<	less

Expressions are evaluated on a character by character basis until the
test is resolved.  The text of the test is then replaced in the macro
by 1 or 0.

Test are then fed to a syntax I call conditional text.  The best way
to demonstrate how this works is example.

1%{included if true%!included if false%}

This would print:
included if true

0%{included if true%!included if false%}
included if false

Combining the whole package, a very robust macroing system is
quickly generated.  One can easily design or mimic Distress calls,
including the variable NBT distress of the BRM client and all the
hardcoded message macroing built into my own client but never released.

Here are a few more samples to work from:

mac.F.T:	Help!  Carrying %a!!
mac.f:		Help!  Carrying %a!!
mac.c.T:	%p++ near %l
mac.b.T:	%?%n>4%{bomb %l at %n%!bomb%}
mac.d.T:	%E%{%!%W%{%!I'm fine.  How are you?  %}%}%E%{ETEMPED!!!  %}%W%{WTEMPED!!!  %}Carrying %?%a>0%{%a armies!%!NO armies.%}
mac.a.T:        %E%{ETEMPED!!!  %}%W%{WTEMPED!!!  %}Carrying %?%a>0%{%a armies!%!NO armies.%}
mac.R.A:	I'm a %?%S=SB%{star base!%!twink!%}
mac.K.A:	KissMy%S
mac.t:		thanks
mac.y:		yes
mac.n:		no
mac.B:		bye, getting hungry/sleep/horny
mac.e.T:	need escort going to %l%?%a>0%{, carrying %a armies!%}
mac.v.%t:       %T%c PING stats: Average: %v ms, Stdv: %V ms, Loss: %y%%

#My Favorite:
mac.m:		%m