~netrek-developers/netrek-client-cow/trunk

« back to all changes in this revision

Viewing changes to _darcs/pristine/NEWMACRO.DOC

  • Committer: Collin Pruitt
  • Date: 2009-05-12 04:30:09 UTC
  • Revision ID: collinp111@gmail.com-20090512043009-3jsjojoyrk16oass
Initial upload - updated from http://james.tooraweenah.com/darcs/netrek-client-cow/ using darcs (hince the existnace of _darcs), fully patched.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Changes to MACRO:
 
2
 
 
3
9/10/93 - jn
 
4
 
 
5
By pressing a single character you can now invoke a macro.
 
6
Put a line in your defaults file like the following.
 
7
 
 
8
singleMacro:    EFTc
 
9
 
 
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.
 
13
 
 
14
 
 
15
-------------------------------------------------------------------------
 
16
9/2/93 - jmn, jn (no relation 8^)
 
17
 
 
18
Receiver configurable distress calls have been added to the client
 
19
and use a MACRO-like syntax.
 
20
 
 
21
In order to change the distress type a line such as the following
 
22
should be in your defaults file.
 
23
 
 
24
dist.T.taking:          (%i) Carrying %a to %l%?%n>-1%{ @ %n%}
 
25
 
 
26
This has the format 
 
27
dist.[key].[name of distress]:          [macro]
 
28
 
 
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.
 
32
 
 
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).
 
35
 
 
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!!%!%}
 
62
 
 
63
 
 
64
 
 
65
Here is some documentation written by jmn about how receiver
 
66
configurable distress calls work:
 
67
 
 
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.
 
75
 
 
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.'
 
81
Note:
 
82
Advanced RC_DISTRESS users should note that 'F' can be remapped easily in
 
83
at least 2 different ways. For example throught .xtrekrc
 
84
 
 
85
dist.(.carrying: %T%c: Carrying %a maggots.
 
86
singleMacro: (
 
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.
 
90
 
 
91
-----------
 
92
On a NEW server:
 
93
Case 1: All of them are using a new client.
 
94
F1 will ALWAYS see 'Carrying x armies.' No matter who sent it.
 
95
 
 
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.
 
101
 
 
102
---------------
 
103
On an old server:
 
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
===========================
 
111
 
 
112
 
 
113
-------------------------------------------------------------------------
 
114
8/16/93 - jn
 
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.                      
 
121
 
 
122
Multiline macros are no-longer allowed at all.
 
123
Primarily this is based on network traffic arguments.
 
124
 
 
125
-------------------------------------------------------------------------
 
126
NEWMACRO and SMARTMACRO documentation - Jeff Nelson 6/4/1993 
 
127
 
 
128
 
 
129
*WARNING*  *WARNING*  *WARNING*  *WARNING*  *WARNING*
 
130
 
 
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
 
135
 
 
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!
 
141
 
 
142
If you don't like this, complain to the server god!!  Make a difference!!
 
143
 
 
144
 
 
145
Compilers:
 
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
 
148
features.
 
149
 
 
150
 
 
151
Here is the idea:
 
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
 
156
macros).
 
157
 
 
158
A key is assigned in the defaults file (ie .xtrekrc, etc)
 
159
by a line like:
 
160
 
 
161
mac.F.T         Help!  Carrying %a!!
 
162
 
 
163
This defines a macro which will send a distress containing
 
164
the number of armies a player is carrying to his team.
 
165
 
 
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.
 
170
 
 
171
Here is another example:
 
172
 
 
173
mac.f           Help!  Carrying %a!!
 
174
 
 
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:
 
178
 
 
179
XfT             <- to your team
 
180
Xf1             <- to player 1
 
181
XfG             <- if you are desperate, send to God
 
182
XfA             <- if you are stupid, send to ALL
 
183
 
 
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:
 
187
 
 
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!
 
193
 
 
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:
 
200
 
 
201
mac.D.A:        D
 
202
mac.D.A:        O
 
203
mac.D.A:        O
 
204
mac.D.A:        S
 
205
mac.D.A:        H
 
206
 
 
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.
 
210
 
 
211
Also '?' can still not be used as a macro key.
 
212
The following definitions will work in a macro:
 
213
 
 
214
Standard:
 
215
 
 
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
 
240
 
 
241
FULLY CAPITALIZED:
 
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
 
247
 
 
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
 
252
 
 
253
Miscellanous:
 
254
%m      the last message you sent
 
255
%M      the last message you sent in all caps
 
256
 
 
257
As a further extension to NEWMACRO, a macro may now be sent
 
258
to any of the following destinations:
 
259
 
 
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
 
265
 
 
266
with a syntax like
 
267
 
 
268
#useful for INL...
 
269
mac.C.%i:       CAPTAIN
 
270
mac.N.%i:       NEWGALAXY
 
271
mac.S.%i:       START
 
272
mac.T.%i:       %Z
 
273
 
 
274
mac.W.%t:       SHUT UP, TWINKS!!
 
275
mac.I.%u:       %u: det when you escort!
 
276
mac.O.%u:       (%i) ogging
 
277
 
 
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).
 
283
 
 
284
 
 
285
>>>>The above is available when NEWMACRO is defined;  from here on,
 
286
>>>>SMARTMACRO must be defined *in addition*.
 
287
 
 
288
Further, tests may be done within the macro system, the syntax
 
289
for these test is as follows.
 
290
%?      introduces a test
 
291
=       equivalence
 
292
>       greater
 
293
<       less
 
294
 
 
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
 
297
by 1 or 0.
 
298
 
 
299
Test are then fed to a syntax I call conditional text.  The best way
 
300
to demonstrate how this works is example.
 
301
 
 
302
1%{included if true%!included if false%}
 
303
 
 
304
This would print:
 
305
included if true
 
306
 
 
307
0%{included if true%!included if false%}
 
308
included if false
 
309
 
 
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.
 
314
 
 
315
Here are a few more samples to work from:
 
316
 
 
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!%}
 
324
mac.K.A:        KissMy%S
 
325
mac.t:          thanks
 
326
mac.y:          yes
 
327
mac.n:          no
 
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%%
 
331
 
 
332
#My Favorite:
 
333
mac.m:          %m