5
By pressing a single character you can now invoke a macro.
6
Put a line in your defaults file like the following.
10
This will make whatever macros normally assigned to keys
11
E, F, T, and c, be invoked immediately, without needing
12
a 'X' before them to enter macro mode.
15
-------------------------------------------------------------------------
16
9/2/93 - jmn, jn (no relation 8^)
18
Receiver configurable distress calls have been added to the client
19
and use a MACRO-like syntax.
21
In order to change the distress type a line such as the following
22
should be in your defaults file.
24
dist.T.taking: (%i) Carrying %a to %l%?%n>-1%{ @ %n%}
27
dist.[key].[name of distress]: [macro]
29
Arguments for the macro and SMARTMACRO syntax are exactly the same
30
as before. Any argument can be used, but usually only those
31
in the groups "Standard" and "FULLY CAPITALIZED" apply.
33
Below is a table giving the name of each distress, the key it
34
is assigned to, and the default macro (at the time of this writing).
36
Key Name Default Distress Macro
37
T taking %T%c: (%i) Carrying %a to %l%?%n>-1%{ @ %n%}
38
o ogg %T%c: Help Ogg %p at xx
39
b bomb %T%c: %?%n>4%{bomb %l @ %n%!bomb%}
40
c space_control %T%c: Help Control at %l
41
1 help1 %T%c: Help me! %d%% dam, %s%% shd, %f%% fuel %a lawyers.
42
2 help2 %T%c: Help me! %d%% dam, %s%% shd, %f%% fuel %a lawyers.
43
3 help3 %T%c: Help me! %d%% dam, %s%% shd, %f%% fuel %a lawyers.
44
4 help4 %T%c: Help me! %d%% dam, %s%% shd, %f%% fuel %a lawyers.
45
e escorting %T%c: Escorting %p
46
O ogging %T%c: Ogging %p
47
B bombing %T%c: Bombing %l @ %n
48
C controlling %T%c: Controlling at %l
49
5 doing1 %T%c: @%b %d%% dam, %s%% shd, %f%% fuel %a lawyers.
50
6 doing2 %T%c: @%b %d%% dam, %s%% shd, %f%% fuel %a lawyers.
51
7 doing3 %T%c: @%b %d%% dam, %s%% shd, %f%% fuel %a lawyers.
52
8 doing4 %T%c: @%b %d%% dam, %s%% shd, %f%% fuel %a lawyers.
53
f free_beer %T%c: %p is free beer
54
n no_gas %T%c: %p no gas
55
h crippled %T%c: %p crippled
56
9 pickup %T%c: %p++ @ %l
57
0 pop %T%c: %l%?%n>-1%{ @ %n%}!
58
F carrying %T%c@%b: %d%% dam, %s%% shd, %f%% fuel %a lawyers.
59
@ other2 %T%c: @%b %d%% dam, %s%% shd, %f%% fuel %a lawyers.
60
# other3 %T%c: @%b %d%% dam, %s%% shd, %f%% fuel %a lawyers.
61
E help %T%c@%b: %?%S=SB%{SB%!%} Help! %d%% dam, %s%% shd, %f%% fuel %E%{ETEMPED!!! %}%W%{WTEMPED!!! %}%?%a>0%{%a armies!!%!%}
65
Here is some documentation written by jmn about how receiver
66
configurable distress calls work:
68
===========================
69
Well... here's how it works.... Each RC_DISTRESS compatible client can make
70
the distress call appear as whatever you like through their .xtrekrc...
71
If you DONT have a new enough client the server will do a default parsing
72
of the distress call and you will see it like that. Also if the server is
73
old then the distress call sent out by each client will appear the way
74
_the sender_ likes to have them displayed.
76
Let me summarize with an example:
77
F0 likes 'F' to say 'Carrying 4 maggots.'
78
F1 likes 'F' to say 'Carrying 4 armies.'
79
F2 likes 'F' to say 'Carrying 4 lawyers. 20% fuel'
80
The server default is 'Carrying 4.'
82
Advanced RC_DISTRESS users should note that 'F' can be remapped easily in
83
at least 2 different ways. For example throught .xtrekrc
85
dist.(.carrying: %T%c: Carrying %a maggots.
87
(this will make 'X(' or '(' be the same as 'F' used to be)
88
There will be more documentation on this coming later but basically the
89
syntax is the same as SMARTMACRO and NEWMACRO.
93
Case 1: All of them are using a new client.
94
F1 will ALWAYS see 'Carrying x armies.' No matter who sent it.
96
Case 2: Only F1 is using an old client.
97
F1 will see the _server_ set defaults for the carrying call from everybody.
98
Note that the calls from F0 and F2 will appear in the same format to him on
99
this server (but may appear in a different format on different servers).
100
F2 and F0 will see F1's client-defined distress calls.
104
F1 will see whatever the sender likes to see (in this case the sender sends
105
the pre-formatted text instead of the RC_DISTRESS short-hand).
106
So a 'F' from F2 will appear to everybody as:
107
'Carrying 4 lawyers. 20% fuel'
108
a 'F' from F0 will appear to everybody as:
109
'Carrying 4 maggots.'
110
===========================
113
-------------------------------------------------------------------------
115
New feature for default file...
116
rejectMacro: on (on/off) default to off, if on, BRM automatically
117
stops NEWMACROs from being sent when the server
118
has turned NEWMACROs off. That is any
119
macro in your defaults file defined by a
120
mac.*.*: (TEXT) line.
122
Multiline macros are no-longer allowed at all.
123
Primarily this is based on network traffic arguments.
125
-------------------------------------------------------------------------
126
NEWMACRO and SMARTMACRO documentation - Jeff Nelson 6/4/1993
129
*WARNING* *WARNING* *WARNING* *WARNING* *WARNING*
131
These features default OFF in the BRM client! A server will turn them
132
on *for you* if they are allowed at that server. The BRM client will
133
inform you by sending you a message line like:
134
BRM: Features enabled: NEWMACRO, SMARTMACRO
136
If you are not at a server that allows NEWMACRO, then all targetted
137
macros will be treated as normal NBT macros (no argument substitution,
138
%a will broadcast as %a). If you are not on a server that allows
139
SMARTMACRO, then any conditional text or tests will *not* be evaluated,
140
instead they will be sent as the macro appears in your defaults file!
142
If you don't like this, complain to the server god!! Make a difference!!
146
In order to use the below features, NBT and NEWMACRO must be defined.
147
In addition, SMARTMACRO must be defined to use the most advanced
152
A player should be able to include in his/her macros whatever
153
reasonable information is available. And configuring its display
154
in whatever way is desired. In order to do this, the following
155
syntax is used (while remaining completely compatible with old NBT
158
A key is assigned in the defaults file (ie .xtrekrc, etc)
161
mac.F.T Help! Carrying %a!!
163
This defines a macro which will send a distress containing
164
the number of armies a player is carrying to his team.
166
Note, this is NOT printf syntax! Any attempt to use formatting will
167
fail miserably. Maybe in the future someone will want to develop
168
a means of formatting the variables used in macros, but the only
169
means I can think of are both bulky and ugly.
171
Here is another example:
173
mac.f Help! Carrying %a!!
175
Unlike the first, this macro will not send directly to the team,
176
instead it requires that you give a third keystroke specifying the
177
recipient. For example, it could be invoked by:
181
XfG <- if you are desperate, send to God
182
XfA <- if you are stupid, send to ALL
184
Old macros will still work in addition to these, thus be sure there are
185
no conflicts. These generally cause suprising results. For example,
186
if this is in your macro file:
188
mac.E.T Help! I'm carrying!!
189
macro.E.A You all suck!
190
mac.E Help! I'm a twink!!
191
mac.E.T Help! I'm carrying again!!
192
macro.E.A You all suck even worse NOW!
194
The suprising results would be that pressing XE would broadcast the
195
first two messages, and then wait for the destination of the third.
196
It would be impossible to ever use the last two. Unfortunately, multiline
197
macros also do not work if they require a destination. There is no
198
good reason for this, but since multiline macros annoy the hell out
199
of me, I ain't fixing it. You can still do something like:
207
This would properly broadcase 5 messages containing 1 character to all.
208
If you tried to specify the destination for these by using "mac.D:",
209
only 'D' would be sent.
211
Also '?' can still not be used as a macro key.
212
The following definitions will work in a macro:
216
%a armies carried by sender
217
%d sender damage percentage
218
%s sender shield percentage
219
%f sender fuel percentage
220
%w sender wtemp percentage
221
%e sender etemp percentage
222
%t team id character of target planet
223
%T team id character of sender team
224
%c sender id character
225
%n armies on target planet
226
%E 1 if etemped, 0 if not
227
%W 1 if wtemped, 0 if not
228
%S sender two character ship type
229
%p id character of target player
230
%g id char of target friendly player
231
%h id char of target enemy player
232
%P id character of player nearest sender
233
%G id char of friendly player nearest sender
234
%H id char of enemy player nearest sender
235
%l three character name of target planet
236
%i sender full player name (16 character max)
237
%u full name of target player (16 character max)
238
%z 3 letter team id of target planet
239
%b sender nearest planet
242
%L three character name of target planet
243
%I sender full player name (16 character max)
244
%U full name of target player (16 character max)
245
%Z 3 letter team id of target planet
246
%B sender nearest planet
248
Ping stats: (may differ slightly from server '!' ping stats)
249
%v average ping stat round trip time
250
%V ping stat round trip standard deviation
251
%y percent total packet loss as calculated by server formula
254
%m the last message you sent
255
%M the last message you sent in all caps
257
As a further extension to NEWMACRO, a macro may now be sent
258
to any of the following destinations:
260
%i %I %c send message to self
261
%u %U %p send message to player nearest mouse
262
%t %z %Z send message to team of player nearest mouse
263
%g send message to nearest friendly player to my ship
264
%h send message to nearest enemy player to my ship
274
mac.W.%t: SHUT UP, TWINKS!!
275
mac.I.%u: %u: det when you escort!
276
mac.O.%u: (%i) ogging
278
What this does is allows you to send a macro to a player or
279
team specified by your mouse location instead of requiring
280
a 3rd character to be input. Also, it allows you to send
281
message to yourself without having to actual sit there and
282
figure out who you are (they tried and failed back in the '60s).
285
>>>>The above is available when NEWMACRO is defined; from here on,
286
>>>>SMARTMACRO must be defined *in addition*.
288
Further, tests may be done within the macro system, the syntax
289
for these test is as follows.
295
Expressions are evaluated on a character by character basis until the
296
test is resolved. The text of the test is then replaced in the macro
299
Test are then fed to a syntax I call conditional text. The best way
300
to demonstrate how this works is example.
302
1%{included if true%!included if false%}
307
0%{included if true%!included if false%}
310
Combining the whole package, a very robust macroing system is
311
quickly generated. One can easily design or mimic Distress calls,
312
including the variable NBT distress of the BRM client and all the
313
hardcoded message macroing built into my own client but never released.
315
Here are a few more samples to work from:
317
mac.F.T: Help! Carrying %a!!
318
mac.f: Help! Carrying %a!!
319
mac.c.T: %p++ near %l
320
mac.b.T: %?%n>4%{bomb %l at %n%!bomb%}
321
mac.d.T: %E%{%!%W%{%!I'm fine. How are you? %}%}%E%{ETEMPED!!! %}%W%{WTEMPED!!! %}Carrying %?%a>0%{%a armies!%!NO armies.%}
322
mac.a.T: %E%{ETEMPED!!! %}%W%{WTEMPED!!! %}Carrying %?%a>0%{%a armies!%!NO armies.%}
323
mac.R.A: I'm a %?%S=SB%{star base!%!twink!%}
328
mac.B: bye, getting hungry/sleep/horny
329
mac.e.T: need escort going to %l%?%a>0%{, carrying %a armies!%}
330
mac.v.%t: %T%c PING stats: Average: %v ms, Stdv: %V ms, Loss: %y%%