@-ATTRIBUTES @-BUILDING @-GENERAL @-Director
+ Commands that can only be used by connected players are listed in
+ HELP SOCKET COMMANDS.
& @-ATTRIBUTES
These '@' commands set standard message/action sets on objects. Each comes
in 3 versions: @<whatever>, @o<whatever>, and @a<whatever>. Only the
@alias has no effect on non-players.
- See also: @name, alias(), fullalias()
+See also: @name, alias(), fullalias()
& @allhalt
@allhalt
don't like @switch. If <command> is given, it is executed instead of
the rest of the commands in the current queue.
- @assert does the inverse: stopping execution if <boolean> evaluse to false.
+ @assert does the inverse: it stops execution if <boolean> evaluates to false.
Examples:
> @va obj=$testme *:@pemit %#=Before break;@break %0;@pemit %#=After break
See also: @chzone, ZONES
& @clone
- @clone <object, room, or exit>[=<new name>]
- @clone/preserve <object, room, or exit>[=<new name>]
+ @clone <thing, room, or exit>[=<new name>]
+ @clone/preserve <thing, room, or exit>[=<new name>]
- For objects, creates an exact duplicate of it and puts it in the
+ For things, creates an exact duplicate of it and puts it in the
current room. For exits, it creates an exact duplicate of that
exit, except the clone's source is the current room rather than
whatever the original exit's source was. For rooms, creates an
through '@conformat here = Contents: [iter(%0,name(##))]',
for example. More complex things are, obviously, possible.
- See also: @exitformat, @nameformat, @descformat
+See also: @exitformat, @nameformat, @descformat
& @invformat
@invformat <object> [=<format>]
This is useful for things like room parents that enforce a consistent
"look" for each room's @desc.
- See also: @exitformat, @nameformat, @conformat, @idescformat
+See also: @exitformat, @nameformat, @conformat, @idescformat
& @idescformat
@idescformat <object> [=<text>]
This is useful for things like object parents that enforce a consistent
"look" for each object's @idesc.
- See also: @exitformat, @nameformat, @conformat, @descformat
+See also: @exitformat, @nameformat, @conformat, @descformat
& @nameaccent
@nameaccent <object> [=<accent template>]
If a container has both a @nameaccent and a @nameformat, the
@nameformat is used.
- See also: accent(), @nameformat
+See also: accent(), @nameformat
& @nameformat
@nameformat <object> [=<format>]
Example: Show the room's zone after its name.
@nameformat here = %1 [if(isdbref(zone(%0)),<[name(zone(%0))]>)]
- See also: @exitformat, @conformat, @descformat
+See also: @exitformat, @conformat, @descformat
& @cost
@cost <object> = <amount>
& @create
@create <name> [=<cost>]
- Creates a thing with the specified name. Creating an object costs
+ Creates a thing with the specified name. Creating a thing costs
a certain amount of MUSH money, which usually defaults to 10 pennies.
You can specify a higher cost if you wish, but not a lower one.
- This cost is refunded if you @destroy/@recycle the object.
+ This cost is refunded if you @destroy/@recycle the thing.
- Once you have created an object, you can use it as a PUPPET, to store
+ Once you have created a thing, you can use it as a PUPPET, to store
USER-DEFINED COMMANDS, or just as a prop. Some MUSHes choose to limit
the number of objects that players can create by setting a QUOTA.
- See also: give, @quota, MONEY
+See also: give, @quota, MONEY
& @dbck
@dbck
This is a Director only command. It forces the database to perform a
This will do just the same as the above, except it will also create
an exit named "Out <S>;s;south;out;o" coming back from the kitchen
to whatever room you are currently in.
-
-See also: @open, @link, EXITS, @create
+
+See also: @open, @link, EXITS, @create, DBREF
& @doing
@doing <message>
@doing/header <message>
@drop <object> [=<message>]. <object> can be a thing, player, exit,
or room, specified as <name> or #<number> or 'me' or 'here'. Sets
the drop message for <object>. The message is displayed when a
- player drops <object>. Without a message argument, it clears the
+ player drops <object>. Without a message argument, it clears the
message.
On an exit, this message is sent to a player after they pass through
the exit.
- See also: drop, @odrop, @adrop.
+See also: drop, @odrop, @adrop.
& @dump
@dump [/paranoid] [check interval]
If you have a chair, you could "@ealias chair = sit down" and then just
type "sit down" instead of "enter chair" - using the object name is
not necessary. Note that the enter alias is checked after normal exits.
- Like an exit, it may have a semi-colon separated list of words,
+ Like an exit, it may have a semicolon separated list of words,
i.e. sit down;sit;sit on chair
& @edit
& @gedit
One could change the format to 'Exits: Exit1 Exit2 Exit3' through
'@exitformat here = Exits: [iter(%0,name(##))]', for example.
- See also: TRANSPARENT, @conformat, @nameformat, @descformat
+See also: TRANSPARENT, @conformat, @nameformat, @descformat
& @failure
@failure <object> [=<message>]
the object (using the 'follow' command).
See also: follow, unfollow, followers(), @ofollow, @afollow
+& @unfollow
+ @unfollow <object> = <message>
+
+ Sets the message shown to someone after they stop following
+ the object (using the 'unfollow' command).
+
+See also: follow, unfollow, followers(), @ounfollow, @aunfollow
& @FORWARDLIST
@forwardlist <object> [=<list of dbrefs>]
@lock/forward me=$me)
See also: DEBUG
-& @unfollow
- @unfollow <object> = <message>
-
- Sets the message shown to someone after they stop following
- the object (using the 'unfollow' command).
-
-See also: follow, unfollow, followers(), @ounfollow, @aunfollow
& @force
@force[/noeval] <object>=<command>
the forcee runs the command. @force/noeval will only
evaluate the command when the forcee runs it.
-Example:
+Examples:
@create Lackey
> Created: Object #103
@fo Lackey = go east
flag table. It requires the exact flag name or alias to be used.
Be very very careful with this.
- See also: help flags. See help @flag2 for information on @flag/add
+See also: help flags. See help @flag2 for information on @flag/add
& @flag2
@flag/add is used to add a new flag with the given name. Arguments
other than the flag name are optional:
> Recorder records: Whee!
See also: LISTENING, @ahear, @amhear, @aahear
-& NEW LOCKS
- In PennMUSH 1.7.5, several new features have been added to locks.
-
- Locks can now be inherited off of parents, just like attributes.
- By default, locks are set no_inherit, but this flag can be cleared.
-
- There are now lock flags including ones to control inheritance,
- copying in a @clone, who can set them, and so on. Details are
- in HELP @LSET.
-
- Indirect lock keys (@#1234) can now refer to other lock names on
- objects, not just a lock of the same name. See HELP @LOCK4.
-
- There is a new lock key for testing flags and object types.
- See HELP @LOCK9 for more information.
& LOCKING
& LOCKS
& @lock
@lock[/<switch>] <object>=<key>
- This command "locks" the object, specifying (by the key) who or what can
- do certain things with the object. There are many different types of locks,
- all of which are described in "help locktypes" and which are designated by
- the switch. The "basic" lock determines, for players and objects, who can
- pick them up. For exits, it determines who can go through the exit.
- All other locks can be set the same way as the basic lock.
+ This command "locks" the object, specifying a key which determines who or
+ what can do certain things with the object. There are many different types
+ of locks, all of which are described in "help locktypes" and which are
+ designated by the switch. The "basic" lock determines, for players and
+ things, who can pick them up. For exits, it determines who can go through
+ the exit. All other locks can be set the same way as the basic lock.
Whenever you "pass" the basic lock, you succeed in doing something with
the object. This triggers the @success/@osuccess/@asuccess
messages and actions. If you fail to pass the basic lock, you trigger
the @failure/@ofailure/@afailure messages and actions. Other locktypes
- may also have such success/failure messages.
+ may also have such success/failure messages: see "help failure" for info.
You can specify <object> and <key> as either the name of an object in
the immediate area, a DBREF number, "me", or "here".
- Many new features have recently been added to locks. See HELP NEW LOCKS
- for details.
-
(continued in help @lock2)
& @lock2
You can lock an object in several different ways. The simplest lock is to
- lock it to one other thing:
+ lock it to one other object with the '=', signifying a DBRef # match.:
@lock My Toy = = me
This locks the object "My Toy" to you and you alone. It is recommended
that you @lock me == me in order to prevent anyone else from picking
- you up. The two = signs are NOT a typo!
-
- You can lock an object -against- one other object as well, using the '!'
- symbol:
+ you up. The two = signs are NOT a typo! The first is part of the @lock
+ syntax (as shown at the top of "help @lock") the second is a lock key
+ that means "exactly this object".
+
+ You can lock an object -against- another object as well, using the '!'
+ symbol before any other key:
@lock Shared Toy = !Vector Sigma
This locks the object "Shared Toy" to everyone -except- Vector Sigma.
Everyone except Vector will be able to pick up the object.
@lock <object>=objid^<object id>
-See also: locktypes, @clock, objid()
+See also: locktypes, @clock, elock(), lock(), objid()
& locktypes
& locklist
& lock types
@lock/examine Who can examine this object if it's VISUAL
@lock/chzone Who can @chzone to this object if it's a ZMO
@lock/forward Who can @forwardlist a message to this object
- @lock/control Who can control this object (only if set)
- @lock/dropto Who can trigger this container's drop-to.
- @lock/destroy Who can destroy this object if it's DESTROY_OK
+ @lock/control Who can control this object (only if set)
+ @lock/dropto Who can trigger this container's drop-to.
+ @lock/destroy Who can destroy this object if it's DESTROY_OK
@lock/interact Who can send sound (say/pose/emit/etc) to this object
@lock/take Who can get things contained in this object
- See also: @lock, @lset, @clock, FAILURE
+See also: @lock, @lset, @clock, FAILURE
& @lset
@lset <object>/<lock type>=[!]<flag>
are /check, /cmd, /conn, /err, /trace, and /wiz, specifying which
file to log to. /cmd is default.
- See also: @logwipe
+See also: @logwipe
& @logwipe
@logwipe/<switch> <password>
log wipe password from the MUSH's configuration file to use this
command.
- See also: @log
+See also: @log
& @map
@map[/delim] [<delim>] <list> = <function or pattern>
ONAME and ANAME. The old name will be passed at %0 to these;
the new name will be passed as %1.
- See also: @alias
+See also: @alias
& @newpassword
@newpassword <player> = <password>
If the =<message> part is omitted, the message will be reset.
-Ex: @opay Vending Machine=sticks a quarter in the vending machine.
+ Ex: @opay Vending Machine=sticks a quarter in the vending machine.
See also: give, @cost, @payment, @apayment, MONEY
& @open
This command opens an exit in the room you are standing in with the
specified name. You can then use the @link command to set the exit's
destination, or you can set it automatically by using the DBREF of a
- destination, which can be a room or object. (Note that you CANNOT open
- exits from objects.) If you also include the second exit name, an exit
+ destination, which can be a room or thing. (Note that you CANNOT open
+ exits from things.) If you also include the second exit name, an exit
from the destination room will be opened back to the room you are in.
NOTE: you can have as many exit aliases as you like by adding more,
the full exit name to go through the exit. Only the exit name appears in
the list of Obvious Exits in a room.
-Ex: @open Up;u;climb = #255, Down;dow;do;d;fall
+ Ex: @open Up;u;climb = #255, Down;dow;do;d;fall
See also: EXITS, @link, @dig
& @osuccess
if the name of the exit is included in the message. It is recommended
that you put @osuccs on all exits and all takeable objects.
-Ex: @osucc North=heads north into the catacombs.
+ Ex: @osucc North=heads north into the catacombs.
If the =<message> part is omitted, the message will be reset.
it a certain amount of MUSH money. If =<message> is omitted, the message
is reset to nothing. May be abbreviated @pay.
-See also: give, @apay, @opay, and @cost.
+See also: give, @apay, @opay, @cost.
& @receive
& @oreceive
& @areceive
Note that page-lock and the HAVEN flag will block @pemits as well,
except from Directors or those with the pemit_all power.
-See also @emit, @oemit, @remit, NOSPOOF, and SPOOFING.
+ See also @emit, @oemit, @remit, NOSPOOF, and SPOOFING.
& @poll
@poll
@poll <poll question>
dbref instead of the executor's dbref, and requires control over
the enactor or the Can_nspemit power.
-See also: @emit, @pemit, @oemit, SPOOFING, NOSPOOF and CONTROL.
+See also: @emit, @pemit, @oemit, SPOOFING, NOSPOOF, CONTROL.
& @restart
@restart <object> or @restart/all
Example: @sql SHOW TABLES
- See also: sql(), sqlescape(), mapsql()
+See also: sql(), sqlescape(), mapsql()
& @squota
@squota <victim> [= [+|-] <amount>]
& @sweep
@sweep [connected | here | inventory | exits ]
- @sweep gives you a list of all objects/players that are listening in
- the room you are currently in, as well as the objects you are
- carrying. Most objects only listen for a particular string or
- phrase, so they normally do not pose a problem if you need privacy.
- You will have to be careful of players and puppets since they will
- hear everything you say and do. (And might post the same to r.g.m!)
+ @sweep gives you a list of all nearby objects that are listening,
+ including the room you are in and the objects you are carrying.
+ Most objects only listen for a particular string or phrase, so they
+ normally do not pose a problem if you need privacy. You will have to be
+ careful of players and puppets since they will hear everything you say
+ and do. (And might post the same to r.g.m!)
AUDIBLE exits are also shown on an ordinary sweep, if the room is
also AUDIBLE. (Audible exits aren't active unless the room is audible).
As a special case, using "home" as the <room> teleports the object
to its home.
- See also: JUMP_OK, NO_TEL, @oxtport, @tport, @otport, @atport, @lock
+See also: JUMP_OK, NO_TEL, @oxtport, @tport, @otport, @atport, @lock
& @tport
@tport <object> [=<message>]
an object. It can also pass values to that attribute on the stack
as %0 - %9.
- Example:
+ Examples:
&GREET me=POSE waves hi.
@tr me/GREET
> Cyclonus waves hi.
See "help @verb3" for examples.
& @verb3
- Example:
+ Examples:
&VERB_EXAMPLE Test Object=$test:@verb me=%#,TEST,You just tested.,OTEST,
just tested the example.,ATEST,%N
whichever happens first.
More forms that support semaphores on arbitrary attributes are described in
- help @wait2
- See also the help for: SEMAPHORES, @drain, @notify
+ "help @wait2".
+
+See also: SEMAPHORES, @drain, @notify
& @wait2
Normally, a semaphore wait depends on the SEMAPHORE attribute of the object
in question. However, it is useful to be able to use other attributes as
semaphores, so one object can be used as the blocker for multiple different
things at once. Possible attribute names aren't completely arbitrary. See
- HELP SEMAPHORES5 for details.
+ "HELP SEMAPHORES5" for details.
The syntax for these are:
ignores the object's VISUAL flag (but not its attribute flags)
The /all switch shows the values of VEILED attributes.
- See also: ATTRIBUTE TREES
+See also: ATTRIBUTE TREES
& follow
follow <object>
through. This doesn't prevent you from going somewhere else on your
own.
-See also: unfollow, dismiss, desert, followers(), following(),
- @follow, @ofollow, @afollow
+See also: unfollow, dismiss, desert, followers(), following(), @follow,
+ @ofollow, @afollow
& dismiss
dismiss <object>
dismiss
from PRICELIST. The item purchased is passed in as %0,
and the amount paid as %1
- See also: buy, @buy, @obuy, @pricelist, MONEY, ACTION LISTS
+See also: buy, @buy, @obuy, @pricelist, MONEY, ACTION LISTS
& @buy
@buy <object> [=<message>]
the object, using the 'buy' command. The item purchased is passed
in as %0, and the amount paid as %1.
- See also: buy, @abuy, @obuy, @pricelist, MONEY
+See also: buy, @abuy, @obuy, @pricelist, MONEY
& @obuy
@obuy <object> [=<message>]
the beginning of the message. The item purchased is passed in as %0,
and the amount paid as %1.
- See also: buy, @abuy, @obuy, @pricelist, MONEY
+See also: buy, @abuy, @obuy, @pricelist, MONEY
& @pricelist
@pricelist <object>=<item1>:<price1>[,<price2>][ <item2>:...]
ex:
@PRICELIST vendor=mansion:1000+ large_house:100-200 house:20,30,50
- See also: buy, @abuy, @buy, @obuy, MONEY
+See also: buy, @abuy, @buy, @obuy, MONEY
& buy
buy <item>[ from <vendor>][ for <cost>]
> buy coke
You enjoy a delicious coke.
- See also: @ABUY, @BUY, @PRICELIST
+See also: @ABUY, @BUY, @PRICELIST
& give
give[/silent] <player>=<number>
give[/silent] <number> to <player>
of the message, and is handy when you want to say things that use special
characters like % or []'s.
- See also: whisper, pose
+See also: pose, whisper
& score
score
are checked for commands as if it was a master room.
See 'help USER-DEFINED COMMANDS'.
+& socket commands
+ These commands can only be entered by a connected player through their
+ client. They generally do things that only affect a specific connection
+ and would be meaningless if run by an object or disconnected player.
+
+ DOING IDLE LOGOUT OUTPUTPREFIX OUTPUTSUFFIX QUIT
+ SESSION WHO
+
+ In addition, the following commands can only be used at the login
+ screen:
+
+ cd ch connect create
\ No newline at end of file
& FUNCTIONS
Functions are specialized commands used to manipulate strings and
other input. Function take the general form: [FUNCTION(<input>)]
-
+
The brackets are used to delimit and force evaluation of the function
(or nested functions). The brackets can also be used to group functions
for the purposes of string concatenation. In general, more than one pair
String functions: string manipulation (ESCAPE, FLIP)
Time functions: Formatting and display of time (TIME, CONVSECS)
Utility functions: general utilities (ISINT, COMP)
-
+
The command "@config/functions" lists all of the game's built-in functions.
The command "@function" lists all of the game's custom global functions
defined via the @function command.
-
+
& Attribute functions
The primary purpose of these functions is to access information
stored in attributes on objects.
-
+
aposs() attrib_set() default() edefault() eval()
get() grep() grepi() lattr() nattr()
obj() poss() regrep() regrepi() subj()
udefault() ufun() uldefault() ulocal() v-function
wildgrep() wildgrepi() xget() zfun()
- See also: ATTRIBUTES, NON-STANDARD ATTRIBUTES
+See also: ATTRIBUTES, NON-STANDARD ATTRIBUTES
& Bitwise functions
These functions treat integers as a sequence of binary bits (Either 0
or 1) and manipulate them.
are all considered "true" when passed to these functions.
Alternatively, your MUSH may be using TinyMUSH 2.2 booleans,
in which case only non-zero numbers are "true".
-
+
and() cand() cor() eq() gt()
gte() lt() lte() nand() neq()
nor() not() or() t() xor()
-
- See also: BOOLEAN VALUES, @config
+
+See also: BOOLEAN VALUES, @config
& Communication functions
Communication functions are side-effect functions that send a message
to an object or objects.
& Dbref functions
Dbref functions return a dbref or list of dbrefs related to some value
on an object.
-
+
children() con() entrances() exit() followers()
following() home() lcon() lexits() loc()
locate() lparent() lplayers() lsearch() lvcon()
lvexits() lvplayers() namelist() next() nextdbref()
num() owner() parent() pmatch() rloc()
rnum() room() where() zone()
-
- See also: DBREF
+
+See also: DBREF
& Information functions
Information functions return values related to objects or the game.
-
+
alias() andflags() andlflags() config() controls()
ctime() elock() findable() flags() fullalias()
fullname() hasattr() hasattrp() hasflag() haspower()
setunion() shuffle() sort() sortby() sortkey()
splice() step() table() unique() wordpos()
words()
-
- See also: LISTS
+
+See also: LISTS
& Math functions
Math functions take one or more floating point numbers and return
a numeric value.
mul() pi() power() root() round()
sign() sin() sqrt() stddev() sub()
tan() trunc() val()
-
+
These functions operate only on integers (if passed floating point
numbers, they will return an error or misbehave):
dec() div() floordiv() inc() mod()
& Regular expression functions
These functions take a regular expression (regexp, or re) and match
it against assorted things.
-
+
regedit() regeditall() regeditalli() regediti() regmatch()
regmatchi() regrab() regraball() regraballi() regrabi()
regrep() regrepi() reswitch() reswitchall() reswitchalli()
reswitchi()
-
- See also: string functions, regexp
+
+See also: string functions, regexp
& SQL functions
These functions perform queries or other operations on an SQL
database to which the MUSH is connected, if SQL support is
& String functions
String functions take at least one string and return a transformed
string, parts of a string, or a value related to the string(s).
-
- accent() after() alphamin() alphamax() art()
- before() brackets() capstr() case() caseall()
- cat() center() comp() chr() decrypt()
- delete() digest() edit() encrypt() escape()
- if() ifelse() foreach() lcstr() left()
- lit() ljust() merge() mid() ord()
- ordinal() pos() regedit() lpos() regmatch()
- repeat() reverse() right() rjust() scramble()
- secure() sha0() space() spellnum() squish()
- strcat() strinsert() stripaccents()stripansi() strlen()
- strmatch() strreplace() switch() trim() ucstr()
- wrap()
-
- See also: STRINGS
+
+ accent() after() align() alphamin() alphamax()
+ art() before() brackets() capstr() case()
+ caseall() cat() center() comp() chr()
+ decompose() decrypt() delete() digest() edit()
+ encrypt() escape() if() ifelse() foreach()
+ lcstr() left() lit() ljust() merge()
+ mid() ord() ordinal() pos() regedit()
+ lpos() regmatch() repeat() reverse() right()
+ rjust() scramble() secure() sha0() space()
+ spellnum() squish() strcat() strinsert() stripaccents()
+ stripansi() strlen() strmatch() strreplace() switch()
+ trim() ucstr() wrap()
+
+See also: STRINGS
& Time functions
These functions return times or format times.
-
+
convsecs() convutcsecs() convtime() ctime() etimefmt()
isdaylight() mtime() restarttime() secs() starttime()
stringsecs() time() timefmt() timestring() utctime()
& Utility functions
These functions don't quite fit into any other category.
-
+
allof() ansi() atrlock() beep() checkpass()
clone() create() die() dig() firstof()
functions() isdbref() isint() isnum() isword()
output of functions when you don't use that output.
& ABS()
abs(<number>)
-
+
Returns the absolute value of a number. i.e. ABS(-4) returns 4;
ABS(2) returns 2, etc.
& ACCENT()
the one assumes (ISO 8859-1), and some clients strip these 8-bit
characters.
- See HELP ACCENT2 for a description of the template argument.
+ See 'HELP ACCENT2' for a description of the template argument.
- See also: stripaccents(), NOACCENTS
+See also: stripaccents(), NOACCENTS
& ACCENT2
For each character in <string>, the corresponding character of
<template> is checked according to the table below, and a replacement
cedilla Small tail below , C,c
letter
- See HELP ACCENT3 for more
+ See 'HELP ACCENT3' for more
& ACCENT3
These are non-accent special characters, mostly punctuation and
non-roman letters.
Capital eth - D
Lower-case eth & o
- See HELP ACCENT4 for examples
+ See 'HELP ACCENT4' for examples
& ACCENT4
Some examples of accent() and their expected outputs:
Returns the angle that has the given <cosine> (arc-cosine), with the
angle expressed in the given angle type, or radians by default.
- See HELP CTU() for more on the angle type.
+ See 'HELP CTU()' for more on the angle type.
& ADD()
add(<number>, <number>[, ... , <numberN>])
> think after(foo bar baz,ba)
r baz
+See also: before(), rest()
& ALIGN()
align(<widths>,<col1>,...,<coln>[,<filler>[,<colsep>[,<rowsep>]]])
left-aligned. A '-' causes it to be centered, and '>' makes it
right-aligned. No prefix defaults to left-aligned. A '.' after the
number implies the column is to be repeated for as long as there is
- a non-repeating column.
+ text remaining in a non-repeating column.
<filler> is a single character that, if given, is the character used
to fill empty columns and remaining spaces. <colsep>, if given, is
+ Luke +
+----------------------------------------+
+See also: center(), ljust(), rjust()
& ALLOF()
allof(<expr1>[, ... , <exprN>],<osep>)
> say allof(#-1,#101,#2970,,#-3,0,#319,null(This Doesn't Count),|)
You say, "#101|#2970|#319"
- See also: firstof(), BOOLEAN VALUES
+See also: firstof(), BOOLEAN VALUES
& ALPHAMAX()
alphamax(<word1>[, ... , <wordN>])
effects), while cand() stops evaluation after the first argument
that evaluates to false.
- See also: BOOLEAN VALUES, or(), xor(), not()
+See also: BOOLEAN VALUES, or(), xor(), not()
& ANDFLAGS()
andflags(<object>,<string of flag letters>)
Returns the angle with the given <sine> (arc-sine), with the angle
expressed in the given angle type, or radians by default.
- See HELP CTU() for more on the angle type.
+ See 'HELP CTU()' for more on the angle type.
& ATAN()
& ATAN2()
atan(<tangent>[,<angle type>])
result. It is useful in converting between cartesian and polar
coordinates.
- See HELP CTU() for more on the angle type.
+ See 'HELP CTU()' for more on the angle type.
& ATRLOCK()
atrlock(<object>/<attrib>[, <on|off>])
attrib_set(me/foo,%0) will _always_ create an attribute.
Of course, if the empty_attrs configuration option is turned off,
- then the above paragraph doesn't apply. See @config attribs.
+ then the above paragraph doesn't apply. See '@config attribs'.
& BAND()
band(<integer1>, <integer2>[, ... , <integerN>])
> think before(foo bar baz,r)
foo ba
+See also: after(), first()
& BRACKETS()
brackets([<string>])
bound is returned. If it's higher than the higher bound,
the higher bound is returned.
- See also: ceil(), floor(), round(), trunc()
+See also: ceil(), floor(), round(), trunc()
& BXOR()
bxor(<integer>, <integer>[, ... , <integerN>])
Returns <string> with the first character capitalized.
Example: capstr(foo bar baz) returns "Foo bar baz"
- See also: lcstr(), ucstr()
+See also: lcstr(), ucstr()
& CAT()
cat(<string1>[, ... , <stringN>])
cat() concatenates strings, separating each string by a space.
So "[cat(one, two)]" will return 'one two'.
+
+See also: strcat()
& CEIL()
ceil(<number>)
Returns the least integral value greater than or equal to <number>.
- See also: floor(), bound(), round(), trunc()
+See also: floor(), bound(), round(), trunc()
& CENTER()
center(<string>, <width>[, <fill>[, <rightfill>]])
If <string> divides <width> into uneven portions, the left side
will be one character shorter than the right side.
- Example:
+ Examples:
> say center(X,5,-)
You say, "--X--"
> say center(X,5,-=)
> say center(hello,16,12345)
You say, "12345hello543215"
+See also: align(), ljust(), rjust()
& CHECKPASS()
checkpass(<player>, <string>)
The caller can use the function on himself, but using on any other
player requires special powers.
- See also: Connection Functions
+See also: Connection Functions
& SENT()
sent(<player|descriptor>)
The caller can use the function on himself, but using on any other
player requires special powers.
- See also: Connection Functions
+See also: Connection Functions
& RECV()
recv(<player|descriptor>)
The caller can use the function on himself, but using on any other
player requires special powers.
- See also: Connection Functions
+See also: Connection Functions
& COMP()
comp(<value1>, <value2>[,<type>])
or the enactor (%#). You CANNOT get the contents of anything else,
regardless of whether or not you have objects in it.
- See also: lcon(), next()
+See also: lcon(), next()
& CONFIG()
config()
config(<option>)
Players who are not connected have a conn value of "-1", as do dark
wizards, when conn() is used on them by a non-priv'ed player.
- See also: CONNECTED
+See also: CONNECTED
& CONTROLS()
controls(<object>, <victim>)
object). You must control <object> or <victim>, or have the See_All
power, to use this function.
- See also: CONTROL
+See also: CONTROL
& CONVSECS()
& CONVUTCSECS()
convutcsecs() and convsecs() with a second argument of 'utc' return
the time based on UTC time instead of the server's local time.
- Example:
+ Examples:
> say [secs()]
You say, "709395750"
> say [convsecs(709395750)]
You say, "Wed Jun 24 10:22:54 1992"
> say [convutcsecs(709395750)]
You say, "Wed Jun 24 14:22:30 1992"
- See also: convtime(), time()
+
+See also: convtime(), time()
& CONVTIME()
convtime(<time string>)
> say [convtime(Wed Jun 24 10:22:54 1992)]
You say, "709395774"
- See also: convsecs(), time()
+See also: convsecs(), time()
& COS()
cos(<angle>[,<angle type>])
Returns the cosine of <angle>. Angle must be in the given angle
type, or radians by default.
- Example:
+ Examples:
> say cos(90, d)
You say, "0"
> say cos(1.570796)
You say, "0"
- See HELP CTU() for more on the angle type.
+ See 'HELP CTU()' for more on the angle type.
& PCREATE()
pcreate(<name>, <password>)
Creates a player with a given name and password. Wizard-only.
- See also: @pcreate
+See also: @pcreate
& CREATE()
create(<object>, <cost>)
Note especially the last example, which will trip you up if you use
floating point numbers with dec() and expect it to work like sub().
- See also: inc()
+
+See also: inc()
& DECOMPOSE()
decompose(<string>)
parse-able characters to recreate <string> exactly after one parsing. It
takes care of multiple spaces, '%r's, and '%t's.
- See also: @decompile2, escape(), secure()
+See also: @decompile2, escape(), secure()
& DECRYPT()
decrypt(<string>, <password>)
> say default(me/Test, No fruits!)
You say "No fruits!"
- See also: get(), eval(), ufun(), edefault(), udefault(), uldefault()
+See also: get(), eval(), ufun(), edefault(), udefault(), uldefault()
& DELETE()
delete(<string>, <first>, <len>)
You say, "abcfgh"
> say delete(abcdefgh, 3, -2)
You say, "abefgh"
-
+
+See also: strreplace()
& DIE()
die(<number of times to roll die>, <number of sides on die>[, <show>])
be a space-seperated list of the individual rolls rather than their
sum.
- Example:
+ Examples:
> think die(3, 6)
6
> think die(3, 6, 1)
Without SSL, only the sha algorithm is enabled. In both cases, sha returns
the same thing as the sha0() function.
- See also: sha0()
+See also: sha0()
& DIST2D()
dist2d(<x1>, <y1>, <x2>, <y2>)
Note that add(mul(div(%0,%1),%1),remainder(%0,%1)) always yields %0,
and add(mul(floordiv(%0,%1),%1),modulo(%0,%1)) also always yields %0.
- See also: modulo(), fdiv()
+See also: modulo(), fdiv()
& DOING()
doing(<player|descriptor>)
Given the name of a connected player, returns that player's @doing
string if they can be seen on the WHO list.
- See also: @poll, @doing, poll()
+See also: @poll, @doing, poll()
& E()
e()
> say edefault(me/Test,You have no marbles.)
You say "You have no marbles."
- See also: get(), eval(), ufun(), default(), udefault()
+See also: get(), eval(), ufun(), default(), udefault()
& EDIT()
edit(<string>, <search>, <replace>[, ... , <searchN>, <replaceN>])
edit() can not replace a literal single ^ or $. Use regedit() for that.
- See also: @edit, regedit()
+See also: @edit, regedit()
& ELEMENT()
element(<list>, <item>,<single-character separator>)
> say [element(this|is|a|test|string,is,|)]
You say, "2"
- See also: match(), grab()
+See also: match(), grab()
& ELEMENTS()
elements(<list of words>, <list of numbers>[,<delim>[, <osep>]])
> say elements(Foof|Ack|Beep|Moo,3 1,|)
You say "Beep|Foof"
- See also: extract(), index(), grab()
+See also: extract(), index(), grab()
& ELOCK()
elock(<object>[/<locktype>], <victim>)
think elock(Dancing Slippers/drop, Princess)
> 0
- See also: @lock, locktypes
+See also: @lock, locktypes
& EMIT()
& NSEMIT()
emit(<message>)
Returns an encrypted string produced by a simple password-based
encrypted algorithm. Good passwords are long passwords.
- This is not high-security encryption. See also decrypt().
+ This is not high-security encryption.
+
+See also: decrypt()
& ENTRANCES()
entrances([<object> [,<type>[, <begin>[, <end>]]]])
Takes two numbers, and returns 1 if they are equal, 0 otherwise.
- See also: neq()
+See also: neq()
& ESCAPE()
escape(<string>)
message object). Since the function preserves the original string,
it is, in most cases, a better choice than SECURE().
- See also: decompose(), secure()
+See also: decompose(), secure()
& EVAL()
& GET_EVAL()
eval(<object>, <attribute>)
of xget() -- using a slash rather than a comma to separate the object from
the attribute. It is included for TinyMUSH 2.x compatibility.
- See also: get(), u(), xget()
+See also: get(), u(), xget()
& EXIT()
exit(<object>)
enactor (%#). You CANNOT get the exit list of anything else,
regardless of whether or not you have objects in it.
- See also: lexits(), next()
+See also: lexits(), next()
& EXP()
exp(<number>)
think extract(This is a test string,3,2)
> a test
- See also: index(), elements(), grab()
+See also: index(), elements(), grab()
& FDIV()
fdiv(<numerator>, <denominator>)
Returns the quotient of the two numbers. Note that the DIV() and MOD()
functions cannot be used on floating point numbers.
- See also: div()
+See also: div()
& FILTER()
& FILTERBOOL()
filter([<obj>/]<attr>, <list>[,<delimiter>[, <osep>]])
> say [filter(test/is_odd, 1 2 3 4 5 6)]
You say, "1 3 5"
- See also: anonymous attributes
+See also: anonymous attributes
& FINDABLE()
findable(<object>, <victim>)
Returns the first element of a list.
- See also: rest(), last()
+See also: before(), rest(), last()
& FIRSTOF()
firstof(<expr1>, <expr2>[, ... , <exprN>])
> say firstof(get(%#/royal cheese),#-1 This Has No Meaning,0,)
You say, ""
- See also: allof(), BOOLEAN VALUES
+See also: allof(), BOOLEAN VALUES
& FLAGS()
flags(<object>)
flags(<object>/<attribute>)
some flags may not have flag letters, and multiple flags may have
the same letter (and will appear twice).
- See also: lflags()
+See also: lflags()
& LFLAGS()
lflags(<object>)
lflags(<object>/<attribute>)
Given no arguments, this function returns a space-separated list
of all flag names known to the server.
- See also: flags()
+See also: flags()
& FLIP()
& REVERSE()
flip(<string>)
This function reverses a string. For example, "flip(foo bar baz)"
returns "zab rab oof".
+
+See also: revwords()
& FLOOR()
floor(<number>)
Returns the greatest integral value less than or equal to <number>.
- See also: ceil(), bound(), round(), trunc()
+See also: ceil(), bound(), round(), trunc()
& FMOD()
fmod(<number>, <divisor>)
> say [fold(test/add_nums,1 2 3 4 5)]
You say, "15"
- See also: anonymous attributes
+See also: anonymous attributes
& FOLLOWERS()
followers(<object>)
> say [foreach(is_alphanum,jt1o+)]
You say, "1 1 1 1 0 "
- See also: anonymous attributes
+See also: anonymous attributes
& FRACTION()
fraction(<number>)
extract(list, match(list, pattern, delimiter), 1, delimiter) or
the regular expression variation thereof.
- See also: match(), extract(), element(), elements(), index(), regmatch(),
- graball()
+See also: match(), extract(), element(), elements(), index(), regmatch(),
+ graball()
& GRABALL()
& REGRABALL()
& REGRABALLI()
> say regraball(This is testing a test,s$)
You say "This is"
- See also: match(), matchall(), grab(), regmatch()
+See also: match(), matchall(), grab(), regmatch()
& GREP()
& REGREP()
& WILDGREP()
The caller can use the function on himself, but using on any other
player requires special powers.
- See also: Connection Functions, ipaddr(), ports(), lports()
+See also: Connection Functions, ipaddr(), ports(), lports()
& IDLE()
& IDLESECS()
idle(<player|descriptor>)
if the <condition> is true, or <false expression> (if provided) if the
<condition> is false.
- See also: BOOLEAN VALUES, switch()
+See also: BOOLEAN VALUES, switch()
& INAME()
iname(<object>)
You must be see_all, control <object>, or be inside it to use this
function.
- See also: @nameformat, name(), fullname()
+See also: @nameformat, name(), fullname()
& INC()
inc(<integer>)
inc(<string-ending-in-integer>)
Note especially the last example, which will trip you up if you use
floating point numbers with inc() and expect it to work like add().
- See also: dec()
+
+See also: dec()
& INDEX()
index(<list>,<character>, <first>, <length>)
blue tribble^
cute doll"
- See also: extract(), elements(), grab()
+See also: extract(), elements(), grab()
& INSERT()
insert(<list>, <position>, <new item>[,<single-character separator>])
This function returns 1 if the string is a valid object dbref, and
0 if the string is not a valid object dbref.
- See also: DBREFS
+See also: DBREFS
& ISINT()
isint(<string>)
Returns 1 if its argument is an integer, and 0 otherwise. Integers can
begin with a '+' or '-' sign, but the rest of the string must be digits.
- See also: isnum()
+See also: isnum()
& ISNUM()
isnum(<string>)
the characters in the string must be digits, and an optional decimal
point.
- See also: isint()
+See also: isint()
& ISWORD()
isword(<string>)
<pattern> is what will be "mapped" onto each element of the list,
with the token "##" being replaced successively by the next word in
the list, and the token "#@" being replaced by the word's position
- in the list (see also help itext() and help inum()). The result is
- concatenated and returned as a space separated list. This is similar
+ in the list (also see 'help itext()' and see 'help inum()'). The result
+ is concatenated and returned as a space separated list. This is similar
to @dolist, but the results are made into a list rather than executed.
The list may be <delimiter>-separated.
The caller can use the function on himself, but using on any other
player requires special powers.
- See also: Connection Functions, hostname(), ports(), lports()
+See also: Connection Functions, hostname(), ports(), lports()
& LAST()
last(<list>[,<delimiter>])
Returns the last element of a list.
- See also: first(), rest()
+See also: first(), rest()
& LATTR()
& LATTRP()
lattr(<object>[/<attribute pattern>])
lattrp() also includes attributes inherited from parents.
- See also: nattr(), examine
+See also: nattr(), examine
& NATTR()
& NATTRP()
& ATTRCNT()
nattrp() and attrpcnt() also count matching attributes on the parent.
- See also: lattr()
+See also: lattr()
& LCON()
lcon(<object>)
or the enactor (%#). You CANNOT get the contents of anything else,
regardless of whether or not you have objects in it.
- See also: lexits(), lplayers(), con(), next(), lvcon()
+See also: lexits(), lplayers(), con(), next(), lvcon()
& LCSTR()
lcstr(<string>)
Returns <string> with all letters converted to lowercase.
Example: lcstr(Foo BAR bAz) returns "foo bar baz"
- See also: capstr(), ucstr()
+See also: capstr(), ucstr()
& LDELETE()
Ldelete(<list>, <position>[,<single-character separator>])
Returns the first <length> characters from string.
+See also: left(), mid()
& NSLEMIT()
& LEMIT()
lemit(<message>)
enactor (%#). You CANNOT get the exit list of anything else,
regardless of whether or not you have objects in it.
- See also: lcon(), exit(), next(), lvexits()
+See also: lcon(), exit(), next(), lvexits()
& LJUST()
ljust(<string>, <length>[,<fill>])
You say, "
0foo---7
01234567"
-
+
+See also: align(), center(), rjust()
& LINK()
link(<name>, <destination>[, <preserve>])
Supported <op>'s are: add and band bor bxor div fdiv max mean
median min modulo mul nand nor or remainder stddev sub xor
- Example:
+ Examples:
>think lmath(add, 1|2|3, |)
6
>think lmath(max, 1 2 3)
> say [setr(0, Outside)]-[localize(setr(0, Inside))]-%q0
You say, "Outside-Inside-Outside"
- See also: setq(), setr(), r(), ulocal(), uldefault(), s()
+See also: setq(), setr(), r(), ulocal(), uldefault(), s()
& LOCATE()
locate(<looker>, <name>, <parameters>)
This is a side-effect function and may not be enabled on some MUSHes.
- See also: @lock, locktypes, lockflags(), llockflags(), lset(), llocks()
+See also: @lock, locktypes, elock(), lockflags(), llockflags(), lset(),
+ llocks()
& LLOCKS()
& LOCKS()
llocks(<object>)
> th llocks(me)
Basic USER:ITSME Use
- See also: lock(), lset(), lockflags(), llockflags()
+See also: lock(), lset(), lockflags(), llockflags()
& LOCKFLAGS()
lockflags(<object>[/<locktype>])
lockflags()
Given no arguments, this function returns a string consisting of
all the flag letters the server knows.
- See also: llockflags(), lset(), lock(), llocks()
+See also: llockflags(), lset(), lock(), llocks()
& LLOCKFLAGS()
llockflags(<object>[/<locktype>])
llockflags()
Given no arguments, this function returns a space-separated list
of all flag names known to the server.
- See also: lockflags(), lset(), lock(), llocks()
+See also: lockflags(), lset(), lock(), llocks()
& LSET()
lset(<object>/<lock type>,[!]<flag>)
see_all power. You must be in <object> or control it to use this
function.
- See also: lvplayers(), lcon(), lthings()
+See also: lvplayers(), lcon(), lthings()
& LTHINGS()
lthings(<object>)
This function returns the dbrefs of all things, dark or not, in
<object>. You must be in <object> or control it to use this function.
- See also: lvthings(), lcon()
+See also: lvthings(), lcon()
& LPOS()
lpos(<string>, <character>)
> say lpos(a-bc-def-g, -)
You say, "1 4 8"
- See also: pos()
+See also: pos()
& LSEARCH()
& NLSEARCH()
& SEARCH()
and visible (non-dark). You must be in <object> or control it to use this
function.
- See also: lcon()
+See also: lcon()
& LVEXITS()
lvexits(<room>)
This function returns the dbrefs of all visible (non-dark) exits from
<room>. You must be in the room or control it to use this function.
- See also: lexits()
+See also: lexits()
& LVPLAYERS()
lvplayers(<object>)
lwohid() returns a list of objid's instead.
- See also: mwho(), nwho(), xwho()
+See also: mwho(), nwho(), xwho()
& MAP()
map([<object>/]<attribute>, <list>[,<delim>[, <osep>]])
> say [map(times_two,1;2;3;4;5,;)]
You say, "2;4;6;8;10"
- See also: anonymous attributes
+See also: anonymous attributes
& MATCH()
match(<list>, <pattern>[,<delimiter>])
To match an entire string (for example, to match "red blue green"
to "*bl*"), use the strmatch() function.
- See also: element(), grab()
+See also: element(), grab()
& MATCHALL()
matchall(<list>, <pattern>[,<delim>[, <osep>]])
> say matchall(This is testing a test,tes*)
You say "3 5"
- See also: match(), strmatch(), graball()
+See also: match(), strmatch(), graball()
& MAX()
max(<number>[, ... , <numberN>])
Returns the mean (arithmetic average) of its arguments.
- See also: median(), stddev()
+See also: median(), stddev()
& MEDIAN()
median(<number>[, ... , <numberN>)
Returns the median (the middlemost numerically) of its arguments.
- See also: mean(), stddev()
+See also: mean(), stddev()
& MEMBER()
member(<list>, <word>[,<delimiter>])
Takes a list and a word, and returns the position of <word>
if <word> is a word in <list>. A word is defined as a string which
has no interior spaces. So ' hello ' would be one word, while
- 'hello there' would be two. See LISTS
+ 'hello there' would be two. See 'LISTS'
member() is case-sensitive and requires an exact match. For wild
card patterns, use match().
> say [merge(AB[space(2)]EF,abcdef,)]
You say, "ABcdEF"
- See also: TR()
+See also: splice(), tr()
& MID()
mid(<string>, <first>, <length>)
> say mid(foobar, 2, -2)
You say, "oo"
- See also: LEFT(), RIGHT()
+See also: left(), right()
& MIN()
min(<number>[, ... , <numberN>])
specified, it defaults to a space. If using more than 2 lists, the last
argument must be a delimiter.
- See HELP MIX2 for examples
+ See 'MIX2' for examples
& MIX2
Examples of mix():
> say [mix(add_nums, 1:1:1, 2:2:2, 3:3:3, :)]
You say, "6:6:6"
- See also: anonymous attributes
+See also: anonymous attributes
& MOD()
& MODULO()
& MODULUS()
Mod and modulus are just aliases for modulo.
- See also: DIV
+See also: div()
& MONEY()
money(<object>)
money(<integer>)
doesn't match an element in the original <list 1>, a corresponding
element from <list 2> does not appear in the final result.
- See HELP MUNGE2 for examples.
+ See 'MUNGE2' for examples.
& MUNGE2
For example: Consider attribute PLACES, which contains "Fort Benden Ista",
and another attribute DBREFS contains the dbrefs of the main JUMP_OK
> say [munge(sort,v(places),v(dbrefs))]
You say, "#9000 #20 #5000"
- See HELP MUNGE3 for another example
+ See 'MUNGE3' for another example.
& MUNGE3
Another common task that munge() is well suited for is sorting a list
of dbrefs of players by order of connection. This example reuses the
> say [munge(sort,iter(v(faction_members),conn(##)),v(faction_members))]
You say, "#12 #234 #3"
- See also: anonymous attributes
+See also: anonymous attributes
& MWHO()
& MWHOID()
mwho()
Basically the same as [not(eq(<num1>,<num2>))].
- See also: eq(), not()
+See also: eq(), not()
& NEXT()
next(<object>)
regardless of whether or not you have objects in it. These rules
apply to exits, as well.
- See also: lcon(), lexits(), con(), exit()
+See also: lcon(), lexits(), con(), exit()
& NEXTDBREF()
nextdbref()
for use on privileged global objects who need an unprivileged count
of who's online.
- See also: nwho(), mwho(), xmwho()
+See also: nwho(), mwho(), xmwho()
& NOR()
nor(<boolean>[, ... , <booleanN>])
Returns 1 if all its arguments are false, 0 if one is true.
Equivalent to not(or()), but more efficient.
- See also: and(), or(), xor(), not()
+See also: and(), or(), xor(), not()
& NOT()
not(<boolean value>)
the input is equivalent to false(0), it returns a 1.
The definition of truth and falsehood depends on configuration settings;
- see help BOOLEAN VALUES for details.
+ see 'BOOLEAN VALUES' for details.
- See also: and(), or(), nor(), xor()
+See also: and(), or(), nor(), xor()
& NUM()
num(<object>)
ncon(<object>) is identical to words(lcon(<object>))
nvcon(<object>) is identical to words(lvcon(<object>))
- See also: nexits(), nplayers(), xcon(), lcon(), lvcon()
+See also: nexits(), nplayers(), xcon(), lcon(), lvcon()
& NVEXITS()
& NEXITS()
nexits(<room>)
nexits(<room>) is identical to words(lexits(<room>))
nvexits(<room>) is identical to words(lvexits(<room>))
- See also: ncon(), nplayers(), xexits(), lexits(), lvexits()
+See also: ncon(), nplayers(), xexits(), lexits(), lvexits()
& NVPLAYERS()
& NPLAYERS()
nplayers(<object>)
nplayers(<object>) is identical to words(lplayers(<object>))
nvplayers(<object>) is identical to words(lvplayers(<object>))
- See also: ncon(), nexits(), xplayers(), lplayers(), lvplayers()
+See also: ncon(), nexits(), xplayers(), lplayers(), lvplayers()
& NVTHINGS()
& NTHINGS()
nthings(<object>)
nthings(<object>) is identical to words(lthings(<object>))
nvthings(<object>) is identical to words(lvthings(<object>))
- See also: ncon(), nexits(), xthings(), lthings(), lvthings()
+See also: ncon(), nexits(), xthings(), lthings(), lvthings()
& NWHO()
nwho()
This returns a count of all currently-connected players. When
mortals use this function, DARK wizards or royalty are NOT counted.
- See also: lwho(), nmwho(), xwho()
+See also: lwho(), nmwho(), xwho()
& OBJ()
obj(<object>)
This function returns the amount of memory, in bytes, being used
by the object. It can only be used by players with Search powers.
- See also: playermem()
+See also: playermem()
& OEMIT()
& NSOEMIT()
(including side effects), while cor() stops evaluation after the
first argument that evaluates to true.
- See also: BOOLEAN VALUES, and()
+See also: BOOLEAN VALUES, and()
& ORFLAGS()
orflags(<object>,<string of flag characters>)
the @prompt command. nsprompt() is a wizard-only variation that
works like @nsprompt.
- See also: @prompt, @nsprompt, PROMPT_NEWLINES
+See also: @prompt, @nsprompt, PROMPT_NEWLINES
& PI()
pi()
by everything owned by the player. It can only be used by players
with Search powers.
- See also: objmem()
+See also: objmem()
& PMATCH()
pmatch(<string>)
This function returns the current @poll.
- See also: @poll, doing(), @doing
+See also: @poll, doing(), @doing
& LPORTS()
& PORTS()
lports()
Returns <number> to the power of <exponent>.
- See also: root()
+See also: root()
& POWERS()
powers(<object>)
powers(<object>, <power>)
The '%qN' percent-substitution can also be used to access these local
registers, where N is register <register> needed.
- See "help SETQ()" for details about registers.
+ See 'HELP SETQ()' for details about registers.
& RAND()
rand(<num>)
rand(<min>, <max>)
argument is evaluated once for each match, allowing for more complex
transformations than is possible with straight replacement.
- Example:
+ Examples:
> say regedit(this test is the best string, (?P<char>.)est, $<char>rash)
You say "this trash is the best string"
> say regeditall(this test is the best string, (.)est, [capstr($1)]rash)
You say "this Trash is the Brash string"
- See also: edit(), regmatch()
+See also: edit(), regmatch()
& REGMATCH()
& REGMATCHI()
(Help text from TinyMUSH 2.2.4, with permission)
See 'help regexp syntax' for an explanation of regular expressions.
- See also: regrab()
+See also: regrab()
& REMIT()
& NSREMIT()
remit(<object>, <message>)
Example:
> say [repeat(Test, 5)]
You say, "TestTestTestTestTest"
-
+
+See also: space()
& REPLACE()
replace(<list>, <position>, <new item>[,<single-character separator>])
Returns a list minus its first element.
- See also: first(), last()
+See also: after(), first(), last()
& REVWORDS()
revwords(<list of words>[,<delimiter>[, <output separator>]])
Example:
> say revwords(foo bar baz eep)
You say, "eep baz bar foo"
-
+
+See also: flip()
& RIGHT()
right(<string>, <length>)
Returns the <length> rightmost characters from string.
+See also: left(), mid()
& RJUST()
rjust(<string>, <length>[,<fill>])
You say, "
0---foo7
01234567"
-
+
+See also: align(), center(), ljust()
& RLOC()
rloc(<object>, <levels>)
Returns the n-th root of <number>. The 2nd root is the square root,
the 3rd the cube root, and so on.
- Example:
+ Examples:
> think root(27, 3)
3
> think power(3, 3)
27
- See also: sqrt(), power()
+See also: sqrt(), power()
& ROUND()
round(<number>, <places>)
Rounds <number> to <places> decimal places. <places> must be between
0 and 6.
- See also: ceil(), floor(), bound(), trunc()
+See also: ceil(), floor(), bound(), trunc()
& S()
& S-FUNCTION
s(string)
special characters; it will scramble these characters just like normal
characters.
+See also: shuffle()
& SECS()
secs()
can make output slightly ugly, but it's a good way of preventing other
people from doing nasty things with your objects.
- See also: decompose(), escape()
+See also: decompose(), escape()
& SET()
set(<object>, <flag>)
set(<object>/<attribute>, <attribute flag>)
elements in <list1> that aren't in <list2>. The list that is
returned is sorted. Normally, alphabetic sorting is done. You can
change this with the fourth argument, which is a sort type as defined
- in help sorting. If used with exactly four arguments where the fourth
- is not a sort type, it's treated instead as the output separator.
+ in "help sorting". If used with exactly four arguments where the
+ fourth is not a sort type, it's treated instead as the output
+ separator.
Example:
> say setdiff(foo baz gleep bar, bar moof gleep)
You say, "baz foo"
-
+
+See also: setinter(), setunion()
& SETINTER()
setinter(<list1>, <list2>[,<delimiter>[, <sort type>[,<osep>]]])
elements that are in both <list1> and <list2>. The list that is
returned is sorted. Normally, alphabetic sorting is done. You can
change this with the fourth argument, which is a sort type as defined
- in help sorting. If used with exactly four arguments where the fourth
- is not a sort type, it's treated instead as the output separator.
+ in "help sorting". If used with exactly four arguments where the
+ fourth is not a sort type, it's treated instead as the output
+ separator.
Example:
> say setinter(foo baz gleep bar, bar moof gleep)
You say, "bar gleep"
+See also: setdiff(), setunion()
& SETQ()
& SETR()
setq(<register>, <string>[, ... ,<regN>, <stringN>])
Registers set via setq() or setr() can be accessed via the r() function,
or via the %qN percent-substitution.
- See "help SETQ2" for examples of its use.
+ See 'SETQ2' for examples of its use.
& SETQ2
yields "foobar - barfoo".
- See "help SETQ3" for scoping rules of setq().
+ See 'SETQ3' for scoping rules of setq().
& SETQ3
The registers set by setq() can be used in later commands in the same
elements. Think of it as CAT() without words duplicated. The list
returned is sorted. Normally, alphabetic sorting is done. You can
change this with the fourth argument, which is a sort type as defined
- in help sorting. If used with exactly four arguments where the fourth
- is not a sort type, it's treated instead as the output separator.
+ in "help sorting". If used with exactly four arguments where the
+ fourth is not a sort type, it's treated instead as the output
+ separator.
- Example:
+ Examples:
> say setunion(foo baz gleep bar, bar moof gleep)
You say, "bar baz foo gleep moof"
> say setunion(1.1 1.0, 1.000)
You say, "1.0 1.000 1.1"
> say setunion(1.1 1.0, 1.000, %b, f)
You say, "1.0 1.1"
+
+See also: setdiff(), setinter()
& SHA0()
sha0(<string>)
This function shuffles the order of the items of a list, returning a
random permutation of its elements. "[shuffle(foo bar baz gleep)]"
might evaluate to "baz foo gleep bar".
-
+
+See also: scramble()
& SIGN()
sign(<number>)
Returns the sine of <angle>, which should be expressed in the
given angle type, or radians by default.
- See HELP CTU() for more on the angle type.
+ See 'HELP CTU()' for more on the angle type.
& SORT()
sort(<word1> [... <wordN>][, <sort type>[,<delimiter>[, <osep>]]])
the words are dbrefs, it will sort them in order of smallest to
largest. Otherwise, it will perform a lexicographic sort.
- The second argument is a sort type. See help sorting.
+ The second argument is a sort type. See 'help sorting'.
The optional third argument gives the list's delimiter character.
If not present, <delimiter> defaults to a space.
this limit is exceeded, the function will fail _silently_. List and
function sizes should be kept reasonable.
- See also: anonymous attributes, sorting, sortkey()
+See also: anonymous attributes, sorting, sortkey()
& SORTKEY()
sortkey([<obj>/]<attrib>, <list>[, <sort type>[,<delimiter>[, <osep>]]])
> say sortkey(key_name,#1 #2 #3)
You say, "#2 #3 #1"
- See also: anonymous attributes, sorting, sortby
+See also: anonymous attributes, sorting, sortby()
& SORTING
In functions where you can specify a sorting method, you can provide
one of these sort types:
Whether or not the 'a' sort type is case-sensitive or not depends
on the particular mush and its environment.
- See also: sort(), sortby(), sortkey(), setunion(), setinter(), setdiff()
+See also: sort(), sortby(), sortkey(), setunion(), setinter(), setdiff()
& SOUNDEX()
soundex(<word>)
> think soundex(foobar)
F160
- For details of how the algorithm works, see help soundex2
+ For details of how the algorithm works, see 'help soundex2'.
- See also: soundslike()
+See also: soundslike()
& SOUNDEX2
Here's how the soundex algorithm works:
1. The first letter of the soundex code is the first letter of
soundlike(<word>, <word>)
The soundslike function returns 1 if the two words have the same
- soundex code (see help soundex() for information), which means,
+ soundex code (see 'help soundex()' for information), which means,
in general, if they sound alike. For example:
> think soundslike(robin,robbyn)
Prints <number> number of spaces. Useful for times when you want to
be able to use lots of spaces to separate things. For example,
"a[space(5)]b would print, "Amberyl says, "a b"".
+
+See also: repeat()
& SPEAK()
speak(<speaker>, <string>[, <say string>
[, [<transform obj>/]<transform attr>
Given a number, return its written-out representation in words.
- See also: ordinal()
+See also: ordinal()
& ORDINAL()
ordinal(<integer>)
Given an integer, return its written-out ordinal representation in words.
+ Example:
> think ordinal(1)
first
- See also: spellnum()
+See also: spellnum()
& SPLICE()
splice(<list1>, <list2>, <word>[,<delimiter>])
Example:
> say [splice(foo bar baz,eek moof gleep,bar)]
You say, "foo moof baz"
-
+
+See also: merge()
& MAPSQL()
mapsql([<object>/]<attribute>, <query>[, <osep>[, <dofieldnames>]])
If <dofieldnames> evaluates to a true boolean, then the first call
will be with row number 0 and %1-%9 will be set to the field names.
- See "Help mapsql2" for examples.
- See also: sqlescape(), sql(), @sql
+ See 'help mapsql2' for examples.
+
+See also: anonymous attributes, sqlescape(), sql(), @sql
& MAPSQL2
> @@ Field, Type, Null?, Key?, Default, Extra
&SEL_GETID obj = SELECT id FROM mytable WHERE name = '[sqlescape(%0)]'
&DOIT obj = $do *: ... [setq(0,sql(u(SEL_GETID,%0),~,|))] ...
- See also: sqlescape(), mapsql(), @sql
+See also: sqlescape(), mapsql(), @sql
& SQLESCAPE()
sqlescape(<string>)
You must be a WIZARD or have the Sql_Ok power to use this function.
- See also: sql(), mapsql(), @sql
+See also: sql(), mapsql(), @sql
& SQRT()
sqrt(<number>)
Returns the square root of <number>. <number> cannot be negative.
- See also: root()
+See also: root()
& SQUISH()
squish(<string>[,<character>])
and condenses all inter-word <character>s to a single <character>. If no
character is given, uses space.
- Example:
+ Examples:
> say [squish( foo bar baz blech eek )]
You say, "foo bar baz blech eek"
> say starttime()
You say "Sat Dec 7 00:09:13 1991
- See also: convtime(), restarttime(), restarts()
+See also: convtime(), restarttime(), restarts()
& RESTARTTIME()
restarttime()
Returns a string which is the time the MUSH last rebooted. The time
is in the same format as the TIME() function returns.
- See also: convtime(), starttime()
+See also: convtime(), starttime()
& RESTARTS()
restarts()
Players can check the SSL status of their own connection.
The See_All power is required to check other connections.
- See also: terminfo()
+See also: terminfo()
& STEP()
step([<obj>/]<attr>, <list>, <step>[,<delim>, <outsep>])
1 - 2 - 3
4 - 5 -
- See also: map(), iter(), anonymous attributes
+See also: map(), iter(), anonymous attributes
& STDDEV()
stddev(<number>[, ... , <numberN>])
Returns the sample standard deviation of its arguments.
- See also: mean(), median()
+See also: mean(), median()
& STRCAT()
strcat(<string1>[, ... , <stringN>])
Concatenates strings together, with no space between them.
For example, strcat(foo bar,baz blech) will return the string
"foo barbaz blech".
+
+See also: cat()
& STRINSERT()
strinsert(<string>, <position>, <insert>)
in <string>. Note that the first character in a string is numbered 0,
not 1.
- Example:
+ Examples:
> think strinsert(barbaz, 0, foo)
foobarbaz
> think strinsert(Myname, 2, %b)
- My name
+ My name
+
+See also: strdelete()
& STRIPACCENTS()
stripaccents(<string>)
strlen(<string>)
Returns the length of the string (The number of characters in it).
+
+See also: words()
& STRMATCH()
strmatch(<string>, <pattern>)
Example:
> think strreplace(Fix teh typo, 4, 3, the)
Fix the typo
+
+See also: delete(), strinsert()
& SUB()
sub(<num>, <num>)
is case-sensitive, reswitchi() is case-insensitive. The reswitchall versions
evaluate every corresponding <list>, not just the first that matches a regexp.
- See also: switch()
+See also: switch()
& SWITCH()
& SWITCHALL()
& CASE()
<expr>ssions, without spaces between them, so they match similarly to
@switch, while switch() and case() match more like @switch/first.
- See HELP SWITCH WILDCARDS for more, and HELP SWITCH2 for examples
- See also: reswitch(), if()
+ See 'HELP SWITCH WILDCARDS' for more, and see 'HELP SWITCH2' for examples.
+
+See also: reswitch(), if()
& SWITCH2
Examples of switch() and related functions:
> say switch(test, *a*, foo, *b*, bar, *t*, neat, baz)
\ when the argument is evaluated, and then that single \ will stop
the greater/less than check).
- See also: HELP WILDCARDS
+See also: WILDCARDS
& T()
t(<expression>)
Returns a 0 if the expression is false, and 1 otherwise.
The definition of truth and falsehood depends on configuration settings;
- see help BOOLEAN VALUES for details.
+ see 'BOOLEAN VALUES' for details.
& TABLE()
table(<list>, <field width>, <line length>,<delimiter>, <osep>)
Returns the tangent of <angle>, which should be expressed in the
given angle type, or radians by default.
- See HELP CTU() for more on the angle type.
+ See 'HELP CTU()' for more on the angle type.
& TEL()
tel(<object>, <destination>[, <silent>[, <inside>]])
is an optional boolean that, if true, makes the function act like
@tel/inside (some value for <silent> must also be specified).
- See also: @tel
+See also: @tel
& TERMINFO()
terminfo(<player|descriptor>)
textentries() returns the topic names of matching entries. <entry>
may include wildcards, in which case a list of matching topic names
- will be return, separated by the <separator> string if one is
+ will be returned, separated by the <separator> string if one is
provided, and space-separated otherwise.
- Examples:
+ Example:
> say textfile(help,tan\()
You say, " tan(<angle>[,<angle type>])
Returns the tangent of <angle>, which should be expressed in the
given angle type, or radians by default.
- See HELP CTU() for more on the angle type.
+ See 'HELP CTU()' for more on the angle type.
"
& TIME()
& UTCTIME()
on a player will always return a time, and if TZ is not a number between
-24 and +24 inclusive, the time returned is UTC.
- See also: timefmt(), timestring(), convsecs(), convtime()
+See also: timefmt(), timestring(), convsecs(), convtime()
& ETIMEFMT()
etimefmt(<format>, <secs>)
> think etimefmt($2mm $2ss, 500) - [timestring(500)]
8m 20s - 8m 20s
- See also: timestring(), timefmt()
+See also: timestring(), timefmt()
& ETIMEFMT2
etimefmt()'s escape codes are similar to timefmt()'s.
The time is broken up into days, hours, minutes, and seconds, and
if the number of seconds is less than a day, hour, or minute.
If <pad flag> is 2, all numbers will be 2 digits long.
- Example:
+ Examples:
> say [timestring(301)]
You say, " 5m 1s"
> say [timestring(301,1)]
> say [timestring(301,2)]
You say, "00d 00h 05m 01s"
- See also: stringsecs()
+See also: stringsecs()
& STRINGSECS()
stringsecs(<timestring>)
> say [stringsecs(5m 1s)]
You say, "301"
- See also: timestring(), etimefmt()
+See also: timestring(), etimefmt()
& TR()
tr(<string>, <find>, <replace>)
> say tr(uryyb, a-z, n-za-m)
You say, "hello"
- See also: MERGE()
+See also: MERGE()
& TRIM()
& TRIMPENN()
& TRIMTINY()
also be used to return the leading numeric prefix of a string, or
"0" if there isn't one. For example, "val(101Dalmations)" => 101.
- See also: ceil(), floor(), bound(), round()
+See also: ceil(), floor(), bound(), round()
& TYPE()
type(<object>)
This function returns the type of an object - PLAYER, THING, EXIT,
- or ROOM. See "help types of objects" for more.
+ or ROOM. See 'types of objects' for more.
& U()
& UFUN()
& ULAMBDA()
do not, the attribute will be read off the object that is
evaluating the UFUN().
- <arg 0>, <arg 1>, ... are the arguments that get passed to the
- user function as v(0), v(1), etc. (as in @trigger). You can pass
- up to 10 arguments (v(0) through v(9)).
+ <arg0>, <arg1>, ... are the arguments that get passed to the
+ user function as %0, %1, etc. (as in @trigger). You can pass
+ up to 10 arguments (%0 through %9).
This function is also known as U() (alias for TinyMUSH compatibility).
ulambda() also accepts anonymous attributes.
- See "help UFUN2" for more.
+ See 'help UFUN2' for more.
& U2
& UFUN2
Example:
- > @va Object=$test *:"[ufun(testfun, v(0))]; @emit [v(0)]
- > &testfun object=[strlen(v(0))] [ucstr(v(0))]
+ > @va Object=$test *:say [ufun(testfun, %0)]; @emit %0
+ > &testfun object=[strlen(%0)] [ucstr(%0)]
> test string
Object says, "6 STRING"
string
If the evaluation order doesn't quite seem right, adding escapes
or breaking up the expression will probably help.
+ See 'help UFUN3' for more.
+
+& U3
+& UFUN3
+ A user-defined function called with ufun() is always evaluated with the
+ permissions (powers and flags) of the object the function resides on.
+ An object may evaluate an attribute on any object it controls, the
+ attributes it owns on other objects, and publically accessible attributes.
+
+ Because the user-defined functions are evaluated with the permissions of
+ the object they're stored on, allowing arbitrary use of the ufun()
+ function can be insecure.
+
+ By default, the safer_ufun @config is enabled, preventing objects from
+ running code on objects more privileged than themselves. Being more
+ privileged means being higher up on the mortal/royalty/wizard hierarchy.
+ However, attributes with the 'public' flag can always be evaluated by
+ anyone. This is necessary for attributes such as 'describe', but should
+ not be used for code.
+
& UCSTR()
ucstr(<string>)
Returns <string> with all letters converted to uppercase.
Example: ucstr(Foo BAR baz) returns "FOO BAR BAZ"
- See also: lcstr(), capstr()
+See also: lcstr(), capstr()
& UDEFAULT()
udefault([<obj>/]<attr>, <default case>[, <arg0>[, ... , <arg9>]])
> say udefault(me/Test,-- BOOM --,ACK)
You say "-- BOOM --"
- See also: get(), eval(), ufun(), uldefault(), default(), edefault()
+See also: get(), eval(), ufun(), uldefault(), default(), edefault()
& ULDEFAULT()
- uldefault([<obj>/]<attr>,<default case>[,<arg>]...)
+ uldefault([<obj>/]<attr>, <default case>[, <arg0>[, ... <arg9>]])
Just like UDEFAULT(), but it preserves registers like ULOCAL().
- See also: u(), udefault(), ulocal(), setq()
+See also: u(), udefault(), ulocal(), setq()
& ULOCAL()
ulocal([<obj>/]<attr>[, <arg0>[, ... , <arg9>]])
calls arbitrary u() functions, where global register values need to be
preserved from accidental user clobbering.
- See "help ulocal2" for examples.
+ See 'help ulocal2' for examples.
& ULOCAL2
- Example of ulocal():
+ Examples of ulocal():
> &FRUIT me=apples bananas oranges pears
> &SUB-FUNCTION me=[setq(0,v(FRUIT))][extract(%q0,match(%q0,%0),1)]
> &TOP-FUNCTION me=[setq(0,are delicious!)][ulocal(SUB-FUNCTION,%0)] %q0
%q0, this is what was printed. In the first example, ulocal() reset the
value of %q0 to its original "are delicious!"
- See also: u(), setq(), r()
+See also: u(), setq(), r()
& UNIQUE()
unique(<list>[, <sort type>[,<sep>[, <osep>]]])
unique() returns a copy of <list> with consecutive duplicate items
removed. It does not sort the list. The optional <sort type> describes
- what type of data is in the list; see help sorting for details. If
+ what type of data is in the list; see 'help sorting' for details. If
no type is given, the elements are compared as strings. The optional
third and fourth arguments are the list delimiter and output seperator.
> think unique(1|2|3|3, n, |, _)
1_2_3
- See also: setunion()
+See also: setunion()
& V()
& V-FUNCTION
v(!) is equivalent to %!
v(3) is equivalent to %3
- See also: SUBSTITUTIONS, get(), ATTRIBUTES
+See also: SUBSTITUTIONS, get(), ATTRIBUTES
& VADD()
vadd(<vector>, <vector>[,<delimiter>])
words(<list>[,<delimiter>])
words() returns the number of elements in <list>.
+
+See also: strlen()
& WRAP()
wrap(<string>, <width>[, <first line width>[, <line separator>]])
attributes are listed _after_ child attributes, not sorted
alphabetically.
- See also: nattr(), lattr()
+See also: nattr(), lattr()
& XGET()
xget(<object>, <attribute>)
This function is identical to get() in purpose, but a comma instead of
a slash separates object and attribute. There is no real advantage to
- using this instead of get(). Please see "help get()" for more details
+ using this instead of get(). Please see 'help get()' for more details
on the use of this function.
& XOR()
- xor(<boolean value>, <boolean value>)
+ xor(<boolean value 1>, <boolean value 2>[, ... , <boolean value N>])
- Takes two booleans, and returns a 1 if one, and only one of the two
- inputs is equivalent to true(1). See BOOLEAN VALUES.
+ Takes two or more booleans and returns a 1 if one, and only one, of
+ the inputs is equivalent to true(1).
- See also: and(), or(), not(), nor()
+See also: BOOLEAN VALUES, and(), or(), not(), nor()
& XVCON()
& XCON()
xcon(<object>, <start>, <count>)
xvcon() is identical, except it follows the restrictions of
lvcon()
- See also: ncon(), lcon(), lvcon()
+See also: ncon(), lcon(), lvcon()
& XVEXITS()
& XEXITS()
xexits(<room>, <start>, <count>)
xvexits() is identical, except it follows the restrictions of
lvexits()
- See also: nexits(), lexits(), lvexits()
+See also: nexits(), lexits(), lvexits()
& XVPLAYERS()
& XPLAYERS()
xplayers(<object>, <start>, <count>)
xvplayers() is identical, except it follows the restrictions of
lvplayers()
- See also: nplayers(), lplayers(), lvplayers()
+See also: nplayers(), lplayers(), lvplayers()
& XVTHINGS()
& XTHINGS()
xthings(<object>, <start>, <count>)
xvthings() is identical, except it follows the restrictions of
lvthings()
- See also: nthings(), lthings(), lvthings()
+See also: nthings(), lthings(), lvthings()
& XWHO()
& XWHOID()
& XMWHO()
xwhoid() and xmwhoid() return objids instead of dbrefs.
- See also: lwho(), mwho(), nwho()
+See also: lwho(), mwho(), nwho()
& ZMWHO()
zmwho(<object>)
The viewer must either have see_all privileges or pass the zone
lock of the zone to use the function.
- See also: zwho()
+See also: zwho()
& ZWHO()
zwho(<object>[, <viewer>])
If <viewer> is given by a privileged user, zwho() returns a dbref list
using <viewer>'s privileges.
- See also: zmwho()
+See also: zmwho()
& ZEMIT()
& NSZEMIT()
zemit(<zone>, <message>)
4. The ZMO is set VISUAL.
5. The attribute being checked is set VISUAL.
- See the help for UFUN() for more details on user-defined functions.
+ See 'help UFUN()' for more details on user-defined functions.
& ZONE()
zone(<object>[, <new zone>])
which defines the zone. If the second argument is specified, the
function tries to change the zone on the object before reporting it.
- See also: ZONES
+See also: ZONES
Test 2, success.
Test 3, success.
- See also: ATTRIBUTES, SUBSTITUTION, @asuccess, @dolist
+See also: ATTRIBUTES, SUBSTITUTION, @asuccess, @dolist
& ANCESTORS
ANCESTORS
parent chain. There is one ancestor for each object type (room, exit,
thing, player), and @config lists the dbref of each ancestor object
(@config ancestor_room, etc.) Under normal circumstances, if an attribute
- can't be retrieve from an object or any of its explicit parents,
- the attribute will be looked on on the appropriate ancestor.
+ can't be retrieved from an object or any of its explicit parents,
+ the attribute will be looked for on the appropriate ancestor.
The ORPHAN flag may be set on an object to cause lookups on that
object to ignore ancestors (like the pre-ancestor behavior).
^-commands; you should use the master room for global commands,
instead.
- See also: PARENTS, ORPHAN
+See also: PARENTS, ORPHAN
& ANONYMOUS ATTRIBUTES
& LAMBDA
& #LAMBDA
pieces of code. Anything long or complicated should go in an
actual attribute, for readability and maintainability.
- See HELP ANONYMOUS2 for examples.
+ See 'HELP ANONYMOUS2' for examples.
& ANONYMOUS2
A typical usage of anonymous attributes would be to convert
a list of dbrefs to names, as so:
filter(). However, this can lead to problems with evaluating un-trusted
code. Use secure() or escape() where neccessary.
- See HELP ANONYMOUS3 for another example.
+ See 'HELP ANONYMOUS3' for another example.
& ANONYMOUS3
You can also use lit() to avoid having the code evaluated twice, if
You must control an object in order to set attributes on it.
- See also: @atrlock, @atrchown, ATTRIBUTES
+See also: @atrlock, @atrchown, ATTRIBUTES
& ATTRIBUTES
& ATTRIBUTES LIST
& ATTRIBUTE LIST
&<attribute name> <object>=<content>
It is also possible to have non-standard attributes, which can be named
- anything you like. Please see help NON-STANDARD ATTRIBUTES for more
+ anything you like. Please see 'help NON-STANDARD ATTRIBUTES' for more
information on those.
(continued in help attributes3)
non-zero number TRUE TRUE
#<non-negative> TRUE FALSE *
#<negative> FALSE FALSE
+
null string FALSE FALSE
0<non-numbers..> TRUE FALSE *
<non-numbers...> TRUE FALSE *
(note: These rules only apply when a function expects a Boolean
value, not for strings that expect other values.)
- See also: BOOLEAN FUNCTIONS, not(), t()
+See also: BOOLEAN FUNCTIONS, not(), t()
& CLIENTS
Clients are special software programs that you can use to connect to
MUSHes. They are usually much nicer to use than raw telnet and give you
There's also one special case: anyone can @link an unlinked exit
(at which point the exit is @chowned to the linker).
- See also: controls(), TRUST, MISTRUST, ZONES, SHARED PLAYERS
+See also: controls(), TRUST, MISTRUST, ZONES, SHARED PLAYERS
& COSTS
These are usually:
and Rhost [Rhost] servers, as well as to the players of Belgariad MUSH,
DuneMUSH, and M*U*S*H, and everyone else using this server!
- See also: help code, help license
+See also: help code, help license
& DATABASE
& DBREFS
& DBREF NUMBER
flag is 'O' (o), which looks like '0' (zero) on some clients. Make sure
you have the right number before using it in your code!
- See also: MYOPIC, OPAQUE, MUSHCODE
+See also: MYOPIC, OPAQUE, MUSHCODE
& DROP-TOS
When you use the @link command on a room, it sets another room or
Drop-tos are useful for keeping rooms uncluttered.
- See also: @link, STICKY, LINK_OK, @lock
+See also: @link, STICKY, LINK_OK, @lock
& %#
& %N
& %~
replaced with the name of the enactor (the person who typed 'get <object>'
in this case).
- See also: EXECUTOR, SUBSTITUTION, DBREF
+See also: EXECUTOR, SUBSTITUTION, DBREF
& EVALUATION ORDER
Whenever some text is entered by an object or thing, the MUSH program
attempts to match it against a valid game command in the following
command on the box, so Cyclonus was still the enactor, but the box was
the object that was actually doing the @emit, and was thus the executor.
- See also: ENACTOR, SUBSTITUTION
+See also: ENACTOR, SUBSTITUTION
& EXITS
An exit is a one-way link that takes you from its source room to its
destination room. To open an exit from a room, you must control that room.
Anyone can create variable exits, but the destinations must be to places
that the exit can normally @link to.
- See also: @link, @open, link_ok, CLOUDY, TRANSPARENT, @firstexit
+See also: @link, @open, link_ok, CLOUDY, TRANSPARENT, @firstexit
& FAILURE
FAILURE
more information. However, there are failure messages at this time
only for the above.
- See also: @lock, @fail, @efail, @lfail
+See also: @lock, @fail, @efail, @lfail
& GENDER
& SEX
Gender on a MUSH is entirely up to you. You can set yourself (or any
is in the SEX attribute is not recognizable, the MUSH will assume
the object is neuter. Setting a gender attribute will enable
pronoun substitution by the MUSH. The SEX attribute is visual to
- anyone who wants to see it.
+ anyone who wants to see it.
- See also: @sex, SUBSTITUTION
+See also: @sex, SUBSTITUTION
& GLOBALS
& GLOBAL COMMANDS
A command is "global" if it can be used anywhere in the world of the
MUSH, but you can usually find MUSH-specific help on them by
typing "+help".
- See also: MASTER ROOM, USER-DEFINED COMMANDS, EVALUATION
+See also: MASTER ROOM, USER-DEFINED COMMANDS, EVALUATION
& HERE
The word 'here' refers to the room you are in. For example,
to rename the room you're in (if you control it), you could enter
You can set the drop-to in a room to home by doing:
@link <room dbref or "here">=home
- See also: DROP-TOS, @link, STICKY, LINK_OK, FIXED, EXITS
+See also: DROP-TOS, @link, STICKY, LINK_OK, FIXED, EXITS
& INTERIORS
Here's a quick description of how to make things that can be entered:
messages and people on the inside from seeing the 'ox' messages which
is a good thing.)
- See also: enter, leave, @prefix, @filter, AUDIBLE, @listen
+See also: enter, leave, @prefix, @filter, AUDIBLE, @listen
& LAST & LASTLOGOUT
LAST and LASTLOGOUT
objects or yourself to that room if it is set ABODE, and can set
the destination of exits to that room if it is LINK_OK.
- See also: LINK_OK, ABODE, @link
+See also: LINK_OK, ABODE, @link
& LISTENING
There are two basic ways to trigger action on the MUSH. The basic way
Listen patterns are checked after the object's normal @listen attribute.
- See also: @listen, @ahear, @amhear, @aahear, MONITOR,
- USER-DEFINED COMMANDS, LISTEN_PARENT
+See also: @listen, @ahear, @amhear, @aahear, MONITOR, LISTEN_PARENT,
+ USER-DEFINED COMMANDS
& LISTS
The word "list" is used in the help files to refer to a string that
is made up of similar items (so the fourth list in the example is NOT a
typical one).
- See also: STRINGS, List Functions
+See also: STRINGS, List Functions
& LOOPING
Looping in an object can have its good parts and its bad parts.
The good part is when you activate part of a program multiple times
machine that isn't @halt'd will drain your pennies while you are away
from the mush!
- See also: @ps, HALT, COSTS, @trigger
+See also: @ps, HALT, COSTS, @trigger
& MASTER ROOM
The Master Room enables global commands and exits. Exits in the Master
a global command that you would like to see enabled for the MUSH, speak
to a wizard.
- See also: EVALUATION, GLOBAL COMMANDS
+See also: EVALUATION, GLOBAL COMMANDS
& ME
The word 'me' refers to yourself. Some things to do when
starting out:
3) lock yourself: @lock me==me
4) set your gender: @sex me=<male|female|neuter|plural>
- See also: help newbie, help @lock, help @describe, help @sex
+See also: help newbie, help @lock, help @describe, help @sex
& MONEY
The MUSH has a built-in money system, which gives a starting amount
of money to new players and hands out a daily allowance thereafter.
All attributes can be used in attribute locks and can be 'owned'
independent of object ownership.
- See also: ATTRIBUTES, ATTRIB-OWNERSHIP, Attribute Functions,
- ATTRIBUTE TREES
+See also: ATTRIBUTES, ATTRIB-OWNERSHIP, Attribute Functions, ATTRIBUTE TREES
& PARENT
& PARENTS
& OBJECT PARENTS
#18 :waves hello
Punch> Punch waves hello
- See also: PUPPET, @force, DBREF
+See also: PUPPET, @force, DBREF
& QUEUE
QUEUE
(wizards, you, and your objects) or unless you are VISUAL. It
tracks how many active commands you have in the queue.
- See also: @ps, LOOPING
+See also: @ps, LOOPING
& REGEXP
& REGEXPS
(This help text is largely from TinyMUSH 2.2.4, with permission)
The registers can also be accessed using the V-function (v(0) through v(9)).
- Please see help setq() for more information about the setq registers.
+ Please see 'help setq()' for more information about the setq registers.
- See also: SUBSTITUTIONS, @trigger, USER-DEFINED COMMANDS, setq()
+See also: SUBSTITUTIONS, @trigger, USER-DEFINED COMMANDS, setq()
& RQUOTA
RQUOTA
This attribute tracks remaining building quota if it is implemented.
It is settable in-game only by a wizard, and is only visible to wizards.
- See also: @quota, @squota
+See also: @quota, @squota
& SEMAPHORES
The most complicated thing about semaphores is their name. Before you try
to use semaphores, you should first be familiar with the "@wait" command.
[ 30 seconds passes. ]
Wizard waits 30 seconds.
- See also: @wait, @drain, @notify
+See also: @wait, @drain, @notify
(continued in help semaphores4)
& SEMAPHORES4
Semaphores can be used to enforce mutual exclusion - to prevent
attributes can be used, as long as they follow a few simple rules:
If the attribute is already set, it has to have the same owner (God)
and flags as the SEMAPHORE attribute would (typically no_inherit, no_clone,
- and locked - see help @set and @atrlock), and have a numeric or empty
+ and locked - see 'help @set' and '@atrlock'), and have a numeric or empty
value. If it's not set, it can't be one of the built in attributes
(See @list attribs) unless, naturally, it is SEMAPHORE.
Foozle 09blert bar baz foo.
- See also: string functions
+See also: string functions
& %
& SUBSTITUTIONS
The % symbol is used in MUSH commands to indicate a substitution -- some
%! = #11
%L = #13
- See also: EVALUATION, ENACTOR, EXECUTOR, DBREFS, v()
+See also: EVALUATION, ENACTOR, EXECUTOR, DBREFS, v()
& SUCCESS
A "success" normally occurs when you attempt to do something that is
restricted by an @lock and you pass the @lock. (Note that if no lock
more information. Many of these actions have standard attributes that
you can set messages in for when someone succeeds.
- See also: FAILURE, @lock, VERBS, ATTRIBUTES, @success, @asuccess, @osuccess
+See also: FAILURE, @lock, VERBS, ATTRIBUTES, @success, @asuccess, @osuccess
& SWITCHES
SWITCHES
Help on the switches available for a command is available in the help
file for that command.
- (If you are looking for information on @switch, see help @switch instead.)
+ (If you are looking for information on @switch, see 'help @switch'.)
& TYPES OF OBJECTS
Everything on a MUSH is an object in the MUSH database. There are four
commands. Can send @mail as themselves. You can have $-commands and
^-patterns on things. Things can carry, be carried, and can follow.
- See also: EXITS, USER-DEFINED COMMANDS, LISTENING, GLOBALS
+See also: EXITS, USER-DEFINED COMMANDS, LISTENING, GLOBALS
& $-COMMANDS
& MACROS
& USER-DEFINED COMMANDS
*BE SURE TO @LOCK/USE ME==ME IF YOU SET MACROS ON YOURSELF!*
- See also: STACK, SUBSTITUTIONS, @lock
+See also: STACK, SUBSTITUTIONS, @lock
& VERBS
For most verbs there are three forms: Verb (what the Enactor sees),
Overb (what others in the area see) and Averb (the action to be
A backslash (\) can be used to escape * and ? if you want to match
a literal asterisk or question mark.
- See also: USER-DEFINED COMMANDS, REGEXP
+See also: USER-DEFINED COMMANDS, REGEXP
& ZONE MASTER ROOMS
& ZMR
exits, or for zones with restricted commands that can go on a separate
use-locked object from general ones.
- See also: ZONES, MASTER ROOM, EVALUATION
+See also: ZONES, MASTER ROOM, EVALUATION
& ZONE MASTERS
& ZMP
& SHARED PLAYERS
ZMO, and the players @chzoned to it so they can use the commands
anywhere.
- See also: @chzone, SHARED PLAYERS
+See also: @chzone, SHARED PLAYERS
& matching
Matching is the process the MUSH uses to determine which object you
mean when you try to do something with an object. Different commands