Helpfile changes from PennMUSH 182p2
authorRick Bird <nveid@bender.theari.com>
Fri, 25 Mar 2011 17:59:52 +0000 (13:59 -0400)
committerRick Bird <nveid@bender.theari.com>
Fri, 25 Mar 2011 17:59:52 +0000 (13:59 -0400)
game/txt/hlp/cobra_attr.hlp
game/txt/hlp/cobra_chat.hlp
game/txt/hlp/cobra_cmd.hlp
game/txt/hlp/cobra_conf.hlp
game/txt/hlp/cobra_flag.hlp
game/txt/hlp/cobra_func.hlp
game/txt/hlp/cobra_mail.hlp
game/txt/hlp/cobra_pueb.hlp
game/txt/hlp/cobratop.hlp

index 3558c625d1cbb36a868d2636b3300bacd323258a..bb6aceb135b29edbe23ae51dc37b0eb69d966b9c 100644 (file)
@@ -1,3 +1,44 @@
+& ATTRIBUTE FLAGS
+  Attribute flags are set on an object's attributes using @set, or applied
+  to attributes globally using @attrib. Their names (and, when applicable,
+  the character used in examine as shorthand for the flag) include:
+
+  no_command ($)    Attribute will not be checked for '$' commands and
+                    '^' listen patterns.
+  visual (v)        Attribute can be seen by anyone via get(), eval(),
+                    ufun(), zfun(), and similar functions.
+  no_inherit (i)    Attribute will not be inherited by the children of
+                    this object.
+  no_clone (c)      Attribute will not be copied if the object is @clone'd.
+  regexp (R)        Match $-commands and ^-listens using regular expressions.
+                    See 'help regexps'.
+  case (C)          Match $-commands and ^-listens case sensitively.
+  safe (S)          Attribute may not be modified, without unsetting this flag.
+  mortal_dark (m)   Attribute cannot be seen by mortals. This flag can only
+                    be set by royalty and wizards.  "hidden" is a synonym.
+
+  Continued in 'help attribute flags2'
+& ATTRIBUTE FLAGS2
+  noname (N)        Attribute won't show name in @o-* messages.
+  nospace (s)       Attribute won't append a space in @o-* messages.
+  wizard (w)        Attribute can only be set by wizards.
+                    This flag can only be set by royalty and wizards.
+  veiled (V)        Attribute value will not be shown on default examine,
+                    but is still otherwise accessible (for spammy attribs).
+  debug (b)         Show debug output when this attribute is evaluated.
+  nearby (n)        Even if this attribute is visual, it can only be
+                    retrieved if you're co-located with the object.
+  public (p)        This attribute can be evaluated by any object, even
+                    if safer_ufun is in use. DANGEROUS! AVOID!
+  aahear (A)        ^-listens on this attribute match like @aahear
+  amhear (M)        ^-listens on this attribute match like @amhear
+
+  Continued in 'help attribute flags3'
+& ATTRIBUTE FLAGS3
+  prefixmatch       When a user attempts to set an attribute using @<attrib>,
+                    this attribute will be matched down to its unique
+                    prefixes. This flag is primarily used internally.
+  `                 This attribute is a branch. See: help ATTRIBUTE TREES
 & ATTRIBUTE TREES
 & ATTR TREES
 Attributes can be arranged in a hierarchical tree; these are called
@@ -21,7 +62,7 @@ beneath it; a leaf attribute is one that does not. Any attribute may
 act as a branch. If you try to create an unsupported leaf, branch
 attributes will be created as needed to support it.
 
-See help attribute trees2 for more information and examples.
+See 'help attribute trees2' for more information and examples.
 
 & ATTRIBUTE TREES2
 & ATTR TREES2
@@ -42,7 +83,7 @@ and displays all attributes.
 Branch attributes will be displayed with a ` in the attribute flags
 on examine. 
 
-See help attribute trees3 for more information and examples.
+See 'help attribute trees3' for more information and examples.
 
 & ATTRIBUTE TREES3
 & ATTR TREES3
