| 1 |
& COMMANDS |
|---|
| 2 |
Help is available for the following MUSH commands: |
|---|
| 3 |
|
|---|
| 4 |
ahelp anews brief DOING drop |
|---|
| 5 |
examine enter events follow get |
|---|
| 6 |
give go index kill leave |
|---|
| 7 |
LOGOUT look move news page |
|---|
| 8 |
pose QUIT read rules say |
|---|
| 9 |
score slay take teach think |
|---|
| 10 |
unfollow use whisper WHO with |
|---|
| 11 |
" : ; + ] |
|---|
| 12 |
|
|---|
| 13 |
In addition to these, there are several types of '@' commands. @-commands |
|---|
| 14 |
are usually commands which have permanent effects on the MUSH (such as |
|---|
| 15 |
creating a new object). Here are the help topics on @-commands: |
|---|
| 16 |
|
|---|
| 17 |
@-ATTRIBUTES @-BUILDING @-GENERAL @-WIZARD |
|---|
| 18 |
|
|---|
| 19 |
Commands that can only be used by connected players are listed in |
|---|
| 20 |
HELP SOCKET COMMANDS. |
|---|
| 21 |
& @-ATTRIBUTES |
|---|
| 22 |
These '@' commands set standard message/action sets on objects. Each comes |
|---|
| 23 |
in 3 versions: @<whatever>, @o<whatever>, and @a<whatever>. Only the |
|---|
| 24 |
@<whatever> version is listed below, but help is available for each: |
|---|
| 25 |
|
|---|
| 26 |
@death @describe @drop @efail @enter |
|---|
| 27 |
@failure @follow @give @idescribe @leave |
|---|
| 28 |
@lfail @move @payment @receive @success |
|---|
| 29 |
@tport @ufail @unfollow @use @zenter |
|---|
| 30 |
@zleave |
|---|
| 31 |
|
|---|
| 32 |
These '@' command set other standard attributes on objects that don't |
|---|
| 33 |
follow the pattern above: |
|---|
| 34 |
|
|---|
| 35 |
@aahear @aclone @aconnect @adisconnect @amhear |
|---|
| 36 |
@away @charges @cost @conformat @descformat |
|---|
| 37 |
@ealias @exitformat @filter @forwardlist @haven |
|---|
| 38 |
@idescformat @idle @infilter @inprefix @lalias |
|---|
| 39 |
@listen @nameformat @oxenter @oxleave @oxmove |
|---|
| 40 |
@oxtport @prefix @runout @sex @startup |
|---|
| 41 |
|
|---|
| 42 |
See also: ATTRIBUTES, NON-STANDARD ATTRIBUTES |
|---|
| 43 |
& @-BUILDING |
|---|
| 44 |
These '@' commands are building-related (they create or modify objects): |
|---|
| 45 |
|
|---|
| 46 |
@atrlock @atrchown @chown @chzone @clone |
|---|
| 47 |
@cpattr @create @destroy @dig @elock |
|---|
| 48 |
@eunlock @firstexit @link @lock @mvattr |
|---|
| 49 |
@name @nuke @open @parent @recycle |
|---|
| 50 |
@set @undestroy @ulock @unlink @unlock |
|---|
| 51 |
@uunlock @wipe |
|---|
| 52 |
|
|---|
| 53 |
& @-GENERAL |
|---|
| 54 |
These '@' commands are general utility and programming commands: |
|---|
| 55 |
|
|---|
| 56 |
@@ @alias @break @channel @chat |
|---|
| 57 |
@cemit @command @config @decompile @doing |
|---|
| 58 |
@dolist @drain @edit @emit @entrances |
|---|
| 59 |
@find @force @function @gedit @grep |
|---|
| 60 |
@halt @lemit @listmotd @mail @map |
|---|
| 61 |
@notify @nsemit @nslemit @nsoemit @nspemit |
|---|
| 62 |
@nsprompt @nsremit @nszemit @oemit @password |
|---|
| 63 |
@pemit @prompt @ps @remit @restart |
|---|
| 64 |
@scan @search @select @stats @sweep |
|---|
| 65 |
@switch @teleport @trigger @verb @version |
|---|
| 66 |
@wait @whereis @zemit |
|---|
| 67 |
|
|---|
| 68 |
& @-WIZARD |
|---|
| 69 |
These '@' commands are only usable by wizards or privileged players: |
|---|
| 70 |
|
|---|
| 71 |
@allhalt @allquota @boot @chownall @chzoneall |
|---|
| 72 |
@comment @dbck @disable @dump @enable |
|---|
| 73 |
@flag @hide @hook @kick @log |
|---|
| 74 |
@motd @newpassword @pcreate @poll @poor |
|---|
| 75 |
@power @purge @quota @readcache @rejectmotd |
|---|
| 76 |
@shutdown @sitelock @sql @squota @uptime |
|---|
| 77 |
@wall @wizmotd @wizwall cd ch |
|---|
| 78 |
cv |
|---|
| 79 |
|
|---|
| 80 |
& ] |
|---|
| 81 |
The "]" command-prefix instructs the MUSH that the rest of the command |
|---|
| 82 |
input that follows should not be evaluated. Here's an example: |
|---|
| 83 |
|
|---|
| 84 |
> say [add(1,1)] |
|---|
| 85 |
You say, "2" |
|---|
| 86 |
|
|---|
| 87 |
> say \[add(1,1)\] |
|---|
| 88 |
You say, "[add(1,1)]" |
|---|
| 89 |
|
|---|
| 90 |
> ]say [add(1,1)] |
|---|
| 91 |
You say, "[add(1,1)]" |
|---|
| 92 |
|
|---|
| 93 |
> ]"[add(1,1)] |
|---|
| 94 |
You say, "[add(1,1)]" |
|---|
| 95 |
|
|---|
| 96 |
This can be used to pass unevaluated MUSHcode to softcoded commands |
|---|
| 97 |
without having to escape every special character, or to help objects |
|---|
| 98 |
set attributes to contain unevaluated code. |
|---|
| 99 |
|
|---|
| 100 |
& @@ |
|---|
| 101 |
|
|---|
| 102 |
The "@@" command is a special kind of command; it signals the start |
|---|
| 103 |
of a comment. The comment lasts until a semi-colon is found, just |
|---|
| 104 |
like other MUSH programming statements terminate with a semi-colon. |
|---|
| 105 |
It cannot be put into the middle of a statement, like |
|---|
| 106 |
@va me = $testing:@emit Test. @@ Just a test @@; @vb me=Testing. |
|---|
| 107 |
That will result in the object emitting "Test. @@ Just a test. @@" |
|---|
| 108 |
The correct usage is to make the comment a statement by itself: |
|---|
| 109 |
@va me = $testing:@emit Test.; @@ Just a test @@; @vb me=Testing. |
|---|
| 110 |
|
|---|
| 111 |
It is not necessary to use a closing '@@', but doing so makes the |
|---|
| 112 |
comment stand out much more clearly. A space between the first |
|---|
| 113 |
'@@' and the word following it is necessary. |
|---|
| 114 |
& @aahear |
|---|
| 115 |
@aahear <object> = <action list> |
|---|
| 116 |
|
|---|
| 117 |
An aahear on an object is activated whenever the object's listen pattern |
|---|
| 118 |
is matched by anything done/said by either anything else in the room OR |
|---|
| 119 |
the object itself. In contrast, an ahear on an object cannot be activated |
|---|
| 120 |
by anything the object itself does. |
|---|
| 121 |
|
|---|
| 122 |
See also: @listen, @ahear, @amhear, LISTENING |
|---|
| 123 |
& @aclone |
|---|
| 124 |
@aclone <object> = <action list> |
|---|
| 125 |
|
|---|
| 126 |
Sets the actions to be taken whenever <object> is @cloned. This command |
|---|
| 127 |
can be useful for notifying the owner of a vending machine or parent |
|---|
| 128 |
object when someone uses the machine. |
|---|
| 129 |
|
|---|
| 130 |
Please note that there is no @oclone, and that @clone is always a |
|---|
| 131 |
command, not an attribute. |
|---|
| 132 |
|
|---|
| 133 |
See also: @clone, @create, ACTION LISTS |
|---|
| 134 |
& @aconnect |
|---|
| 135 |
@aconnect <object> = <action list> |
|---|
| 136 |
|
|---|
| 137 |
Sets the actions to be taken by a player right after connecting to |
|---|
| 138 |
the game. |
|---|
| 139 |
|
|---|
| 140 |
Example: @aconnect me = :stretches luxuriously, as if waking from a nap. |
|---|
| 141 |
|
|---|
| 142 |
Note that long and spammy @aconnect messages, whether in your room or |
|---|
| 143 |
on a channel, are frequently found annoying by other players. |
|---|
| 144 |
|
|---|
| 145 |
The player's location, and zone object/objects in the zone parent |
|---|
| 146 |
room of the location, as well as objects in the master room, are |
|---|
| 147 |
also checked for an @aconnect. If one is found, it will be executed |
|---|
| 148 |
when a player connects in that location or zone (or, in the case of |
|---|
| 149 |
the master room, anywhere). This is only done if the room_connects |
|---|
| 150 |
config option is enabled. |
|---|
| 151 |
|
|---|
| 152 |
One descriptor variable is passed to @aconnect: |
|---|
| 153 |
%1 = number of player connections (1 if this is an initial connect) |
|---|
| 154 |
|
|---|
| 155 |
See also: @adisconnect, ACTION LISTS |
|---|
| 156 |
& @adeath |
|---|
| 157 |
@adeath <object> = <action list> |
|---|
| 158 |
|
|---|
| 159 |
Sets the actions to be taken after <object> is killed. |
|---|
| 160 |
|
|---|
| 161 |
See also: @odeath, @death, kill, BEING KILLED, ACTION LISTS |
|---|
| 162 |
& @adescribe |
|---|
| 163 |
@adescribe <object> = <action list> |
|---|
| 164 |
|
|---|
| 165 |
Sets the actions to be taken when <object> is looked at. |
|---|
| 166 |
A common use of this command is: |
|---|
| 167 |
|
|---|
| 168 |
@adesc me=think %N just looked at you. |
|---|
| 169 |
|
|---|
| 170 |
which will inform you whenever someone looks at you. %N will be |
|---|
| 171 |
replaced by the name of the person who looked. While it is possible to |
|---|
| 172 |
set a message to be broadcasted to everyone in the area when someone |
|---|
| 173 |
looks at you, this is strongly discouraged, as many people find it |
|---|
| 174 |
annoying. |
|---|
| 175 |
|
|---|
| 176 |
See also: @describe, @aidescribe, look, SUBSTITUTION, ACTION LISTS |
|---|
| 177 |
& @adestroy |
|---|
| 178 |
@adestroy <object> = <action list> |
|---|
| 179 |
|
|---|
| 180 |
Sets the actions to be taken by the object when it is destroyed |
|---|
| 181 |
(via @rec or @nuke). This can only be set by a Wizard. |
|---|
| 182 |
If @adestroy doesn't work, try &adestroy. :) |
|---|
| 183 |
& @adisconnect |
|---|
| 184 |
@adisconnect <object> = <action list> |
|---|
| 185 |
|
|---|
| 186 |
Sets the actions to be taken by a player right after disconnecting |
|---|
| 187 |
from the game. |
|---|
| 188 |
|
|---|
| 189 |
Example: @adisconnect me = home |
|---|
| 190 |
|
|---|
| 191 |
The player's location, and zone object/objects in the zone parent |
|---|
| 192 |
room of the location, as well as objects in the master room, are |
|---|
| 193 |
checked for an @adisconnect. If one is found, it will be executed |
|---|
| 194 |
when a player disconnects in that location or zone (or, in the case of |
|---|
| 195 |
the master room, anywhere). This is only done if the room_connects |
|---|
| 196 |
config option is enabled. |
|---|
| 197 |
|
|---|
| 198 |
Several descriptor variables are passed to @adisconnect: |
|---|
| 199 |
%1 = number of remaining connections (0 if a full disconnect) |
|---|
| 200 |
%2 = bytes received by the disconnecting descriptor |
|---|
| 201 |
%3 = bytes sent by the disconnecting descriptor |
|---|
| 202 |
%4 = commands issued by the disconnecting descriptor |
|---|
| 203 |
|
|---|
| 204 |
See also: @aconnect, ACTION LISTS, recv(), sent(), cmds() |
|---|
| 205 |
& @adrop |
|---|
| 206 |
@adrop <object> = <action list> |
|---|
| 207 |
|
|---|
| 208 |
Sets the actions to be taken when <object> is dropped. |
|---|
| 209 |
If <object> is an exit, sets an action to be done after a player |
|---|
| 210 |
has passed through the exit. |
|---|
| 211 |
|
|---|
| 212 |
See also: @odrop, @drop, drop, ACTION LISTS |
|---|
| 213 |
& @aefail |
|---|
| 214 |
@aefail <object> = <action list> |
|---|
| 215 |
|
|---|
| 216 |
Sets the actions to be taken by the object when someone fails to enter |
|---|
| 217 |
it. |
|---|
| 218 |
|
|---|
| 219 |
See also: enter, FAILURE, ACTION LISTS |
|---|
| 220 |
& @aenter |
|---|
| 221 |
@aenter <object> = <action list> |
|---|
| 222 |
|
|---|
| 223 |
Sets the actions taken by the object whenever someone enters it. |
|---|
| 224 |
|
|---|
| 225 |
See also: @enter, @oenter, enter, ACTION LISTS |
|---|
| 226 |
& @aufail |
|---|
| 227 |
& @oufail |
|---|
| 228 |
& @ufail |
|---|
| 229 |
@ufail <object> = <message> |
|---|
| 230 |
@oufail <object> = <message> |
|---|
| 231 |
@aufail <object> = <action> |
|---|
| 232 |
|
|---|
| 233 |
Sets message shown to a player who fails to use an object via |
|---|
| 234 |
the 'use' command (@ufail), message shown to others in the room |
|---|
| 235 |
(@oufail), and action for the object to take (@aufail). |
|---|
| 236 |
|
|---|
| 237 |
Note that these attributes are @ufail, NOT @ufailure, for |
|---|
| 238 |
TinyMUSH compatibility. |
|---|
| 239 |
|
|---|
| 240 |
& @afailure |
|---|
| 241 |
@afailure <object> = <action list> |
|---|
| 242 |
|
|---|
| 243 |
Sets the actions to be taken on failure to pass the @lock on an |
|---|
| 244 |
object. For players and things, this means failure to pick them up |
|---|
| 245 |
with get/take. For exits, this means failure to go through an exit. |
|---|
| 246 |
|
|---|
| 247 |
May be abbreviated @afail. |
|---|
| 248 |
|
|---|
| 249 |
See also: @fail, @ofail, get, EXITS, @lock, ACTION LISTS |
|---|
| 250 |
& @afollow |
|---|
| 251 |
@afollow <object> = <action list> |
|---|
| 252 |
|
|---|
| 253 |
Sets the actions to be taken after someone or something begins |
|---|
| 254 |
following the object. |
|---|
| 255 |
|
|---|
| 256 |
See also: follow, unfollow, followers(), @follow, @ofollow, ACTION LISTS |
|---|
| 257 |
& @aunfollow |
|---|
| 258 |
@aunfollow <object> = <action list> |
|---|
| 259 |
|
|---|
| 260 |
Sets the actions to be taken after someone or something stops |
|---|
| 261 |
following the object. |
|---|
| 262 |
|
|---|
| 263 |
See also: follow, unfollow, followers(), @unfollow, @ounfollow, ACTION LISTS |
|---|
| 264 |
& @ahear |
|---|
| 265 |
@ahear <object> = <actions> |
|---|
| 266 |
|
|---|
| 267 |
Sets the actions to be taken after the object's @listen is matched. |
|---|
| 268 |
Note that @ahear ignores any messages that the object itself creates, |
|---|
| 269 |
so it can only be triggered by other things. If you want the object to |
|---|
| 270 |
be able to trigger itself, try using @amhear or @aahear. |
|---|
| 271 |
|
|---|
| 272 |
See also: @aahear, @amhear, @listen, ACTION LISTS, LISTENING |
|---|
| 273 |
& @aleave |
|---|
| 274 |
@aleave <object> = <action list> |
|---|
| 275 |
|
|---|
| 276 |
Sets the actions to be taken whenever someone leaves the object. |
|---|
| 277 |
|
|---|
| 278 |
See also: leave, @leave, @oleave, ACTION LISTS |
|---|
| 279 |
& @alfail |
|---|
| 280 |
@alfail <object> = <action list> |
|---|
| 281 |
|
|---|
| 282 |
Sets the actions to be taken whenever someone tries to leave the |
|---|
| 283 |
object and fails (because the object is set NO_LEAVE or because |
|---|
| 284 |
the person fails the @lock/leave on the object). |
|---|
| 285 |
|
|---|
| 286 |
See also: leave, @lfail, @olfail, ACTION LISTS |
|---|
| 287 |
& @alias |
|---|
| 288 |
@alias <player>=<name>;<alias>[;<alias2>[;<alias3>[...]]] |
|---|
| 289 |
|
|---|
| 290 |
@alias is a special attribute that lists a player's names; players |
|---|
| 291 |
can be paged by their aliases, matched with *<alias>, and all other game |
|---|
| 292 |
functions which look up player names will also accept an alias. |
|---|
| 293 |
The attribute is visible to all players. |
|---|
| 294 |
|
|---|
| 295 |
A list of aliases, separated by semicolons, may be provided. |
|---|
| 296 |
Players should include their usual @name in the alias list, because |
|---|
| 297 |
the @name command allows setting name to any alias in the list. |
|---|
| 298 |
The number of aliases allowed in the list may be limited by |
|---|
| 299 |
the game's administrators through the 'max_aliases' @config parameter. |
|---|
| 300 |
|
|---|
| 301 |
If the page_aliases config directive is on, the first alias in the |
|---|
| 302 |
list is returned along with the player's name. |
|---|
| 303 |
|
|---|
| 304 |
Each alias cannot be longer than the limit allowed for player names, |
|---|
| 305 |
cannot contain spaces, and must be unique -- no other player may |
|---|
| 306 |
have the same alias or name as any other player's alias or name. |
|---|
| 307 |
|
|---|
| 308 |
@alias has no effect on non-players. |
|---|
| 309 |
|
|---|
| 310 |
See also: @name, alias(), fullalias() |
|---|
| 311 |
& @allhalt |
|---|
| 312 |
@allhalt |
|---|
| 313 |
|
|---|
| 314 |
This command halts all objects in the game in an effort to free up |
|---|
| 315 |
the queue. Wizard-only command. |
|---|
| 316 |
|
|---|
| 317 |
This command is equivalent to "@halt/all". |
|---|
| 318 |
|
|---|
| 319 |
See also: QUEUE, @ps |
|---|
| 320 |
& @allquota |
|---|
| 321 |
@allquota[/quiet] [<limit>] |
|---|
| 322 |
|
|---|
| 323 |
This is a God level command that is only available if the quota |
|---|
| 324 |
system is being used. It displays the current max and owned objects |
|---|
| 325 |
of every player (unless the /quiet switch is used) and resets their |
|---|
| 326 |
quota left to the new limit minus the current number owned if a limit |
|---|
| 327 |
is given. |
|---|
| 328 |
& @amhear |
|---|
| 329 |
@amhear <object> = <action list> |
|---|
| 330 |
|
|---|
| 331 |
Sets the actions to be taken whenever the @listen on the object is |
|---|
| 332 |
matched by something that the object itself does. It will not react |
|---|
| 333 |
if anyone else in the area does anything that matches the @listen |
|---|
| 334 |
pattern. If you want other objects to be able to set off the action |
|---|
| 335 |
list, try using @ahear or @aahear. |
|---|
| 336 |
|
|---|
| 337 |
See also: @listen, @ahear, @aahear, LISTENING, ACTION LISTS |
|---|
| 338 |
& @amove |
|---|
| 339 |
@amove <object> = <action list> |
|---|
| 340 |
|
|---|
| 341 |
This is the action to be taken whenever an object moves. |
|---|
| 342 |
|
|---|
| 343 |
See also: @move, @omove, @oxmove, ACTION LISTS, go |
|---|
| 344 |
& @apayment |
|---|
| 345 |
@apayment <object> = <action list> |
|---|
| 346 |
|
|---|
| 347 |
Sets the actions to be taken after a player gives an object some |
|---|
| 348 |
amount of pennies. The amount paid is passed in as %0. |
|---|
| 349 |
|
|---|
| 350 |
See also: give, @pay, @opay, @cost, MONEY, ACTION LISTS |
|---|
| 351 |
& @atport |
|---|
| 352 |
@atport <object>=<action list> |
|---|
| 353 |
|
|---|
| 354 |
Sets the list of actions that <object> will perform when it is |
|---|
| 355 |
teleported. These actions are done after <object> has arrived |
|---|
| 356 |
in its new location. |
|---|
| 357 |
|
|---|
| 358 |
%0 is the object causing the teleport, and %1 is the old location |
|---|
| 359 |
of the teleported object. |
|---|
| 360 |
|
|---|
| 361 |
See also: @tel, ACTION LISTS, @tport, @otport, @oxtport |
|---|
| 362 |
& @atrchown |
|---|
| 363 |
@atrchown <object>/<attribute> = <new_owner>. |
|---|
| 364 |
Like @chown except it changes the control of an attribute from one person |
|---|
| 365 |
to another. You may only @atrchown attributes that you can normally set, |
|---|
| 366 |
and unless you're a wizard, you can only @atrchown attributes to yourself. |
|---|
| 367 |
|
|---|
| 368 |
See also: @atrlock, ATTRIBUTES, NON-STANDARD ATTRIBUTES |
|---|
| 369 |
& @atrlock |
|---|
| 370 |
@atrlock <object>/<attribute> = [on|off]. |
|---|
| 371 |
|
|---|
| 372 |
If 'on' is specified, it 'locks' the specified attribute on the object. |
|---|
| 373 |
If the attribute is owned by someone other than you, you will gain |
|---|
| 374 |
ownership of it. If an attribute is unlocked, then anyone who controls |
|---|
| 375 |
the object may change it. If it is locked, only wizards and the attribute's |
|---|
| 376 |
owner (Assuming the owner controls the object) can change it. Wizards may |
|---|
| 377 |
lock/unlock anyones attributes. If you specify 'off' it will unlock a |
|---|
| 378 |
locked attribute. Specifying neither will return the current value of the |
|---|
| 379 |
lock. You can only lock or unlock attributes you can normally set. |
|---|
| 380 |
|
|---|
| 381 |
See also: @atrchown, ATTRIBUTES, NON-STANDARD ATTRIBUTES |
|---|
| 382 |
& @asuccess |
|---|
| 383 |
@asuccess <object> = <action list> |
|---|
| 384 |
|
|---|
| 385 |
Sets the actions to be taken when the @lock of an object is passed. |
|---|
| 386 |
For things/players, this means picking them up. For exits, this means |
|---|
| 387 |
going through them. |
|---|
| 388 |
|
|---|
| 389 |
See also: @success, @osuccess, get, @lock, EXITS, ACTION LISTS |
|---|
| 390 |
& @attribute |
|---|
| 391 |
@attribute <attrib> |
|---|
| 392 |
@attribute/access[/retroactive] <attrib> = <flag list or "none"> |
|---|
| 393 |
@attribute/delete <attrib> |
|---|
| 394 |
@attribute/rename <attrib> = <new name> |
|---|
| 395 |
|
|---|
| 396 |
@attribute is a wizard-only command which modify's the MUSH's |
|---|
| 397 |
table of standard attributes (use @list/attribs to list them). |
|---|
| 398 |
A standard attribute is one that can be set with @<attrib> instead |
|---|
| 399 |
of &<attrib>, and which, when set, has a predefined set of |
|---|
| 400 |
initial permissions. |
|---|
| 401 |
|
|---|
| 402 |
*** Unlike TinyMUSH, changes to the PennMUSH attribute table |
|---|
| 403 |
*** are not saved across shutdowns. Use these commands from |
|---|
| 404 |
*** God's @startup to insure they are run at each startup. |
|---|
| 405 |
|
|---|
| 406 |
Used without switches, @attribute shows info about a standard attrib. |
|---|
| 407 |
|
|---|
| 408 |
@attribute/access adds a new standard attribute into the table, |
|---|
| 409 |
associating it with the given space-separated list of full flag names. |
|---|
| 410 |
See 'help attribute flags' for possible flags. A flag list of "none" removes |
|---|
| 411 |
all flag associations. |
|---|
| 412 |
If the /retroactive switch is added, the flags are assigned to every copy |
|---|
| 413 |
of the attribute that already exists in the database. |
|---|
| 414 |
|
|---|
| 415 |
@attribute/delete removes a standard attribute from the table. |
|---|
| 416 |
@attribute/rename renames a standard attribute. |
|---|
| 417 |
& @ause |
|---|
| 418 |
@ause <object> = <action list> |
|---|
| 419 |
|
|---|
| 420 |
Sets the actions to be taken when an object is successfully "used". |
|---|
| 421 |
|
|---|
| 422 |
See also: use, @use, ACTION LISTS, @charges, @runout |
|---|
| 423 |
& @away |
|---|
| 424 |
@away <player> = <message> |
|---|
| 425 |
|
|---|
| 426 |
This message is sent to a player who tries to page you when you are |
|---|
| 427 |
not connected, if it evaluates to something non-null. |
|---|
| 428 |
|
|---|
| 429 |
Example: @away me=I'm not here, please send me @mail instead. |
|---|
| 430 |
|
|---|
| 431 |
& @boot |
|---|
| 432 |
@boot[/silent] <player> |
|---|
| 433 |
@boot/port[/silent] <descriptor number> |
|---|
| 434 |
@boot/me |
|---|
| 435 |
|
|---|
| 436 |
Disconnects the player from the game, with a standard message unless |
|---|
| 437 |
the /silent switch is given. |
|---|
| 438 |
|
|---|
| 439 |
The /port switch takes a descriptor number instead (the "Port" number |
|---|
| 440 |
in WHO for wizards). |
|---|
| 441 |
|
|---|
| 442 |
The /me switch boots any single descriptor for the same player which |
|---|
| 443 |
has been idle for at least 1 minute. Players can use this command |
|---|
| 444 |
to terminate hung connections. |
|---|
| 445 |
|
|---|
| 446 |
Only admin and those with the "boot" power can @boot other players. |
|---|
| 447 |
|
|---|
| 448 |
& @BREAK |
|---|
| 449 |
& @ASSERT |
|---|
| 450 |
@break <boolean>[=<command list>] |
|---|
| 451 |
@assert <boolean>[=<command list>] |
|---|
| 452 |
|
|---|
| 453 |
@break stops the execution of further commands in the current action |
|---|
| 454 |
list if <boolean> is a true value. It doesn't affect new queue entries |
|---|
| 455 |
made by previous commands in the action list. Very useful to people who |
|---|
| 456 |
don't like @switch. If <command> is given, it is executed instead of |
|---|
| 457 |
the rest of the commands in the current queue. |
|---|
| 458 |
|
|---|
| 459 |
@assert does the inverse: it stops execution if <boolean> evaluates to false. |
|---|
| 460 |
|
|---|
| 461 |
Examples: |
|---|
| 462 |
> @va obj=$testme *:@pemit %#=You try a test; |
|---|
| 463 |
@break [lt(%0,10)] = @pemit %#=But you're too low!; |
|---|
| 464 |
@pemit %#=And you succeed! |
|---|
| 465 |
> testme 0 |
|---|
| 466 |
You try a test |
|---|
| 467 |
But you're too low! |
|---|
| 468 |
> testme 10 |
|---|
| 469 |
You try a test |
|---|
| 470 |
And you succeed! |
|---|
| 471 |
|
|---|
| 472 |
> @force me={@switch 1=1, think Third; think First; @break 1; think Second} |
|---|
| 473 |
First |
|---|
| 474 |
Third |
|---|
| 475 |
(The @switch is run, which queues 'think Third', think First is |
|---|
| 476 |
run, displaying 'First', command execution is broken (so we never |
|---|
| 477 |
think Second), and then the queued 'think Third' is run, displaying |
|---|
| 478 |
Third. If you figured that out, you have a very good understanding |
|---|
| 479 |
of the PennMUSH queue. :) |
|---|
| 480 |
|
|---|
| 481 |
See also: ACTION LISTS, QUEUE, BOOLEAN VALUES |
|---|
| 482 |
& @charges |
|---|
| 483 |
@charges <object> = <integer> |
|---|
| 484 |
|
|---|
| 485 |
Allows you to limit the number of times an object can be "used". |
|---|
| 486 |
The "charges" attribute will be decreased by one each time the |
|---|
| 487 |
object's @ause is triggered, and once it reaches zero, the object |
|---|
| 488 |
cannot be used anymore. |
|---|
| 489 |
|
|---|
| 490 |
See also: use, @runout, @ause |
|---|
| 491 |
& @chown |
|---|
| 492 |
@chown[/preserve] <object>=<player> |
|---|
| 493 |
|
|---|
| 494 |
Changes the ownership of <object> to <player>. You can chown things, |
|---|
| 495 |
rooms, or exits. To chown a thing, you have to be carrying it. |
|---|
| 496 |
If you do not own an object, you can only chown it if it is CHOWN_OK. |
|---|
| 497 |
If you're not a Wizard, you can only @chown objects to yourself or |
|---|
| 498 |
to a Zone Master whose zone-lock you pass. |
|---|
| 499 |
|
|---|
| 500 |
Normally, @chown'ing an object clears privileged flags and powers, |
|---|
| 501 |
and sets the object halt. Wizards may use @chown/preserve to chown |
|---|
| 502 |
an object, preserving these privileges and not setting the object |
|---|
| 503 |
halt. Doing this to an active object with queued commands is not |
|---|
| 504 |
recommended, and may have strange and insecure effects. |
|---|
| 505 |
|
|---|
| 506 |
Examples: |
|---|
| 507 |
(for a room) @chown here=me |
|---|
| 508 |
(for an object) @chown box=Soundwave |
|---|
| 509 |
|
|---|
| 510 |
Players can't be @chowned; they always own themselves. |
|---|
| 511 |
|
|---|
| 512 |
See also: CHOWN_OK, Zone Masters |
|---|
| 513 |
& @chownall |
|---|
| 514 |
@chownall[/preserve] <player> [= <target_player>] |
|---|
| 515 |
|
|---|
| 516 |
Transfers ownership of all the objects that the player owns to |
|---|
| 517 |
<target_player>. If the target player is not included, then all |
|---|
| 518 |
the objects are chowned to the person executing the command. |
|---|
| 519 |
This is a wizard-only command. The /preserve switch keeps privileged |
|---|
| 520 |
flags and powers instead of clearing them, and doesn't halt them. |
|---|
| 521 |
|
|---|
| 522 |
See also: @chown |
|---|
| 523 |
& @chzone |
|---|
| 524 |
@chzone <object>=<zone master> |
|---|
| 525 |
@chzone <object>=none |
|---|
| 526 |
|
|---|
| 527 |
The first form of this command changes the ZONE of <object> to |
|---|
| 528 |
<zone master>. This puts the object on that zone and may (if the |
|---|
| 529 |
zone_control_zmp_only option is off) allow anyone who passes the |
|---|
| 530 |
zone-lock of the zone master to make changes to the object. Any |
|---|
| 531 |
kind of object can be @chzoned, and any kind of object can be used |
|---|
| 532 |
as the zone master. |
|---|
| 533 |
|
|---|
| 534 |
The second form of this command resets the zone of <object> to *NOTHING*. |
|---|
| 535 |
Anyone can reset the zone of an object s/he owns. |
|---|
| 536 |
|
|---|
| 537 |
If a player is @chzoned, anything s/he makes afterwards will start out |
|---|
| 538 |
with that Zone, but none of the objects that s/he presently owns will |
|---|
| 539 |
have their Zone changed. Players can @chzone themselves to a master if |
|---|
| 540 |
they own it. Otherwise, only wizards can @chzone players. |
|---|
| 541 |
|
|---|
| 542 |
(continued in help @chzone2) |
|---|
| 543 |
& @chzone2 |
|---|
| 544 |
|
|---|
| 545 |
To see the Zone of an object, you can use either 'brief' or 'examine' |
|---|
| 546 |
to examine it. The Zone is listed on the same line as the Owner of |
|---|
| 547 |
the object. |
|---|
| 548 |
|
|---|
| 549 |
Players can @chzone objects they own if they own the zone master or |
|---|
| 550 |
if they pass its @lock/chzone. Wizards can @chzone objects to any |
|---|
| 551 |
zone master as long as the object has a zone-lock. |
|---|
| 552 |
|
|---|
| 553 |
Whenever an object besides a player is @chzoned to a zone master, the |
|---|
| 554 |
WIZARD, ROYALTY, and TRUST flags will be reset, as will all @power's |
|---|
| 555 |
(for security purposes). For similar reasons, it is strongly recommended |
|---|
| 556 |
that you do not @chzone admin- or wizard-owned objects to any zone |
|---|
| 557 |
that less privileged players have access to. |
|---|
| 558 |
|
|---|
| 559 |
See also: ZONES, @chzoneall |
|---|
| 560 |
& @chzoneall |
|---|
| 561 |
@chzoneall <player>=<zone master> |
|---|
| 562 |
|
|---|
| 563 |
Changes the zone of all objects owned by <player> to <zone master>. |
|---|
| 564 |
If <zone object> is "none", the zone is reset to NOTHING. Only wizards |
|---|
| 565 |
may use this command. |
|---|
| 566 |
|
|---|
| 567 |
See also: @chzone, ZONES |
|---|
| 568 |
& @clone |
|---|
| 569 |
@clone <thing, room, or exit>[=<new name>] |
|---|
| 570 |
@clone/preserve <thing, room, or exit>[=<new name>] |
|---|
| 571 |
|
|---|
| 572 |
For things, creates an exact duplicate of it and puts it in the |
|---|
| 573 |
current room. For exits, it creates an exact duplicate of that |
|---|
| 574 |
exit, except the clone's source is the current room rather than |
|---|
| 575 |
whatever the original exit's source was. For rooms, creates an |
|---|
| 576 |
exact duplicate of the room, without contents or exits. The name |
|---|
| 577 |
of the duplicate object can be provided; it defaults to the same |
|---|
| 578 |
as the name of the original object. |
|---|
| 579 |
|
|---|
| 580 |
The thing to be cloned must be controlled by the @cloning player. |
|---|
| 581 |
The clone will be owned by the @cloning player. |
|---|
| 582 |
|
|---|
| 583 |
If creation times are enabled, a clone will have a different creation |
|---|
| 584 |
time than the object it was cloned from, but will have the same |
|---|
| 585 |
modification time, to make tracking revisions of code easier. |
|---|
| 586 |
|
|---|
| 587 |
A wizard may use @clone/preserve, which has the effect of preserving |
|---|
| 588 |
all the bits, powers, and warnings of the original object. |
|---|
| 589 |
|
|---|
| 590 |
To clone a room and all its exits, use code like: |
|---|
| 591 |
@tel [setq(0,%l)][clone(here)]; @dol lexits(%q0)=@clone ## |
|---|
| 592 |
|
|---|
| 593 |
See also: @create |
|---|
| 594 |
& @command |
|---|
| 595 |
@command <command> |
|---|
| 596 |
@command/<switch> <command> |
|---|
| 597 |
@command/alias <command>=<new command name> |
|---|
| 598 |
|
|---|
| 599 |
@command provides information about and controls the availability |
|---|
| 600 |
of other commands. |
|---|
| 601 |
|
|---|
| 602 |
With no switches, @command shows all sorts of interesting information |
|---|
| 603 |
about how a command is parsed. |
|---|
| 604 |
|
|---|
| 605 |
Switches include: |
|---|
| 606 |
/disable : Disable the <command> |
|---|
| 607 |
/off : Synonym for /disable |
|---|
| 608 |
/enable : Enable the <command> |
|---|
| 609 |
/on : Synonym for /enable |
|---|
| 610 |
/alias : Creates an alias for a command. |
|---|
| 611 |
/quiet : Don't make noisy output when doing one of the above |
|---|
| 612 |
/add : Creates a useless command. @hook/override it. |
|---|
| 613 |
/delete : Deletes a command added by @command/add, or aliases. |
|---|
| 614 |
|
|---|
| 615 |
See HELP RESTRICT for more. |
|---|
| 616 |
(continued in help @command2) |
|---|
| 617 |
& @command2 |
|---|
| 618 |
@command/add and @command/delete are powerful tools in that they let |
|---|
| 619 |
you write $-commands which may or may not parse their arguments, and |
|---|
| 620 |
have the precedence of a built-in command, being checked before |
|---|
| 621 |
$-commands on objects. Only God may use these switches. |
|---|
| 622 |
|
|---|
| 623 |
Additional switches are used in @command that only apply when used |
|---|
| 624 |
with @command/add. These switches are: |
|---|
| 625 |
|
|---|
| 626 |
/noparse : The command does not evaluate arguments passed to it. |
|---|
| 627 |
/eqsplit : The parser parses leftside and rightside around = |
|---|
| 628 |
/lsargs : Comma-separated arguments on the left side are parsed. |
|---|
| 629 |
/rsargs : In conjunction with eqsplit, the right-side arguments, |
|---|
| 630 |
comma-separated, are parsed individually and passed |
|---|
| 631 |
to the $-command in @hook/override. |
|---|
| 632 |
|
|---|
| 633 |
Any command added without the /noparse switch is provided with a |
|---|
| 634 |
/noeval switch itself, so if you @command/add foo, then foo's arguments |
|---|
| 635 |
are parsed by default, but you can call foo/noeval. Note: the $-command |
|---|
| 636 |
needs to make allowances for the /noeval switch in it's matching. |
|---|
| 637 |
|
|---|
| 638 |
Commands added with @command/add, like other standard commands, |
|---|
| 639 |
are never case-sensitive (regardless of CASE flag on the attribute). |
|---|
| 640 |
|
|---|
| 641 |
(examples in help @command3) |
|---|
| 642 |
& @command3 |
|---|
| 643 |
Examples: |
|---|
| 644 |
|
|---|
| 645 |
> @create Dining Machine |
|---|
| 646 |
> &eat dining=$eat *:@remit %L=%N takes a bite of %0. |
|---|
| 647 |
> @command/add/noeval eat |
|---|
| 648 |
> @hook/override eat=dining machine,eat |
|---|
| 649 |
> eat meat loaf |
|---|
| 650 |
Walker takes a bite of meat loaf. |
|---|
| 651 |
> eat randword(apple tomato pear) |
|---|
| 652 |
Walker takes a bite of randword(apple tomato pear) |
|---|
| 653 |
|
|---|
| 654 |
> &drink dining=$^drink(/noeval)? (.*)$:@remit %L=%N drinks %1. |
|---|
| 655 |
> @set dining/drink=regexp |
|---|
| 656 |
> @command/add drink |
|---|
| 657 |
> @hook/override drink=dining machine,drink |
|---|
| 658 |
> drink reverse(tea) |
|---|
| 659 |
Walker drinks aet. |
|---|
| 660 |
> drink/noeval reverse(tea) |
|---|
| 661 |
Walker drinks reverse(tea). |
|---|
| 662 |
|
|---|
| 663 |
& @comment |
|---|
| 664 |
@comment <object> = <comment> |
|---|
| 665 |
|
|---|
| 666 |
This is a wizard-only command which sets a COMMENT attribute on |
|---|
| 667 |
<object>. The comment can only be seen by other wizards and royalty. |
|---|
| 668 |
& @config |
|---|
| 669 |
@config/functions |
|---|
| 670 |
@config/commands |
|---|
| 671 |
@config/attribs |
|---|
| 672 |
@config/flags |
|---|
| 673 |
@config/list[/lowercase] [<option|option-type>] |
|---|
| 674 |
@config/set option=value |
|---|
| 675 |
|
|---|
| 676 |
This command lists the MUSH configuration parameters, indicating what |
|---|
| 677 |
special things are enabled, and the cost of certain commands. |
|---|
| 678 |
Switches include: |
|---|
| 679 |
|
|---|
| 680 |
/functions -- Lists all functions. |
|---|
| 681 |
/commands -- Lists all commands. |
|---|
| 682 |
/flags -- Lists all flags. |
|---|
| 683 |
/attribs -- Lists all standard attributes. |
|---|
| 684 |
/list -- Lists the value of a particular <option> or <option-type> |
|---|
| 685 |
if given one; lists the option-types if not. |
|---|
| 686 |
/set -- Wizard only, changes parameters from the mush. See |
|---|
| 687 |
help @config parameters for available ones. |
|---|
| 688 |
& @conformat |
|---|
| 689 |
@conformat <object> [=<format>] |
|---|
| 690 |
|
|---|
| 691 |
Replaces the usual "Contents:" or "Carrying:" format when an object |
|---|
| 692 |
is looked at, by a player-specified contents format. This is evaluated |
|---|
| 693 |
as if it were a description or other similar message on the room. |
|---|
| 694 |
The objects that the looker would normally be able to see is passed |
|---|
| 695 |
as a dbref list in %0; all contents can be acquired through 'lcon(me)'. |
|---|
| 696 |
A |-delimited list of all the unparsed object names is passed |
|---|
| 697 |
in %1 (so iter(%1,itext(0),|,%r) produces the standard list) |
|---|
| 698 |
|
|---|
| 699 |
One could change the format to 'Contents: Object1 Object2 Object3' |
|---|
| 700 |
through '@conformat here = Contents: [iter(%0,name(##))]', |
|---|
| 701 |
for example. More complex things are, obviously, possible. |
|---|
| 702 |
|
|---|
| 703 |
See also: @exitformat, @nameformat, @descformat |
|---|
| 704 |
& @invformat |
|---|
| 705 |
@invformat <object> [=<format>] |
|---|
| 706 |
|
|---|
| 707 |
Replaces the usual "You are carrying:" format when an object uses the |
|---|
| 708 |
"inventory" command, by a player-specified format. This is evaluated |
|---|
| 709 |
as if it were a description or other similar message on the object. |
|---|
| 710 |
The objects carried are passed as a dbref list in %0. |
|---|
| 711 |
A |-delimited list of all the unparsed object names is passed |
|---|
| 712 |
in %1 (so iter(%1,itext(0),|,%r) produces the standard list) |
|---|
| 713 |
|
|---|
| 714 |
One could change the format to 'You've got: Object1 Object2 Object3' |
|---|
| 715 |
through '@invformat me = You've got: [iter(%0,name(##))]', |
|---|
| 716 |
for example. More complex things are, obviously, possible. |
|---|
| 717 |
|
|---|
| 718 |
See also: inventory |
|---|
| 719 |
& @descformat |
|---|
| 720 |
@descformat <object> [=<text>] |
|---|
| 721 |
|
|---|
| 722 |
Replaces the usual description of the object when it is looked at |
|---|
| 723 |
by player-specified text. The evaluated DESCRIBE attribute is |
|---|
| 724 |
passed as %0; the unevaluated DESCRIBE can be acquired through |
|---|
| 725 |
v(DESCRIBE). |
|---|
| 726 |
|
|---|
| 727 |
This is useful for things like room parents that enforce a consistent |
|---|
| 728 |
"look" for each room's @desc. |
|---|
| 729 |
|
|---|
| 730 |
See also: @exitformat, @nameformat, @conformat, @idescformat |
|---|
| 731 |
& @idescformat |
|---|
| 732 |
@idescformat <object> [=<text>] |
|---|
| 733 |
|
|---|
| 734 |
Replaces the usual description of the object when it is looked at from |
|---|
| 735 |
within by player-specified text. The evaluated IDESCRIBE attribute |
|---|
| 736 |
is passed as %0; the unevaluated IDESCRIBE can be acquired through |
|---|
| 737 |
v(IDESCRIBE). |
|---|
| 738 |
|
|---|
| 739 |
This is useful for things like object parents that enforce a consistent |
|---|
| 740 |
"look" for each object's @idesc. |
|---|
| 741 |
|
|---|
| 742 |
See also: @exitformat, @nameformat, @conformat, @descformat |
|---|
| 743 |
& @nameaccent |
|---|
| 744 |
@nameaccent <object> [=<accent template>] |
|---|
| 745 |
|
|---|
| 746 |
When this attribute holds an accent template that has the same |
|---|
| 747 |
length as the object's name, it is used to change the object's name |
|---|
| 748 |
in some situations (How it shows up in speech, look, and a few other |
|---|
| 749 |
commands). This allows for accented names without having to use the |
|---|
| 750 |
accented characters directly in a name, which can make it harder for |
|---|
| 751 |
people to type. |
|---|
| 752 |
|
|---|
| 753 |
If a container has both a @nameaccent and a @nameformat, the |
|---|
| 754 |
@nameformat is used. |
|---|
| 755 |
|
|---|
| 756 |
See also: accent(), @nameformat |
|---|
| 757 |
& @nameformat |
|---|
| 758 |
@nameformat <object> [=<format>] |
|---|
| 759 |
|
|---|
| 760 |
Customizes the usual display of the object's name to people who |
|---|
| 761 |
are inside it and 'look'. It is evaluated as if it were a description |
|---|
| 762 |
or similar message on the room. The room's dbref is passed as %0, |
|---|
| 763 |
and the default-formatted name as %1. |
|---|
| 764 |
|
|---|
| 765 |
@nameformat is not used when people outside the object look at it. |
|---|
| 766 |
|
|---|
| 767 |
Example: Show the room's zone after its name. |
|---|
| 768 |
@nameformat here = %1 [if(isdbref(zone(%0)),<[name(zone(%0))]>)] |
|---|
| 769 |
|
|---|
| 770 |
See also: @exitformat, @conformat, @descformat |
|---|
| 771 |
& @cost |
|---|
| 772 |
@cost <object> = <amount> |
|---|
| 773 |
|
|---|
| 774 |
This sets the number of pennies that need to be given to an object to |
|---|
| 775 |
trigger its @pay/@opay/@apay attributes. It is evaluated, so you |
|---|
| 776 |
may use functions as well as simple integers; the amount given by |
|---|
| 777 |
the player is passed as %0. |
|---|
| 778 |
|
|---|
| 779 |
Example: |
|---|
| 780 |
@cost exit-machine=10 |
|---|
| 781 |
@apay exit-machine=@open %N-exit |
|---|
| 782 |
@pay exit-machine=Your exit has been created. |
|---|
| 783 |
|
|---|
| 784 |
give exit-machine=10 |
|---|
| 785 |
> Your exit has been created. |
|---|
| 786 |
(The exit will also have been opened by the machine.) |
|---|
| 787 |
|
|---|
| 788 |
@cost charity=%0 |
|---|
| 789 |
@pay charity=Thanks for your donation of %0. |
|---|
| 790 |
|
|---|
| 791 |
See also: give, MONEY, @pay, money() |
|---|
| 792 |
& @cpattr |
|---|
| 793 |
& @mvattr |
|---|
| 794 |
@cpattr[/noflagcopy] <obj>/<attr> = <obj1>[/<attr1>] [,<obj2>/<attr2>,...] |
|---|
| 795 |
@mvattr[/noflagcopy] <obj>/<attr> = <obj1>[/<attr1>] [,<obj2>/<attr2>,...] |
|---|
| 796 |
|
|---|
| 797 |
@cpattr copies an attribute from one object to another, or several |
|---|
| 798 |
others. @mvattr does the same thing, except it also removes the original |
|---|
| 799 |
attribute from the original object. Attribute flags ARE copied as well, |
|---|
| 800 |
unless you use the /noflagcopy switch, which you probably want if you're |
|---|
| 801 |
copying from a non-standard attribute to a standard one. |
|---|
| 802 |
|
|---|
| 803 |
For example: |
|---|
| 804 |
@cpattr box/test = box/test1, cube/random, tribble/describe |
|---|
| 805 |
|
|---|
| 806 |
would check the object "box" for an attribute named TEST and then |
|---|
| 807 |
copy it to the attributes TEST1 on "box", RANDOM on the object named |
|---|
| 808 |
"cube", and DESCRIBE on the object named "tribble". |
|---|
| 809 |
|
|---|
| 810 |
If you leave out the destination attribute, the attribute is copied |
|---|
| 811 |
to one of the same name on the new object. For example: |
|---|
| 812 |
@cpattr box/test=cube |
|---|
| 813 |
would copy the TEST attribute from "box" to TEST on "cube". |
|---|
| 814 |
|
|---|
| 815 |
See also: ATTRIBUTES, NON-STANDARD ATTRIBUTES |
|---|
| 816 |
& @create |
|---|
| 817 |
@create <name> [=<cost>] |
|---|
| 818 |
|
|---|
| 819 |
Creates a thing with the specified name. Creating a thing costs |
|---|
| 820 |
a certain amount of MUSH money, which usually defaults to 10 pennies. |
|---|
| 821 |
You can specify a higher cost if you wish, but not a lower one. |
|---|
| 822 |
This cost is refunded if you @destroy/@recycle the thing. |
|---|
| 823 |
|
|---|
| 824 |
Once you have created a thing, you can use it as a PUPPET, to store |
|---|
| 825 |
USER-DEFINED COMMANDS, or just as a prop. Some MUSHes choose to limit |
|---|
| 826 |
the number of objects that players can create by setting a QUOTA. |
|---|
| 827 |
|
|---|
| 828 |
See also: give, @quota, MONEY |
|---|
| 829 |
& @dbck |
|---|
| 830 |
@dbck |
|---|
| 831 |
This is a wizard only command. It forces the database to perform a |
|---|
| 832 |
series of internal cleanup and consistency checks that normally run |
|---|
| 833 |
approximately every 10 minutes: |
|---|
| 834 |
|
|---|
| 835 |
1. For every object, make sure its location, home, next, contents, |
|---|
| 836 |
parent, and zone fields are valid objects. |
|---|
| 837 |
2. Check for disconnected rooms that aren't set FLOATING |
|---|
| 838 |
3. For every exit, player, or thing, make sure there is exactly one |
|---|
| 839 |
way to reach it from a room by following the contents fields of |
|---|
| 840 |
non-exits, the next fields of non-rooms, and the exits fields of |
|---|
| 841 |
rooms. |
|---|
| 842 |
4. For every thing or player, make sure that it is in the contents |
|---|
| 843 |
list of its location. Make sure every exit is in the exits list |
|---|
| 844 |
of its location. |
|---|
| 845 |
5. Check that objects being used as zones have a @lock/zone. |
|---|
| 846 |
|
|---|
| 847 |
@dbck no longer performs an @purge. The results of @dbck are written |
|---|
| 848 |
to the game's error log, and not reported to the Wizard. |
|---|
| 849 |
|
|---|
| 850 |
& @death |
|---|
| 851 |
@death <player> [=<message>] |
|---|
| 852 |
|
|---|
| 853 |
This command sets the message displayed to the killer when <player> |
|---|
| 854 |
is killed. Typing just '@death <player>' or '@death <player>=' |
|---|
| 855 |
without a message will clear the currently set message. |
|---|
| 856 |
|
|---|
| 857 |
Example: |
|---|
| 858 |
@death me=You have just slain Cyclonus! |
|---|
| 859 |
|
|---|
| 860 |
Note that some MUSHes choose to disable the KILL command, which makes |
|---|
| 861 |
this attribute rather pointless. |
|---|
| 862 |
|
|---|
| 863 |
See also: kill, BEING KILLED, @odeath, @adeath |
|---|
| 864 |
& @decompile |
|---|
| 865 |
@decompile[</switch>] <object>[/<attribute-pattern>] |
|---|
| 866 |
@decompile/prefix <object>[/<attribute-pattern>]=<prefix> |
|---|
| 867 |
|
|---|
| 868 |
This command produces a list of the commands that you would have to |
|---|
| 869 |
enter in order to recreate <object>. Useful for either copying objects |
|---|
| 870 |
from one MUSH to another, or for making logs of important objects to |
|---|
| 871 |
protect against an accidental @nuke or a crash. |
|---|
| 872 |
|
|---|
| 873 |
When the /prefix switch is specified, and a prefix given, all output |
|---|
| 874 |
lines will be prefixed with <prefix>. Good for creating client-side |
|---|
| 875 |
scripts to edit code with. |
|---|
| 876 |
|
|---|
| 877 |
You can either @decompile an entire object, or just certain parts of it. |
|---|
| 878 |
To @decompile just a few attributes, for example, you could type: |
|---|
| 879 |
|
|---|
| 880 |
@decompile <object>/<attribute name> |
|---|
| 881 |
|
|---|
| 882 |
for each attribute. You can also use wildcards in <attribute name> to |
|---|
| 883 |
@decompile a list of similarly-named attributes. |
|---|
| 884 |
|
|---|
| 885 |
(continued in help @decompile2) |
|---|
| 886 |
& @decompile2 |
|---|
| 887 |
@decompile takes five switches: /db, /flags, /attribs, /tf, /skipdefault |
|---|
| 888 |
Multiple switches may be usefully combined (other than /tf). |
|---|
| 889 |
|
|---|
| 890 |
@decompile/db |
|---|
| 891 |
This command makes @decompile use the object's DBREF # instead of its |
|---|
| 892 |
name, which is useful for editing code off-MUSH. |
|---|
| 893 |
@decompile/flags |
|---|
| 894 |
Only the code to @create the object and set flags/powers/locks is printed. |
|---|
| 895 |
@decompile/attribs |
|---|
| 896 |
Only the code to set the object's attributes is printed. |
|---|
| 897 |
@decompile/skipdefault |
|---|
| 898 |
Don't output commands to set attribute flags if those flags are the |
|---|
| 899 |
defaults for that attribute on that MUSH. |
|---|
| 900 |
|
|---|
| 901 |
If an attribute contains special characters, such as %r or %t, ansi, pueblo, |
|---|
| 902 |
or begins or ends with spaces, then the command sent will be an @set command |
|---|
| 903 |
that has its special characters escaped, and with such %rs, %ts, and %bs as |
|---|
| 904 |
to exactly duplicate the attribute as it is currently set. |
|---|
| 905 |
|
|---|
| 906 |
(continued in help @decompile3) |
|---|
| 907 |
& @decompile3 |
|---|
| 908 |
|
|---|
| 909 |
@decompile/tf <object>[/<attribute>] |
|---|
| 910 |
|
|---|
| 911 |
Supplying the /tf switch makes @decompile act exactly as if you typed: |
|---|
| 912 |
@decompile/prefix <object>[/<attribute>]=FugueEdit >%b |
|---|
| 913 |
|
|---|
| 914 |
You can use a string other than "FugueEdit > " by setting your TFPREFIX |
|---|
| 915 |
attribute. You are strongly urged to do so. Using @decompile/tf with |
|---|
| 916 |
the default prefix presents the opportunity for a malicious player |
|---|
| 917 |
to load your TinyFugue command line with a harmful command for you to |
|---|
| 918 |
execute inadvertantly. |
|---|
| 919 |
|
|---|
| 920 |
The /tf switch is handy for grabbing code and placing it right |
|---|
| 921 |
into your input window. To do this: |
|---|
| 922 |
|
|---|
| 923 |
In TinyFugue: |
|---|
| 924 |
/def -ag -mglob -p100 -t"FugueEdit > *" fe = /grab %-2 |
|---|
| 925 |
|
|---|
| 926 |
In SimpleMU: |
|---|
| 927 |
Set your Options -> Grab Password |
|---|
| 928 |
@set me=tfprefix:<grabpassword>FugueEdit >%b |
|---|
| 929 |
|
|---|
| 930 |
See also: CLIENTS, ATTRIBUTES, WILDCARDS, MUSHCODE |
|---|
| 931 |
& @describe |
|---|
| 932 |
& @desc |
|---|
| 933 |
@describe <object> [=<description>] |
|---|
| 934 |
|
|---|
| 935 |
This command sets the description of the object, which will be seen |
|---|
| 936 |
whenever something looks at the object with the command 'look <object>'. |
|---|
| 937 |
Every object should have a description, even if just a short one |
|---|
| 938 |
describing its purpose. If the [=<description>] is left out, the desc. |
|---|
| 939 |
on the object will be reset to nothing. When you look at something that |
|---|
| 940 |
has no desc., you are told, "You see nothing special." |
|---|
| 941 |
|
|---|
| 942 |
@describe can be abbreviated as @desc |
|---|
| 943 |
|
|---|
| 944 |
See also: look, @adescribe |
|---|
| 945 |
& @destroy |
|---|
| 946 |
& @recycle |
|---|
| 947 |
& @nuke |
|---|
| 948 |
& @undestroy |
|---|
| 949 |
& @unrecycle |
|---|
| 950 |
@destroy[/override] <object> OR @recycle[/override] <object> |
|---|
| 951 |
@undestroy <object> OR @unrecycle <object> |
|---|
| 952 |
@nuke <object> |
|---|
| 953 |
|
|---|
| 954 |
NOTE: @destroy and @recycle are the same command - some MUSHes |
|---|
| 955 |
choose to use @recycle instead of @destroy to avoid the typo of |
|---|
| 956 |
'@dest obj' for '@desc obj'. Others use @destroy. @nuke is an alias |
|---|
| 957 |
for @dest/override. |
|---|
| 958 |
|
|---|
| 959 |
Recycles <object> and returns the player's investment (the cost of |
|---|
| 960 |
@create). You should always @destroy objects you no longer need; |
|---|
| 961 |
this keeps the database down to a manageable size. When an object |
|---|
| 962 |
is @destroyed, it is set GOING, its queue is cleared and any |
|---|
| 963 |
semaphores are drained, and its ADESTROY attribute is immediately |
|---|
| 964 |
triggered. |
|---|
| 965 |
|
|---|
| 966 |
(continued in help @destroy2) |
|---|
| 967 |
& @destroy2 |
|---|
| 968 |
|
|---|
| 969 |
GOING objects are actually removed from the db approximately every |
|---|
| 970 |
10-20 minutes. Until then, you may use the @undestroy/@unrecycle |
|---|
| 971 |
command to abort the destruction sequence. If you @undestroy an |
|---|
| 972 |
object, its STARTUP attribute is triggered. If you @destroy a |
|---|
| 973 |
GOING object, it is purged immediately. |
|---|
| 974 |
|
|---|
| 975 |
Wizards may @nuke players. If the destroy_possessions config option |
|---|
| 976 |
is set (see @config), destroying a player destroys all non-SAFE |
|---|
| 977 |
things the player owns, and @chowns SAFE things to God. If not, |
|---|
| 978 |
destroying a player @chowns all their objects to God. |
|---|
| 979 |
|
|---|
| 980 |
See also: SAFE, GOING, DESTROY_OK |
|---|
| 981 |
& @dig |
|---|
| 982 |
@dig[/teleport] <room name>[=<exit name>;<alias>*,<exit name>;<alias>*] |
|---|
| 983 |
|
|---|
| 984 |
This command is used to create a new room, possibly with exits linking |
|---|
| 985 |
it to the room you are standing in. This command normally costs 10 pennies, |
|---|
| 986 |
although some MUSHes may have different amounts or may restrict this |
|---|
| 987 |
command to those with the builder @power. |
|---|
| 988 |
|
|---|
| 989 |
@dig/teleport will automatically @tel the digger to the new room. |
|---|
| 990 |
|
|---|
| 991 |
If you use the long form of this command, an exit to the new room |
|---|
| 992 |
from the one you are standing in and an exit back from the new room |
|---|
| 993 |
will both be automatically @open'ed and @link'ed. You may have as |
|---|
| 994 |
many or as few exit aliases for an exit as you like, separated in the |
|---|
| 995 |
command by semicolons. The exit leading to the new room is separated |
|---|
| 996 |
from the exit leading back by a single comma. |
|---|
| 997 |
|
|---|
| 998 |
(continued in help @dig2) |
|---|
| 999 |
& @dig2 |
|---|
| 1000 |
Examples: |
|---|
| 1001 |
@dig Kitchen |
|---|
| 1002 |
This command will create a new room named 'Kitchen'. You will be informed |
|---|
| 1003 |
what the dbref # of this room is. |
|---|
| 1004 |
|
|---|
| 1005 |
@dig Kitchen = Kitchen <N>;n;north;kitchen;k |
|---|
| 1006 |
This will create the room as above and also open an exit leading |
|---|
| 1007 |
to it named "Kitchen <N>;n;north;kitchen;k". It will appear in the |
|---|
| 1008 |
list of Obvious exits as just "Kitchen <N>", but you will be able to |
|---|
| 1009 |
go through it by typing any of the following: n, k, north, kitchen |
|---|
| 1010 |
It will NOT create an exit coming back from the Kitchen room. |
|---|
| 1011 |
|
|---|
| 1012 |
@dig Kitchen = Kitchen <N>;n;north;kitchen;k,Out <S>;s;south;out;o |
|---|
| 1013 |
This will do just the same as the above, except it will also create |
|---|
| 1014 |
an exit named "Out <S>;s;south;out;o" coming back from the kitchen |
|---|
| 1015 |
to whatever room you are currently in. |
|---|
| 1016 |
|
|---|
| 1017 |
See also: @open, @link, EXITS, @create, DBREF |
|---|
| 1018 |
& @doing |
|---|
| 1019 |
@doing <message> |
|---|
| 1020 |
@doing/header <message> |
|---|
| 1021 |
|
|---|
| 1022 |
This command sets a short message that shows up in the WHO/DOING listing |
|---|
| 1023 |
next to your name. @doing/header <message> works exactly like @poll and |
|---|
| 1024 |
can only be used by Wizards or those with the poll power. |
|---|
| 1025 |
|
|---|
| 1026 |
See also: @poll, WHO, DOING |
|---|
| 1027 |
& @dolist |
|---|
| 1028 |
@dolist[/notify][/delimit] [<delim>] <list> = <action> |
|---|
| 1029 |
|
|---|
| 1030 |
@dolist executes the <action> for each element in <list>. If <list> is a |
|---|
| 1031 |
function, it will be evaluated to obtain the necessary list to use. It |
|---|
| 1032 |
may be any space-separated list of strings, which can be object numbers, |
|---|
| 1033 |
attributes, or arbitrary words. If the /delimit switch is given, the first |
|---|
| 1034 |
character of the list is used as the separator, instead of space. |
|---|
| 1035 |
|
|---|
| 1036 |
<action> is a command or list of commands enclosed in braces { } |
|---|
| 1037 |
and is performed once for every item in <list>. The special symbol "##" |
|---|
| 1038 |
is replaced by the corresponding item from <list>. The special symbol |
|---|
| 1039 |
"#@" is replaced by the position of that item in the list. |
|---|
| 1040 |
|
|---|
| 1041 |
If the /notify switch is used, a "@notify me" is queued after all the |
|---|
| 1042 |
list commands. This is useful for object synchronization with semaphores. |
|---|
| 1043 |
|
|---|
| 1044 |
Example: @dolist [lcon(here)] = "[name(##)] |
|---|
| 1045 |
would cause you to say the name of all objects in the room. |
|---|
| 1046 |
& @drain |
|---|
| 1047 |
@drain[/any][/all] <object>[/<attribute>][=<number>] |
|---|
| 1048 |
|
|---|
| 1049 |
This command discards commands waiting on a semaphore without |
|---|
| 1050 |
executing them. |
|---|
| 1051 |
|
|---|
| 1052 |
If the /any switch is given, then all semaphores associated with |
|---|
| 1053 |
<object> are @drained. Otherwise, the only the specified semaphore |
|---|
| 1054 |
attribute (or SEMAPHORE if no attribute is specified) is @drained. |
|---|
| 1055 |
|
|---|
| 1056 |
If the /all switch is given, then all queue entries associated |
|---|
| 1057 |
with the selected semaphore(s) are discarded, and the semaphore |
|---|
| 1058 |
attribute(s) are cleared. Otherwise, only the indicated <number> |
|---|
| 1059 |
of queue entries are discarded. If no <number> is given, then |
|---|
| 1060 |
the /all switch is assumed. |
|---|
| 1061 |
|
|---|
| 1062 |
You may not specify both the /any switch and a specific attribute. |
|---|
| 1063 |
Similarly, you may not specify both the /all switch and a number. |
|---|
| 1064 |
|
|---|
| 1065 |
See also the help for: SEMAPHORES, @notify, @wait |
|---|
| 1066 |
& @drop |
|---|
| 1067 |
@drop <object> [=<message>]. <object> can be a thing, player, exit, |
|---|
| 1068 |
or room, specified as <name> or #<number> or 'me' or 'here'. Sets |
|---|
| 1069 |
the drop message for <object>. The message is displayed when a |
|---|
| 1070 |
player drops <object>. Without a message argument, it clears the |
|---|
| 1071 |
message. |
|---|
| 1072 |
|
|---|
| 1073 |
On an exit, this message is sent to a player after they pass through |
|---|
| 1074 |
the exit. |
|---|
| 1075 |
|
|---|
| 1076 |
See also: drop, @odrop, @adrop. |
|---|
| 1077 |
& @dump |
|---|
| 1078 |
@dump [/paranoid] [check interval] |
|---|
| 1079 |
|
|---|
| 1080 |
This is a wizard only command that saves a copy of the current memory |
|---|
| 1081 |
database out to a save file. This preempts the normal regular dumping |
|---|
| 1082 |
that the mud performs on its own. |
|---|
| 1083 |
|
|---|
| 1084 |
If the /paranoid switch is used, the game performs additional consistency |
|---|
| 1085 |
checking which corrects possible data corruption. If a check interval |
|---|
| 1086 |
is specified, the game writes confirmation of the dump to the checkpoint |
|---|
| 1087 |
log file every <interval> objects. If no interval is specified, it is |
|---|
| 1088 |
taken to be the size of the database, divided by 5. |
|---|
| 1089 |
This switch should ONLY be used if a normal @dump is not being done |
|---|
| 1090 |
correctly. Paranoid dumps should generally only be done by wizards with |
|---|
| 1091 |
access to the account on which the MUSH is running, since others will |
|---|
| 1092 |
not have access to the checkpoint log file. |
|---|
| 1093 |
& @ealias |
|---|
| 1094 |
@ealias <object> = <enter alias> |
|---|
| 1095 |
|
|---|
| 1096 |
This allows a player to type the enter alias instead of "enter <object>" |
|---|
| 1097 |
If you have a chair, you could "@ealias chair = sit down" and then just |
|---|
| 1098 |
type "sit down" instead of "enter chair" - using the object name is |
|---|
| 1099 |
not necessary. Note that the enter alias is checked after normal exits. |
|---|
| 1100 |
Like an exit, it may have a semicolon separated list of words, |
|---|
| 1101 |
i.e. sit down;sit;sit on chair |
|---|
| 1102 |
& @edit |
|---|
| 1103 |
& @gedit |
|---|
| 1104 |
@edit[/first][/check] <object>/<pattern> = <search>,<replace> |
|---|
| 1105 |
@edit[/check] <object>/<pattern> = $,<string to append> |
|---|
| 1106 |
@edit[/check] <object>/<pattern> = ^,<string to prepend> |
|---|
| 1107 |
|
|---|
| 1108 |
This is useful when you don't want to have to retype those obnoxiously |
|---|
| 1109 |
long descriptions just to make one little change. Instead, search and |
|---|
| 1110 |
replace via @edit. |
|---|
| 1111 |
|
|---|
| 1112 |
<pattern> is a pattern, optionally containing wildcards, for the attribute |
|---|
| 1113 |
names you wish to edit. Only attributes already defined on <object> may be |
|---|
| 1114 |
edited. <search> and <replace> are two strings. It's also possible to use |
|---|
| 1115 |
"$" and "^" to signal appending and prepending text, respectively. |
|---|
| 1116 |
|
|---|
| 1117 |
If the text contains commas, percent signs, or similar special characters, |
|---|
| 1118 |
it usually must be enclosed in curly braces. |
|---|
| 1119 |
|
|---|
| 1120 |
If the /first switch is used, only the first occurrence of <search> |
|---|
| 1121 |
is replaced. |
|---|
| 1122 |
|
|---|
| 1123 |
If the /check switch is used, the editing is not actually done, but the |
|---|
| 1124 |
results are shown to you (with changes hilighted) as if a normal @edit |
|---|
| 1125 |
was performed. |
|---|
| 1126 |
|
|---|
| 1127 |
See also ATTRIBUTES, edit() |
|---|
| 1128 |
& @efail |
|---|
| 1129 |
@efail <object> = <message> |
|---|
| 1130 |
This is the message shown to the player who fails to enter the object. |
|---|
| 1131 |
& @elock |
|---|
| 1132 |
@elock <object> = <key> |
|---|
| 1133 |
Enter-locks an object, restricting who is allowed to enter it. Special |
|---|
| 1134 |
lock types are supported (see "help @lock" for details). Only objects |
|---|
| 1135 |
which are ENTER_OK may be entered, regardless of the key. |
|---|
| 1136 |
|
|---|
| 1137 |
Rooms don't use ENTER_OK or @elock; they use @lock/teleport |
|---|
|
|---|