1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333
|
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
|