@@ -67,7 +108,8 @@ They're also handy for things like character attributes:
   &CHAR`SKILLS #30 = coding:3 documentation:1 obfuscation:5
   ...
 
-See help attribute trees4 for information about @parent and attribute trees.
+See 'help attribute trees4' for information about @parent and attribute trees.
+
 & ATTRIBUTE TREES4
 & ATTR TREES4
 Attribute trees interact with @parent in several ways.
index 22979652d845a062566935cf0415fcd8c9298517..2d0d3084f5589810e1dc3768aded0d7d7a396c9a 100644 (file)
@@ -43,7 +43,7 @@
   is not evaluated. This command is intended for use in writing
   extended chat systems.
 
-  See also: chat
+See also: chat
 & @channel
   @channel/list [<channel-prefix>]
   @channel/what [<channel-prefix>]
@@ -67,7 +67,9 @@
   @channel/what will show you the channel's name, access information,
   and a description of the channel's purpose.
 
-  More commands are provided in "help @channel2".  See also: chat
+  More commands are provided in "help @channel2".
+  
+See also: chat
 & @channel2
   @channel/who <channel>
   @channel/hide <channel> = <yes|no>
 
   @channel/delete removes a channel. You must own it or be Wizard.
   @channel/desc sets the channel's description, shown on @channel/what.
-    Descriptions are limited to 256 characters.
+    Descriptions are limited to 256 characters. If there are any commas
+    in the description, the whole string should be enclosed in {}'s.
   @channel/rename is used to rename a channel.
 
   See "help @channel5" for more. See also "help @clock".
@@ -322,7 +325,7 @@ specific indirect lock instead of the default one:
   With two arguments, sets the lock if you would be able to do so via
   @clock.
 
-  See also: @clock
+See also: @clock
 & CRECALL()
   crecall(<channel>[, <lines> [, <start line> [, <osep> [, <timestamps?> ]]]])
 
@@ -331,7 +334,7 @@ specific indirect lock instead of the default one:
   <osep>. If <timestamps?> is a true value, the recalled lines will
   include their timestamps; otherwise, they will not.
 
-  See also: @channel3
+See also: @channel3
 & Channel functions
   Channel functions work with the channel system.
 
index e5d671593434d5bf6bddffb52d9b69030ca9e1e6..9d270747db240918e440293bbec7f532a2f0cde8 100644 (file)
@@ -16,6 +16,8 @@ Help is available for the following MUSH commands:
  
   @-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
@@ -289,7 +291,7 @@ See also: leave, @lfail, @olfail, ACTION LISTS
 
   @alias has no effect on non-players.
 
-  See also: @name, alias(), fullalias()
+See also: @name, alias(), fullalias()
 & @allhalt
   @allhalt
 
@@ -458,7 +460,7 @@ See also: use, @use, ACTION LISTS, @charges, @runout
   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
@@ -566,10 +568,10 @@ See also: ZONES, @chzoneall
   
 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
@@ -698,7 +700,7 @@ See also: @create
   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>]
 
@@ -723,7 +725,7 @@ See also: @create
   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>]
 
@@ -735,7 +737,7 @@ See also: @create
   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>]
 
@@ -749,7 +751,7 @@ See also: @create
   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>]
 
@@ -763,7 +765,7 @@ See also: @create
   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> 
 
@@ -812,16 +814,16 @@ See also: ATTRIBUTES, NON-STANDARD ATTRIBUTES
 & @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
@@ -989,8 +991,8 @@ See also: SAFE, GOING, DESTROY_OK
     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>
@@ -1043,13 +1045,13 @@ See also: @poll, WHO, DOING
   @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]
  
@@ -1073,7 +1075,7 @@ See also: @poll, WHO, DOING
   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
@@ -1255,7 +1257,7 @@ See also: @lock, locktypes, @elock
   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>]
 
@@ -1337,6 +1339,13 @@ See also: @search
   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>]
 
@@ -1368,13 +1377,6 @@ See also: @filter, @prefix, AUDIBLE, PUPPET
   @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>
 
@@ -1395,7 +1397,7 @@ See also: follow, unfollow, followers(), @ounfollow, @aunfollow
   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
@@ -1437,7 +1439,7 @@ See also: PUPPET, DBREF
       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:
@@ -1897,56 +1899,40 @@ For example:
   > 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.
@@ -2087,7 +2073,7 @@ EVALUATION LOCKS
 
     @lock <object>=objid^<object id>
 
-See also: locktypes, @clock, objid()
+See also: locktypes, @clock, elock(), lock(), objid()
 & locktypes
 & locklist
 & lock types
@@ -2123,13 +2109,13 @@ See also: locktypes, @clock, objid()
   @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>
 
@@ -2152,7 +2138,7 @@ See also: locktypes, @clock, objid()
   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>
 
@@ -2161,7 +2147,7 @@ See also: locktypes, @clock, objid()
   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>
  
@@ -2243,7 +2229,7 @@ See also: go, @omove, @oxmove, @amove
   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>
 
@@ -2461,7 +2447,7 @@ See also: go, @move, @omove, @amove
   
   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
@@ -2472,8 +2458,8 @@ See also: give, @cost, @payment, @apayment, MONEY
   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,
@@ -2481,7 +2467,7 @@ See also: give, @cost, @payment, @apayment, MONEY
   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
@@ -2497,7 +2483,7 @@ See also: EXITS, @link, @dig
   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.
 
@@ -2578,7 +2564,7 @@ See also: PARENTS, parent(), lparent()
   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
@@ -2645,7 +2631,7 @@ See also: give
   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>
@@ -2755,7 +2741,7 @@ See also: @motd, @list, @listmotd
    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
   
@@ -3068,7 +3054,7 @@ See also: GENDER, SUBSTITUTION
 
   Example: @sql SHOW TABLES
 
-  See also: sql(), sqlescape(), mapsql()
+See also: sql(), sqlescape(), mapsql()
 & @squota
   @squota <victim> [= [+|-] <amount>]
 
@@ -3121,12 +3107,12 @@ See also: @osuccess, @asuccess
 & @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).
  
@@ -3202,7 +3188,7 @@ See also: switch wildcards, @select, switch()
   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>]
 
@@ -3214,7 +3200,7 @@ See also: switch wildcards, @select, switch()
   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.
@@ -3355,7 +3341,7 @@ See also: use, @ouse, @ause, @charges, @runout
   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
@@ -3409,14 +3395,15 @@ See also: USER-DEFINED COMMANDS, STACK, @trigger, @select
   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:
  
@@ -3703,7 +3690,7 @@ See also: news, help
     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>
 
@@ -3714,8 +3701,8 @@ See also: news, help
   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
@@ -3771,7 +3758,7 @@ See also: @lock, ENTER_OK, give, drop, @success, inventory
   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>]
 
@@ -3779,7 +3766,7 @@ See also: @lock, ENTER_OK, give, drop, @success, inventory
   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>]
 
@@ -3789,7 +3776,7 @@ See also: @lock, ENTER_OK, give, drop, @success, inventory
   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>:...]
 
@@ -3805,7 +3792,7 @@ See also: @lock, ENTER_OK, give, drop, @success, inventory
   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>]
 
@@ -3825,7 +3812,7 @@ See also: @lock, ENTER_OK, give, drop, @success, inventory
   > 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>
@@ -4042,7 +4029,7 @@ See also: @lock, @alias, pose, :, ;, HAVEN, NOSPOOF, FLAGS
   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
   
@@ -4130,3 +4117,15 @@ See also: @doing, @poll, DOING
   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
index abf43ebb0ecaadadbe275a4ffa8fed75d6045291..b0ad3707454db0eaf49df87890ab7689b75d3458 100644 (file)
@@ -223,7 +223,7 @@ Continued in help @config limits3
    considered a 0?
   tiny_booleans=<boolean>: Use Tiny-style boolean values where only
    non-zero numbers are true.
-  tiny_trim_func=<boolean>: Are the second and third arguments to trim()
+  tiny_trim_fun=<boolean>: Are the second and third arguments to trim()
    reversed?
   tiny_math=<boolean>: Is a string where a number is expected considered
    a 0?
index b572a4c90fc1a89f8b09fc3b0cadb338a28c6042..3ea10426df7c66186f0c652f8fe456628004257b 100644 (file)
@@ -31,8 +31,8 @@
   indicate the TYPE of an object. The absence of these four special flags
   indicates the object is of type THING.
 
-  See also: examine, flags(), hasflag(), orflags(), andflags(),
-  orlflags(), andlflags(), types of objects, type(), hastype(), @flag
+See also: examine, flags(), hasflag(), orflags(), andflags(), orlflags(),
+  andlflags(), types of objects, type(), hastype(), @flag
 & FLAG LIST
 & FLAGS LIST
 Flag  Title           Flag  Title              Flag  Title
@@ -81,7 +81,7 @@ which are available.
   To make a room your home, type '@link me=here' while standing in the
   room.
 
-  See also: @link
+See also: @link
 & ANSI
   Flag:  ANSI  (players)
   
@@ -95,7 +95,7 @@ which are available.
   See also the COLOR flag. If COLOR is not set, and ANSI is, you will
   see vt100 ANSI codes, but not color ANSI codes.
 
-  See also: COLOR, ansi(), @config
+See also: COLOR, ansi(), @config
 & AUDIBLE
   Flag:  AUDIBLE  (all types)
 
@@ -152,7 +152,7 @@ which are available.
   > <a whole buncha commands>
   GAME: Object Walker(#123) lost a Penny to queue loss.
 
-  See also: no_pay
+See also: no_pay
 & BUILDER
   BUILDER 
 
@@ -169,7 +169,7 @@ which are available.
   You must be carrying the thing, or in the room in order to set the
   flag, unless you use the DBREF number.
 
-  See also: @chown
+See also: @chown
 & CLOUDY
   Flag:  CLOUDY (exits)
 
@@ -186,7 +186,7 @@ which are available.
   When set on a player, this flag allows the player to see ANSI color.
   The ANSI flag must also be set.
 
-  See also: ANSI, ansi()
+See also: ANSI, ansi()
 & CONNECTED
   Flag:  CONNECTED  (players)
 
@@ -197,7 +197,7 @@ which are available.
   Mortal code can't use hasflag(<x>,connected) to test if a player is 
   connected. Consider using conn(), lwho(), or mwho() instead.
 
-  See also: conn(), lwho(), mwho()
+See also: conn(), lwho(), mwho()
 & DARK
   Flag:  DARK  (all types)
 
@@ -273,7 +273,7 @@ which are available.
 
   DESTROY_OK takes precedence over SAFE.
 
-  See also: @destroy
+See also: @destroy
 & ENTER_OK
   Flag:  ENTER_OK  (all types)
  
@@ -286,7 +286,7 @@ which are available.
 
   This flag has no effect on rooms.
 
-  See also: enter, leave, give, @lock
+See also: enter, leave, give, @lock
 & FIXED
   Flag: FIXED (players)
   
@@ -326,7 +326,7 @@ which are available.
   actions, listen, be triggered, evaluate functions or substitutions,
   etc.
 
-  See also: @halt, @restart
+See also: @halt, @restart
 & HAVEN
   Flag:  HAVEN (players, rooms)
 
@@ -379,7 +379,7 @@ which are available.
   Objects, players, and exits which have the LIGHT flag set on them
   (and are not also set DARK) appear in the contents of DARK rooms.
 
-  See also: DARK
+See also: DARK
 & LINK_OK
   Flag: LINK_OK  (rooms, things)
 
@@ -414,7 +414,7 @@ which are available.
   object numbers.  This flag is only valid for players; objects belonging 
   to MYOPIC players are automatically considered to be MYOPIC.
 
-  See also: DBREF
+See also: DBREF
 & MISTRUST
   Flag:  MISTRUST  (things, rooms, exits)
 
@@ -429,14 +429,14 @@ which are available.
   and don't want those objects to be able to affect your objects.
 
 
-  See also: control
+See also: control
 & NOACCENTS
   Flag: NOACCENTS  (players)
 
   This flag causes all accented characters to be converted to non-accented
   before being sent to a connection. See HELP STRIPACCENTS() for caveats.
 
-  See also: i18n, accent(), stripaccents()
+See also: i18n, accent(), stripaccents()
 & NO_COMMAND
   Flag:  NO_COMMAND  (all types)
   
@@ -447,7 +447,7 @@ which are available.
   be set NO_COMMAND. Many MUSHes choose to have all objects initially set
   NO_COMMAND at creation. The flag has no effect on exits.
 
-  See also: USER-DEFINED COMMANDS
+See also: USER-DEFINED COMMANDS
 & NO_LEAVE
 & NOLEAVE
   Flag: NO_LEAVE (objects)
@@ -456,7 +456,7 @@ which are available.
   Attempts to leave the object will trigger its @LFAIL, @OLFAIL,
   and @ALFAIL, if set.
 
-  See also: leave
+See also: leave
 & NO_TEL
   Flag:  NO_TEL  (rooms)
 
@@ -530,7 +530,7 @@ which are available.
 
   Meaningless for rooms.
 
-  See also: TRANSPARENT, look
+See also: TRANSPARENT, look
 & ORPHAN
   Flag:  ORPHAN   (all types)
 
@@ -539,7 +539,7 @@ which are available.
   retrieved from the ancestor. It has no effect on the object's 
   true @parents, only on its use of the ancestor.
 
-  See also: @parent, ancestors
+See also: @parent, ancestors
 & PLAYER
   Flag:  PLAYER  (player)
 
@@ -637,7 +637,7 @@ See: @force, PUPPETS
   the exit's description.  The exit list and succ/fail messages of the
   room will NOT be displayed. See also CLOUDY.
 
-  See also: CLOUDY, OPAQUE, EXITS, @exitformat
+See also: CLOUDY, OPAQUE, EXITS, @exitformat
 & UNFINDABLE
   Flag:  UNFINDABLE  (all types)
   
@@ -673,7 +673,7 @@ See: @force, PUPPETS
   "#<object>] <command>". Something like "#1300] @trigger me/test" is a
   good example of typical VERBOSE output.
 
-  See also: PUPPET, DEBUG
+See also: PUPPET, DEBUG
 & VISUAL 
   Flag:  VISUAL  (all types)
 
@@ -682,7 +682,7 @@ See: @force, PUPPETS
   It does not enable them to make changes to the object. Very useful
   for getting help with code.
 
-  See also: examine, brief
+See also: examine, brief
 & WIZARD
   Flag:  WIZARD    (all types)
 
@@ -701,7 +701,7 @@ See: @force, PUPPETS
   rooms zoned to it. Like NO_TEL, the "home" command will still work.
   This flag is intended for use in puzzle rooms and IC areas.
 
-  See also: ZONES, ZONE MASTERS, @chzone, ZONE MASTER ROOMS
+See also: ZONES, ZONE MASTERS, @chzone, ZONE MASTER ROOMS
 & SHARED
 & ZONE
   Flag:  SHARED   (players) 
@@ -710,7 +710,7 @@ See: @force, PUPPETS
   Objects owned by a Zone Master are controlled by anyone who passes the 
   player's zone lock.  
 
-  See also: ZONE MASTERS
+See also: ZONE MASTERS
 & LISTEN_PARENT
   Flag:  LISTEN_PARENT (things, rooms)
   
@@ -718,5 +718,5 @@ See: @force, PUPPETS
   flag causes ^ listen patterns to be checked on the object's parents as
   well as on the object.
 
-  See also: MONITOR, LISTENING
+See also: MONITOR, LISTENING
 
index 3e2474be601bd0406dc4506a106a127922e0c0e5..7e03d5bd85d201b8526e0a213a8ee0981138e935 100644 (file)
@@ -1,7 +1,7 @@
 & 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>)
 
@@ -1417,7 +1430,7 @@ Continued in HELP FOREACH2
     > say [foreach(is_alphanum,jt1o+)]
     You say, "1 1 1 1 0 "
 
-  See also: anonymous attributes
+See also: anonymous attributes
  
 & FRACTION()
   fraction(<number>)
@@ -1472,8 +1485,8 @@ Continued in HELP FOREACH2
   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()
@@ -1495,7 +1508,7 @@ Continued in HELP FOREACH2
   > 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()
@@ -1604,7 +1617,7 @@ Continued in HELP FOREACH2
   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>)
@@ -1624,7 +1637,7 @@ Continued in HELP FOREACH2
   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>)
 
@@ -1635,7 +1648,7 @@ Continued in HELP FOREACH2
   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>)
@@ -1654,7 +1667,8 @@ Continued in HELP FOREACH2
 
   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>)
   
@@ -1674,7 +1688,7 @@ Continued in HELP FOREACH2
     blue tribble^
     cute doll"
 
-  See also: extract(), elements(), grab()
+See also: extract(), elements(), grab()
 & INSERT()
   insert(<list>, <position>, <new item>[,<single-character separator>])
 
@@ -1713,14 +1727,14 @@ Continued in HELP FOREACH2
   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>)
 
@@ -1729,7 +1743,7 @@ Continued in HELP FOREACH2
   the characters in the string must be digits, and an optional decimal
   point.
 
-  See also: isint()
+See also: isint()
 & ISWORD()
   isword(<string>)
   
@@ -1780,8 +1794,8 @@ Continued in HELP FOREACH2
   <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.
@@ -1861,13 +1875,13 @@ Continued in HELP ITER2
   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>])
@@ -1884,7 +1898,7 @@ Continued in HELP ITER2
 
   lattrp() also includes attributes inherited from parents.
 
-  See also: nattr(), examine
+See also: nattr(), examine
 & NATTR()
 & NATTRP()
 & ATTRCNT()
@@ -1901,7 +1915,7 @@ Continued in HELP ITER2
 
   nattrp() and attrpcnt() also count matching attributes on the parent.
 
-  See also: lattr()
+See also: lattr()
 & LCON()
   lcon(<object>)
 
@@ -1913,14 +1927,14 @@ Continued in HELP ITER2
   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>])
   
@@ -1938,6 +1952,7 @@ Continued in HELP ITER2
 
   Returns the first <length> characters from string.
 
+See also: left(), mid()
 & NSLEMIT()
 & LEMIT()
   lemit(<message>)
@@ -1958,7 +1973,7 @@ Continued in HELP ITER2
   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>])
   
@@ -1976,7 +1991,8 @@ Continued in HELP ITER2
     You say, "
     0foo---7
     01234567"
+
+See also: align(), center(), rjust()
 & LINK()
   link(<name>, <destination>[, <preserve>])
  
@@ -2021,7 +2037,7 @@ Continued in HELP ITER2
   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)
@@ -2068,7 +2084,7 @@ Continued in HELP ITER2
   > 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>)
  
@@ -2125,7 +2141,8 @@ for an object named "Test", preferring a thing over other types.
 
   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>)
@@ -2140,7 +2157,7 @@ for an object named "Test", preferring a thing over other types.
   > th llocks(me)
   Basic USER:ITSME Use
 
-  See also: lock(), lset(), lockflags(), llockflags()
+See also: lock(), lset(), lockflags(), llockflags()
 & LOCKFLAGS()
   lockflags(<object>[/<locktype>])
   lockflags()
@@ -2152,7 +2169,7 @@ for an object named "Test", preferring a thing over other types.
   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()
@@ -2163,7 +2180,7 @@ for an object named "Test", preferring a thing over other types.
   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>)
   
@@ -2189,14 +2206,14 @@ for an object named "Test", preferring a thing over other types.
   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>)
 
@@ -2213,7 +2230,7 @@ for an object named "Test", preferring a thing over other types.
   > say lpos(a-bc-def-g, -)
   You say, "1 4 8"
 
-  See also: pos()
+See also: pos()
 & LSEARCH()
 & NLSEARCH()
 & SEARCH()
@@ -2299,14 +2316,14 @@ for an object named "Test", preferring a thing over other types.
   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>)
 
@@ -2334,7 +2351,7 @@ for an object named "Test", preferring a thing over other types.
 
   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>]])
   
@@ -2357,7 +2374,7 @@ for an object named "Test", preferring a thing over other types.
     > 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>])
 
@@ -2373,7 +2390,7 @@ for an object named "Test", preferring a thing over other types.
   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>]])
  
@@ -2390,7 +2407,7 @@ for an object named "Test", preferring a thing over other types.
   > 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>])
 
@@ -2401,20 +2418,20 @@ for an object named "Test", preferring a thing over other types.
 
   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().
@@ -2437,7 +2454,7 @@ for an object named "Test", preferring a thing over other types.
     > say [merge(AB[space(2)]EF,abcdef,)]
     You say, "ABcdEF"
 
-  See also: TR()  
+See also: splice(), tr()  
 & MID()
   mid(<string>, <first>, <length>)
 
@@ -2453,7 +2470,7 @@ for an object named "Test", preferring a thing over other types.
     > say mid(foobar, 2, -2)
     You say, "oo"
 
-  See also: LEFT(), RIGHT()  
+See also: left(), right()  
 & MIN()
   min(<number>[, ... , <numberN>])
 
@@ -2471,7 +2488,7 @@ for an object named "Test", preferring a thing over other types.
   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():
  
@@ -2485,7 +2502,7 @@ for an object named "Test", preferring a thing over other types.
   > 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()
@@ -2510,7 +2527,7 @@ for an object named "Test", preferring a thing over other types.
 
   Mod and modulus are just aliases for modulo.
 
-  See also: DIV
+See also: div()
 & MONEY()
   money(<object>)
   money(<integer>)
@@ -2567,7 +2584,7 @@ for an object named "Test", preferring a thing over other types.
   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
@@ -2580,7 +2597,7 @@ for an object named "Test", preferring a thing over other types.
   > 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 
@@ -2591,7 +2608,7 @@ for an object named "Test", preferring a thing over other types.
   > 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()
@@ -2685,7 +2702,7 @@ for an object named "Test", preferring a thing over other types.
 
   Basically the same as [not(eq(<num1>,<num2>))].
 
-  See also: eq(), not()
+See also: eq(), not()
 & NEXT()
   next(<object>)
 
@@ -2703,7 +2720,7 @@ for an object named "Test", preferring a thing over other types.
   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()
 
@@ -2719,14 +2736,14 @@ for an object named "Test", preferring a thing over other types.
   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>)
 
@@ -2735,9 +2752,9 @@ for an object named "Test", preferring a thing over other types.
   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>)
@@ -2754,7 +2771,7 @@ for an object named "Test", preferring a thing over other types.
   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>)
@@ -2765,7 +2782,7 @@ for an object named "Test", preferring a thing over other types.
   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>)
@@ -2776,7 +2793,7 @@ for an object named "Test", preferring a thing over other types.
   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>)
@@ -2787,14 +2804,14 @@ for an object named "Test", preferring a thing over other types.
   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>)
 
@@ -2831,7 +2848,7 @@ for an object named "Test", preferring a thing over other types.
   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()
@@ -2860,7 +2877,7 @@ for an object named "Test", preferring a thing over other types.
   (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>)
   
@@ -2919,7 +2936,7 @@ for an object named "Test", preferring a thing over other types.
   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()
   
@@ -2932,7 +2949,7 @@ for an object named "Test", preferring a thing over other types.
   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>)
@@ -2952,7 +2969,7 @@ for an object named "Test", preferring a thing over other types.
 
   This function returns the current @poll. 
 
-  See also: @poll, doing(), @doing 
+See also: @poll, doing(), @doing 
 & LPORTS()
 & PORTS()
   lports()
@@ -2988,7 +3005,7 @@ for an object named "Test", preferring a thing over other types.
  
   Returns <number> to the power of <exponent>.
 
-  See also: root()
+See also: root()
 & POWERS()
   powers(<object>)
   powers(<object>, <power>)
@@ -3052,7 +3069,7 @@ for an object named "Test", preferring a thing over other types.
   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>)
@@ -3093,13 +3110,13 @@ for an object named "Test", preferring a thing over other types.
   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)
@@ -3130,7 +3147,7 @@ for an object named "Test", preferring a thing over other types.
  
   See 'help regexp syntax' for an explanation of regular expressions.
 
-  See also: regrab()
+See also: regrab()
 & REMIT()
 & NSREMIT()
   remit(<object>, <message>)
@@ -3161,7 +3178,8 @@ for an object named "Test", preferring a thing over other types.
   Example:
     > say [repeat(Test, 5)]
     You say, "TestTestTestTestTest"
-  
+
+See also: space()
 & REPLACE()
   replace(<list>, <position>, <new item>[,<single-character separator>])
   
@@ -3180,7 +3198,7 @@ for an object named "Test", preferring a thing over other types.
 
   Returns a list minus its first element.
 
-  See also: first(), last()
+See also: after(), first(), last()
 & REVWORDS()
   revwords(<list of words>[,<delimiter>[, <output separator>]])
  
@@ -3189,12 +3207,14 @@ for an object named "Test", preferring a thing over other types.
   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>])
   
@@ -3212,7 +3232,8 @@ for an object named "Test", preferring a thing over other types.
     You say, "
     0---foo7
     01234567"
+
+See also: align(), center(), ljust()
 & RLOC()
   rloc(<object>, <levels>) 
   
@@ -3257,20 +3278,20 @@ for an object named "Test", preferring a thing over other types.
   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)
@@ -3308,6 +3329,7 @@ for an object named "Test", preferring a thing over other types.
   special characters; it will scramble these characters just like normal
   characters.
 
+See also: shuffle()
 & SECS()
   secs()
 
@@ -3323,7 +3345,7 @@ for an object named "Test", preferring a thing over other types.
   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>)
@@ -3345,13 +3367,15 @@ for an object named "Test", preferring a thing over other types.
   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>]]])
  
@@ -3359,13 +3383,15 @@ for an object named "Test", preferring a thing over other types.
   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>])
@@ -3390,7 +3416,7 @@ for an object named "Test", preferring a thing over other types.
   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
 
@@ -3416,7 +3442,7 @@ for an object named "Test", preferring a thing over other types.
 
   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
@@ -3442,16 +3468,19 @@ for an object named "Test", preferring a thing over other types.
   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>)
 
@@ -3473,7 +3502,8 @@ for an object named "Test", preferring a thing over other types.
   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>)
 
@@ -3486,7 +3516,7 @@ for an object named "Test", preferring a thing over other types.
   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>]]])
   
@@ -3496,7 +3526,7 @@ for an object named "Test", preferring a thing over other types.
   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.
@@ -3525,7 +3555,7 @@ for an object named "Test", preferring a thing over other types.
   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>]]])
 
@@ -3546,7 +3576,7 @@ for an object named "Test", preferring a thing over other types.
     > 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:
@@ -3573,7 +3603,7 @@ for an object named "Test", preferring a thing over other 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>)
 
@@ -3585,9 +3615,9 @@ for an object named "Test", preferring a thing over other types.
   > 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
@@ -3614,7 +3644,7 @@ for an object named "Test", preferring a thing over other types.
   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)
@@ -3628,6 +3658,8 @@ for an object named "Test", preferring a thing over other types.
   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>
@@ -3785,16 +3817,17 @@ for an object named "Test", preferring a thing over other types.
 
   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>])
   
@@ -3808,7 +3841,8 @@ for an object named "Test", preferring a thing over other types.
   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>]])
 
@@ -3827,8 +3861,9 @@ for an object named "Test", preferring a thing over other types.
   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
@@ -3866,7 +3901,7 @@ for an object named "Test", preferring a thing over other types.
      &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>)
@@ -3884,14 +3919,14 @@ for an object named "Test", preferring a thing over other types.
 
   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>])
   
@@ -3899,7 +3934,7 @@ for an object named "Test", preferring a thing over other types.
   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"
@@ -3917,14 +3952,14 @@ for an object named "Test", preferring a thing over other types.
     > 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()
 
@@ -3938,7 +3973,7 @@ for an object named "Test", preferring a thing over other types.
   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>])
 
@@ -3958,19 +3993,21 @@ for an object named "Test", preferring a thing over other types.
   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>)
 
@@ -3978,11 +4015,13 @@ for an object named "Test", preferring a thing over other types.
   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>)
 
@@ -3996,6 +4035,8 @@ for an object named "Test", preferring a thing over other types.
   strlen(<string>)
 
   Returns the length of the string (The number of characters in it).
+
+See also: words()
 & STRMATCH()
   strmatch(<string>, <pattern>)
   
@@ -4016,6 +4057,8 @@ for an object named "Test", preferring a thing over other types.
   Example:
   > think strreplace(Fix teh typo, 4, 3, the)
   Fix the typo
+
+See also: delete(), strinsert()
 & SUB()
   sub(<num>, <num>)
  
@@ -4038,7 +4081,7 @@ for an object named "Test", preferring a thing over other types.
   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()
@@ -4065,8 +4108,9 @@ for an object named "Test", preferring a thing over other types.
   <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)
@@ -4103,13 +4147,13 @@ for an object named "Test", preferring a thing over other types.
   \ 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>)
@@ -4137,7 +4181,7 @@ for an object named "Test", preferring a thing over other types.
   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>]])
 
@@ -4147,7 +4191,7 @@ for an object named "Test", preferring a thing over other types.
   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>)
 
@@ -4179,16 +4223,16 @@ for an object named "Test", preferring a thing over other types.
 
   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()
@@ -4212,7 +4256,7 @@ for an object named "Test", preferring a thing over other types.
   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>)
 
@@ -4231,7 +4275,7 @@ for an object named "Test", preferring a thing over other types.
   > 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
@@ -4300,7 +4344,7 @@ for an object named "Test", preferring a thing over other types.
   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)]
@@ -4308,7 +4352,7 @@ for an object named "Test", preferring a thing over other types.
   > say [timestring(301,2)]
   You say, "00d 00h 05m 01s"
 
-  See also: stringsecs()
+See also: stringsecs()
 & STRINGSECS()
   stringsecs(<timestring>)
 
@@ -4319,7 +4363,7 @@ for an object named "Test", preferring a thing over other types.
   > say [stringsecs(5m 1s)]
   You say, "301"
 
-  See also: timestring(), etimefmt()
+See also: timestring(), etimefmt()
 & TR()
   tr(<string>, <find>, <replace>)
 
@@ -4339,7 +4383,7 @@ for an object named "Test", preferring a thing over other types.
       > say tr(uryyb, a-z, n-za-m)
        You say, "hello"
 
-  See also: MERGE()
+See also: MERGE()
 & TRIM()
 & TRIMPENN()
 & TRIMTINY()
@@ -4379,12 +4423,12 @@ for an object named "Test", preferring a thing over other types.
   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()
@@ -4398,22 +4442,22 @@ for an object named "Test", preferring a thing over other types.
   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
@@ -4424,13 +4468,33 @@ for an object named "Test", preferring a thing over other types.
   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>]])
  
@@ -4451,13 +4515,13 @@ for an object named "Test", preferring a thing over other types.
     > 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>]])
  
@@ -4479,10 +4543,10 @@ for an object named "Test", preferring a thing over other types.
   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
@@ -4499,14 +4563,14 @@ for an object named "Test", preferring a thing over other types.
   %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.
 
@@ -4518,7 +4582,7 @@ for an object named "Test", preferring a thing over other types.
   > think unique(1|2|3|3, n, |, _)
     1_2_3
 
-  See also: setunion()
+See also: setunion()
 
 & V()
 & V-FUNCTION
@@ -4537,7 +4601,7 @@ for an object named "Test", preferring a thing over other types.
        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>])
@@ -4737,6 +4801,8 @@ for an object named "Test", preferring a thing over other types.
   words(<list>[,<delimiter>])
 
   words() returns the number of elements in <list>.
+
+See also: strlen()
 & WRAP()
   wrap(<string>, <width>[, <first line width>[, <line separator>]])
 
@@ -4766,22 +4832,22 @@ for an object named "Test", preferring a thing over other types.
   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>)
@@ -4796,7 +4862,7 @@ for an object named "Test", preferring a thing over other types.
   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>)
@@ -4812,7 +4878,7 @@ for an object named "Test", preferring a thing over other types.
   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>)
@@ -4827,7 +4893,7 @@ for an object named "Test", preferring a thing over other types.
   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>)
@@ -4842,7 +4908,7 @@ for an object named "Test", preferring a thing over other types.
   xvthings() is identical, except it follows the restrictions of
   lvthings()
 
-  See also: nthings(), lthings(), lvthings()
+See also: nthings(), lthings(), lvthings()
 & XWHO()
 & XWHOID()
 & XMWHO()
@@ -4863,7 +4929,7 @@ for an object named "Test", preferring a thing over other types.
 
   xwhoid() and xmwhoid() return objids instead of dbrefs.
 
-  See also: lwho(), mwho(), nwho()
+See also: lwho(), mwho(), nwho()
 
 & ZMWHO()
   zmwho(<object>)
@@ -4875,7 +4941,7 @@ for an object named "Test", preferring a thing over other types.
   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>])
@@ -4889,7 +4955,7 @@ for an object named "Test", preferring a thing over other types.
   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>)
@@ -4914,7 +4980,7 @@ for an object named "Test", preferring a thing over other types.
   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>])
  
@@ -4922,4 +4988,4 @@ for an object named "Test", preferring a thing over other types.
   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
index e97951bc9426993f5a4bac38cf69181d7ab41982..1ff9ac1b5a0fc9fe3e83632f0eac2c54668e57f4 100644 (file)
         This command moves all messages in msg-list from the current
         folder to a new folder, <folder#>.
 
-  See also: @mailfilter
+See also: @mailfilter
 & @mailfilter
 & mailfilter
   The @mailfilter attribute specifies automatic filing of incoming
   Example: Filter urgent messages into folder 1
   > @mailfilter me=if(strmatch(%3,*U*),1)
 
-  See also: mail-folders
+See also: mail-folders
 & mail-admin
   
   The @mail command can also take the following switches:
index 2375c6673d8bd863a8bba710dc89a48b31eebc0f..5e8db7cf9a4d5e8081d1d868060554cf76cb89f5 100644 (file)
@@ -29,7 +29,7 @@ Pueblo support has been enabled in the server (check @config):
 - Object lists (like the ones found in 'examine') have links
 - Conversion of ANSI sequences to <FONT> tags.
 
-See 'HTML', 'HTML Functions' and '@VRML_URL' for more help.
+See also: 'HTML', 'HTML Functions' and '@VRML_URL' for more help.
 
 & @VRML_URL
 & VRML
@@ -45,7 +45,7 @@ Example:
 To learn about the VRML Format, have a look at the Pueblo Help, which
 mentions several good sites for learning.
 
-See also 'HTML'.
+See also: 'HTML'.
 
 & HTML
 Hyper Text Markup Language (http://www.w3.org)
@@ -56,7 +56,7 @@ one of the MUSH HTML Functions. (See 'HTML Functions').
 
 HTML tags are stripped when sent to non-HTML capable players.
 
-See 'HTML Functions'.
+See also: 'HTML Functions'.
 & HTML FUNCTIONS
 HTML Functions are used to output HTML tags to HTML capable
 users. These tags will be stripped by the system for anything
index 6a7e56424ee69c2d862b6ce9a90edb3257f3161b..cdb579574c8c9987cb96128a67770e8e31444499 100644 (file)
@@ -154,7 +154,7 @@ Type "help <topic name>" for help.
     Test 2, success.
     Test 3, success.
 
-  See also: ATTRIBUTES, SUBSTITUTION, @asuccess, @dolist
+See also: ATTRIBUTES, SUBSTITUTION, @asuccess, @dolist
 & ANCESTORS
   ANCESTORS
 
@@ -167,8 +167,8 @@ Type "help <topic name>" for help.
   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).
 
@@ -181,7 +181,7 @@ Type "help <topic name>" for help.
   ^-commands; you should use the master room for global commands,
   instead.
 
-  See also: PARENTS, ORPHAN
+See also: PARENTS, ORPHAN
 & ANONYMOUS ATTRIBUTES
 & LAMBDA
 & #LAMBDA
@@ -198,7 +198,7 @@ Type "help <topic name>" for help.
   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:
@@ -221,7 +221,7 @@ Type "help <topic name>" for help.
   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
@@ -257,7 +257,7 @@ Type "help <topic name>" for help.
 
   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
@@ -294,7 +294,7 @@ Standard Attributes: (see @list/attribs for the complete 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)
@@ -363,6 +363,7 @@ Standard Attributes: (see @list/attribs for the complete list)
   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               *
@@ -381,7 +382,7 @@ Standard Attributes: (see @list/attribs for the complete list)
   (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
@@ -429,7 +430,7 @@ Standard Attributes: (see @list/attribs for the complete list)
   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:
 
@@ -468,7 +469,7 @@ Standard Attributes: (see @list/attribs for the complete list)
   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
@@ -508,7 +509,7 @@ Standard Attributes: (see @list/attribs for the complete list)
   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
@@ -528,7 +529,7 @@ Standard Attributes: (see @list/attribs for the complete list)
 
   Drop-tos are useful for keeping rooms uncluttered. 
 
-  See also: @link, STICKY, LINK_OK, @lock
+See also: @link, STICKY, LINK_OK, @lock
 & %#
 & %N
 & %~
@@ -551,7 +552,7 @@ Standard Attributes: (see @list/attribs for the complete list)
   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 
@@ -610,7 +611,7 @@ Standard Attributes: (see @list/attribs for the complete list)
   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.
@@ -652,7 +653,7 @@ Standard Attributes: (see @list/attribs for the complete list)
   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  
 
@@ -673,7 +674,7 @@ Standard Attributes: (see @list/attribs for the complete list)
   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
@@ -681,9 +682,9 @@ Standard Attributes: (see @list/attribs for the complete list)
   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
@@ -693,7 +694,7 @@ Standard Attributes: (see @list/attribs for the complete list)
   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 
@@ -716,7 +717,7 @@ Standard Attributes: (see @list/attribs for the complete list)
   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:
         
@@ -749,7 +750,7 @@ Standard Attributes: (see @list/attribs for the complete list)
   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
 
@@ -769,7 +770,7 @@ Standard Attributes: (see @list/attribs for the complete list)
   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
@@ -825,8 +826,8 @@ Standard Attributes: (see @list/attribs for the complete list)
 
   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
@@ -844,7 +845,7 @@ Standard Attributes: (see @list/attribs for the complete list)
   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
@@ -858,7 +859,7 @@ Standard Attributes: (see @list/attribs for the complete list)
   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
@@ -869,7 +870,7 @@ Standard Attributes: (see @list/attribs for the complete list)
   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: 
@@ -878,7 +879,7 @@ Standard Attributes: (see @list/attribs for the complete list)
   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.
@@ -953,8 +954,7 @@ Standard Attributes: (see @list/attribs for the complete list)
   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
@@ -1084,7 +1084,7 @@ Standard Attributes: (see @list/attribs for the complete list)
   #18 :waves hello
   Punch> Punch waves hello
 
-  See also: PUPPET, @force, DBREF
+See also: PUPPET, @force, DBREF
 & QUEUE
   QUEUE
 
@@ -1101,7 +1101,7 @@ Standard Attributes: (see @list/attribs for the complete list)
   (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)
@@ -1364,16 +1364,16 @@ Continued in 'help regexp classes2'
 
   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.
@@ -1433,7 +1433,7 @@ Continued in 'help regexp classes2'
   [ 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
@@ -1464,7 +1464,7 @@ Continued in 'help regexp classes2'
  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.
 
@@ -1539,7 +1539,7 @@ Continued in 'help regexp classes2'
 
         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
@@ -1607,7 +1607,7 @@ Continued in 'help regexp classes2'
   %! = #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
@@ -1621,7 +1621,7 @@ Continued in 'help regexp classes2'
   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
  
@@ -1641,7 +1641,7 @@ Continued in 'help regexp classes2'
 
   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
@@ -1673,7 +1673,7 @@ Continued in 'help regexp classes2'
     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
@@ -1723,7 +1723,7 @@ Continued in 'help regexp classes2'
 
   *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 
@@ -1788,7 +1788,7 @@ Continued in 'help regexp classes2'
 
   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
   
@@ -1806,7 +1806,7 @@ Continued in 'help regexp classes2'
   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
@@ -1874,7 +1874,7 @@ Continued in 'help regexp classes2'
   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