PennMUSH Community

Changeset 1200

Show
Ignore:
Timestamp:
01/06/08 06:31:17 (8 months ago)
Author:
shawnw
Message:

Reformatted paragraphs in help files.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • 1.8.3/branches/devel/game/txt/hlp/penntop.hlp

    r1148 r1200  
    1717  On many MUSHes, list local commands with:       +help 
    1818 
    19 If there are any errors in the help text, please notify a wizard in the 
    20 game, or send mail to pennmush-bugs@pennmush.org, which is the address 
    21 of the team who develop PennMUSH (and its distributed help files) but 
    22 probably have no relation to this MUSH in particular. 
     19If there are any errors in the help text, please notify a wizard in 
     20the game, or send mail to pennmush-bugs@pennmush.org, which is the 
     21address of the team who develop PennMUSH (and its distributed help 
     22files) but probably have no relation to this MUSH in particular. 
    2323 
    2424& newbie 
    2525 
    26   If you are new to MUSHing, the help files may seem confusing. Most of 
    27   them are written in a specific style, however, and once you understand 
    28   it the files are extremely helpful. 
    29  
    30   The first line of a help file on a command or function will normally be 
    31   the syntax of the command. "Syntax" means the way the command needs to 
    32   be typed in. In the help files, when the syntax of a command is described, 
    33   square brackets [] mean that that part of the command is optional and 
    34   doesn't have to be typed in. Also, pointy brackets <> mean that that part 
    35   of the command needs to be replaced with a specific piece of information. 
     26  If you are new to MUSHing, the help files may seem confusing. Most 
     27  of them are written in a specific style, however, and once you 
     28  understand it the files are extremely helpful. 
     29 
     30  The first line of a help file on a command or function will normally 
     31  be the syntax of the command. "Syntax" means the way the command 
     32  needs to be typed in. In the help files, when the syntax of a 
     33  command is described, square brackets [] mean that that part of the 
     34  command is optional and doesn't have to be typed in. Also, pointy 
     35  brackets <> mean that that part of the command needs to be replaced 
     36  with a specific piece of information. 
    3637   
    3738  You should not type the [] or <> brackets when entering a command. 
    3839   
    39 (continued in help newbie2 -- type 'help newbie2' without the single quotes) 
     40(continued in help newbie2 -- type 'help newbie2' without the single 
     41quotes) 
    4042   
    4143& newbie2 
     
    4547  help [<topic>] 
    4648   
    47   What this means is that to get help, you would type first the word "help" and 
    48   then you could optionally type the name of a more specific topic in order 
    49   to get help on that topic. Just typing "help" will work too (that's why the 
    50   <topic> part is optional). 
     49  What this means is that to get help, you would type first the word 
     50  "help" and then you could optionally type the name of a more 
     51  specific topic in order to get help on that topic. Just typing 
     52  "help" will work too (that's why the <topic> part is optional). 
    5153   
    5254  Some common commands that you should look at help for are: 
     
    5961& newbie3 
    6062 
    61   There is help available on every standard MUSH command. If you see a command 
    62   or someone mentions one to you that you want to know more about, try just 
    63   typing: help <command name> -- that will most likely bring up the help 
    64   file on it. 
    65    
    66   Please note that just because there is help available on a command does 
    67   not necessarily mean that the command can be used on this MUSH. The 
    68   siteadmin of the MUSH can choose to turn off some commands. If there's 
    69   something that you would like available, and it isn't, please ask a wizard 
    70   why not. 
     63  There is help available on every standard MUSH command. If you see a 
     64  command or someone mentions one to you that you want to know more 
     65  about, try just typing: help <command name> -- that will most likely 
     66  bring up the help file on it. 
     67   
     68  Please note that just because there is help available on a command 
     69  does not necessarily mean that the command can be used on this 
     70  MUSH. The siteadmin of the MUSH can choose to turn off some 
     71  commands. If there's something that you would like available, and it 
     72  isn't, please ask a wizard why not. 
    7173   
    7274  It is also highly recommended that any new player read the MUSH manual, 
     
    105107Type "help <topic name>" for help. 
    106108& ACTION LISTS 
    107   Action lists are simply lists of actions that are all executed at once. 
    108   You can have an action list in a user-defined command, in one of th
    109   a-attributes, or in many other commands. Action lists may not be 
    110   executed directly from a client, except in the case of a command 
     109  Action lists are simply lists of actions that are all executed at 
     110  once.  You can have an action list in a user-defined command, in on
     111  of the a-attributes, or in many other commands. Action lists may not 
     112  be executed directly from a client, except in the case of a command 
    111113  which forces a re-insertion into the queue such as @switch or 
    112114  @dolist. 
    113115 
    114   Actions in an action list are separated by semicolons. Each action is  
    115   simply a separate MUSH command. If part of the action (such as the text 
    116   in an @emit, for example) contains a semi-colon or comma, you may need 
    117   to enclose that part in curly braces {}. You can also nest action lists 
    118   inside each other by enclosing each action list in braces {}. 
     116  Actions in an action list are separated by semicolons. Each action 
     117  is simply a separate MUSH command. If part of the action (such as 
     118  the text in an @emit, for example) contains a semi-colon or comma, 
     119  you may need to enclose that part in curly braces {}. You can also 
     120  nest action lists inside each other by enclosing each action list in 
     121  braces {}. 
    119122 
    120123  Substitution will be performed on the contents of action lists before 
     
    145148  ANCESTORS 
    146149 
    147   Objects can inherit attributes from other objects through the 
    148   use of parents. An object's parent, its parent's parent, its  
    149   parent's parent's parent, etc. constitute the object's "parent chain" 
    150   and lookups work the way up the chain until an inheritance occurs. 
     150  Objects can inherit attributes from other objects through the use of 
     151  parents. An object's parent, its parent's parent, its parent's 
     152  parent's parent, etc. constitute the object's "parent chain" and 
     153  lookups work the way up the chain until an inheritance occurs. 
    151154 
    152155  Ancestors are "virtual parents" that are assumed to be last on every 
    153   parent chain. There is one ancestor for each object type (room, exit, 
    154   thing, player), and @config lists the dbref of each ancestor object 
    155   (@config ancestor_room, etc.) Under normal circumstances, if an attribute 
    156   can't be retrieved from an object or any of its explicit parents, 
    157   the attribute will be looked for on the appropriate ancestor. 
    158   The ORPHAN flag may be set on an object to cause lookups on that  
    159   object to ignore ancestors (like the pre-ancestor behavior). 
    160  
    161   Ancestors may themselves have parent chains, but these are (obviously) 
    162   not virtually terminated by ancestors. 
    163  
    164   Note that the choice of which ancestor to look up is based on the  
     156  parent chain. There is one ancestor for each object type (room, 
     157  exit, thing, player), and @config lists the dbref of each ancestor 
     158  object (@config ancestor_room, etc.) Under normal circumstances, if 
     159  an attribute can't be retrieved from an object or any of its 
     160  explicit parents, the attribute will be looked for on the 
     161  appropriate ancestor.  The ORPHAN flag may be set on an object to 
     162  cause lookups on that object to ignore ancestors (like the 
     163  pre-ancestor behavior). 
     164 
     165  Ancestors may themselves have parent chains, but these are 
     166  (obviously) not virtually terminated by ancestors. 
     167 
     168  Note that the choice of which ancestor to look up is based on the 
    165169  type of the *child* object, as is the check of the ORPHAN flag. 
    166170  Also note that ancestors are *not* checked for $-commands or 
     
    172176& LAMBDA 
    173177& #LAMBDA 
    174   In many cases where a function expects a object/attribute pair 
    175   that refers to an attribute to evaluate, you can use the form 
     178  In many cases where a function expects a object/attribute pair that 
     179  refers to an attribute to evaluate, you can use the form 
    176180 
    177181  #lambda/<code> 
    178182 
    179   instead, and the code will be treated as an attribute's body. 
    180   The code will normally be parsed twice, so special characters  
    181   should be escaped where needed. 
     183  instead, and the code will be treated as an attribute's body.  The 
     184  code will normally be parsed twice, so special characters should be 
     185  escaped where needed. 
    182186 
    183187  These anonymous attributes should be used for short and simple 
    184   pieces of code. Anything long or complicated should go in an 
    185   actual attribute, for readability and maintainability. 
     188  pieces of code. Anything long or complicated should go in an actual 
     189  attribute, for readability and maintainability. 
    186190 
    187191  See 'HELP ANONYMOUS2' for examples. 
     
    193197  You say, "Joe Robert Sally" 
    194198 
    195   Because the code is parsed twice, you can actually build parts of 
    196   it in place, which is very convenient. Consider this implementation 
    197   of a lattrval function, which is like lattr() but it only returns 
     199  Because the code is parsed twice, you can actually build parts of it 
     200  in place, which is very convenient. Consider this implementation of 
     201  a lattrval function, which is like lattr() but it only returns 
    198202  non-empty attributes: 
    199203 
     
    203207  The first time '#lambda/hasattrval([secure(before(%0, /))], \%0)' is 
    204208  parsed in a call like 'u(lattrval, #1234)', it is turned into 
    205   '#lambda/hasattrval(#1234, %0)', thus avoiding the need for a setq() or 
    206   the like to store the top-level %0 for use in a real attribute called by 
    207   filter(). However, this can lead to problems with evaluating un-trusted 
    208   code. Use secure() or escape() where neccessary. 
     209  '#lambda/hasattrval(#1234, %0)', thus avoiding the need for a setq() 
     210  or the like to store the top-level %0 for use in a real attribute 
     211  called by filter(). However, this can lead to problems with 
     212  evaluating un-trusted code. Use secure() or escape() where 
     213  neccessary. 
    209214 
    210215  See 'HELP ANONYMOUS3' for another example. 
     
    217222  &lunlinked me=filter(lit(#lambda/strmatch(loc(%0), #-1)), lexits(%0)) 
    218223 
    219   This approach is useful both for security in making it harder to evaluate 
    220   a string that shouldn't be, and for making the code look nicer by not 
    221   having to escape percent signs, brackets, and other special 
    222   characters. However, it also makes it harder to build the code string on 
    223   the fly. Use what's most appropriate. 
     224  This approach is useful both for security in making it harder to 
     225  evaluate a string that shouldn't be, and for making the code look 
     226  nicer by not having to escape percent signs, brackets, and other 
     227  special characters. However, it also makes it harder to build the 
     228  code string on the fly. Use what's most appropriate. 
    224229      
    225230  See 'HELP ANONYMOUS4' for a list of functions that support anonymous 
     
    233238  ATTRIBUTE OWNERSHIP 
    234239   
    235   The latest person to set an attribute on an object is the owner 
    236   of that attribute. If you lock an attribute, using the @atrlock command, 
    237   only the person who owns the attribute will be able to alter the 
    238   attribute. This allows you to create standard commands on objects and 
    239   then @chown them to others without letting them alter them.  
    240  
    241   Attribute ownership is NOT changed when the object itself is @chown'ed. 
    242   To change attribute ownership, you must use the @atrchown command. 
     240  The latest person to set an attribute on an object is the owner of 
     241  that attribute. If you lock an attribute, using the @atrlock 
     242  command, only the person who owns the attribute will be able to 
     243  alter the attribute. This allows you to create standard commands on 
     244  objects and then @chown them to others without letting them alter 
     245  them. 
     246 
     247  Attribute ownership is NOT changed when the object itself is 
     248  @chown'ed.  To change attribute ownership, you must use the 
     249  @atrchown command. 
    243250 
    244251  You must control an object in order to set attributes on it. 
     
    248255& ATTRIBUTES LIST 
    249256& ATTRIBUTE LIST 
    250   Attributes with (*) after them are special, cannot be set by players, 
    251   and may only be visible to wizards or admin. For those attributes, there 
    252   is no @-command, so you can just type 'help <attribute name>' for help. 
    253   For all other attributes, type 'help @<attribute name>' for help. 
     257  Attributes with (*) after them are special, cannot be set by 
     258  players, and may only be visible to wizards or admin. For those 
     259  attributes, there is no @-command, so you can just type 'help 
     260  <attribute name>' for help.  For all other attributes, type 'help 
     261  @<attribute name>' for help. 
    254262 
    255263Standard Attributes: (see @list/attribs for the complete list) 
     
    270278(continued in help attributes2) 
    271279& ATTRIBUTES2 
    272   An attribute is part of the code on an object that makes it unique. An 
    273   attribute can contain any sort of text -- from a single word, to a long 
    274   paragraph, to a piece of MUSHcode. Some attributes are standard in  
    275   PennMUSH. That means that their effects are pre-set.  
     280  An attribute is part of the code on an object that makes it 
     281  unique. An attribute can contain any sort of text -- from a single 
     282  word, to a long paragraph, to a piece of MUSHcode. Some attributes 
     283  are standard in PennMUSH. That means that their effects are pre-set. 
    276284 
    277285  Standard attributes can be set using one of the following commands: 
     
    280288    &<attribute name> <object>=<content> 
    281289 
    282   It is also possible to have non-standard attributes, which can be named  
    283   anything you like. Please see 'help NON-STANDARD ATTRIBUTES' for more  
    284   information on those.  
     290  It is also possible to have non-standard attributes, which can be 
     291  named anything you like. Please see 'help NON-STANDARD ATTRIBUTES' 
     292  for more information on those. 
    285293 
    286294(continued in help attributes3) 
    287295& ATTRIBUTES3 
    288   Any attribute name can be shortened, but a shorter forms run the risk 
    289   of conflicting with other attribute names.  This could result in you 
    290   setting an unwanted attribute.  
     296  Any attribute name can be shortened, but a shorter forms run the 
     297  risk of conflicting with other attribute names.  This could result 
     298  in you setting an unwanted attribute. 
    291299 
    292300  For example: 
     
    296304  would. 
    297305 
    298   To see the attributes that are set on you or on any of the objects you own, 
    299   you should use the "examine" command. See 'help examine'. 
     306  To see the attributes that are set on you or on any of the objects 
     307  you own, you should use the "examine" command. See 'help examine'. 
    300308   
    301309(continued in help attributes4) 
    302310& ATTRIBUTES4 
    303   Attributes can be owned by someone other than the object they are set on. 
    304   This allows the person to change the content of just that attribute while  
    305   not the rest of the object. Attributes can also be locked, which prevents 
    306   them from being changed by anyone. 
    307  
    308   In addition to the standard attributes with pre-set effects, there are 
    309   some special attributes that date from the days before you could set 
    310   non-standard attributes with any name you wanted. These are the  
    311   attributes VA-VZ, WA-WZ, XA-XZ. These attributes have no pre-set effects, 
    312   and were just to allow players to store any text or MUSHcode that they 
    313   wished in those attributes. Now that non-standard attributes are available, 
    314   it is highly recommended that you instead use them, since you can use 
    315   longer and descriptive names for attributes, which makes it much easier 
    316   to examine and work on objects. 
    317  
    318 See also: ATTRIB-OWNERSHIP, @set, examine, @atrchown, @atrlock, hasattr(), 
    319   get(), v(), NON-STANDARD ATTRIBUTES, SETTING-ATTRIBUTES, ATTRIBUTE TREES 
     311  Attributes can be owned by someone other than the object they are 
     312  set on.  This allows the person to change the content of just that 
     313  attribute while not the rest of the object. Attributes can also be 
     314  locked, which prevents them from being changed by anyone. 
     315 
     316  In addition to the standard attributes with pre-set effects, there 
     317  are some special attributes that date from the days before you could 
     318  set non-standard attributes with any name you wanted. These are the 
     319  attributes VA-VZ, WA-WZ, XA-XZ. These attributes have no pre-set 
     320  effects, and were just to allow players to store any text or 
     321  MUSHcode that they wished in those attributes. Now that non-standard 
     322  attributes are available, it is highly recommended that you instead 
     323  use them, since you can use longer and descriptive names for 
     324  attributes, which makes it much easier to examine and work on 
     325  objects. 
     326 
     327See also: ATTRIB-OWNERSHIP, @set, examine, @atrchown, @atrlock, 
     328  hasattr(), get(), v(), NON-STANDARD ATTRIBUTES, SETTING-ATTRIBUTES, 
     329  ATTRIBUTE TREES 
    320330 
    321331& BEING KILLED 
    322332  
    323   Getting killed is no big deal. If you are killed, you return to 
    324   your home, and  all things you carry return to their homes. You  
    325   also collect 50 pennies in insurance money (unless you have >= 10000  
    326   pennies or you were killed via the Wizard slay command). See 'MONEY'.   
    327   Generally, killing is not encouraged unless absolutely necessary. 
    328   It can be extremely rude and annoying. 
     333  Getting killed is no big deal. If you are killed, you return to your 
     334  home, and all things you carry return to their homes. You also 
     335  collect 50 pennies in insurance money (unless you have >= 10000 
     336  pennies or you were killed via the Wizard slay command). See 
     337  'MONEY'.  Generally, killing is not encouraged unless absolutely 
     338  necessary.  It can be extremely rude and annoying. 
    329339 
    330340  Many MUSHes choose to disable the kill command. 
     
    333343& BOOLEAN VALUES  
    334344 
    335   A boolean variable, for those of you not familiar with programming,  
    336   is a variable that is either true or false. Normally, a value of 
    337   1 is considered "true" and a value of 0 is considered "false". Many 
    338   MUSH functions return either 1 if they are true or 0 if false. 
    339   For example, the hasflag() function tests to see if an object has 
    340   a certain flag set on it. If 
    341         hasflag(<object>,<flag name>)  
    342   is true (the object has the flag), it will return 1. If it is false,  
    343   it will return 0.  
     345  A boolean variable, for those of you not familiar with programming, 
     346  is a variable that is either true or false. Normally, a value of 1 
     347  is considered "true" and a value of 0 is considered "false". Many 
     348  MUSH functions return either 1 if they are true or 0 if false.  For 
     349  example, the hasflag() function tests to see if an object has a 
     350  certain flag set on it. If hasflag(<object>,<flag name>) is true 
     351  (the object has the flag), it will return 1. If it is false, it will 
     352  return 0. 
    344353 
    345354  Other functions expect to operate on boolean values. What they 
    346   consider "true" or "false", however, depends on the setting of 
    347   the "tiny_booleans" config option (@config tiny will show this).   
     355  consider "true" or "false", however, depends on the setting of the 
     356  "tiny_booleans" config option (@config tiny will show this). 
    348357 
    349358(continued in help boolean2) 
     
    383392See also: BOOLEAN FUNCTIONS, not(), t() 
    384393& CLIENTS 
    385   Clients are special software programs that you can use to connect to  
    386   MUSHes. They are usually much nicer to use than raw telnet and give you 
    387   many additional features, such as larger text buffers (so you can type 
    388   more), backscroll, history of previous commands, macros, and so on.  
     394  Clients are special software programs that you can use to connect to 
     395  MUSHes. They are usually much nicer to use than raw telnet and give 
     396  you many additional features, such as larger text buffers (so you 
     397  can type more), backscroll, history of previous commands, macros, 
     398  and so on. 
    389399 
    390400  Here is a list of common clients and the web sites where they can be 
     
    404414                  Unix clients will also run on OS X. 
    405415& CONTROL 
    406   Controlling an object basically means that you have the power to change 
    407   the object's characteristics such as flags and attributes. It may also 
    408   mean that you have the ability to destroy it. 
     416  Controlling an object basically means that you have the power to 
     417  change the object's characteristics such as flags and attributes. It 
     418  may also mean that you have the ability to destroy it. 
    409419 
    410420  Here are the conditions under which object O controls victim V: 
     
    422432     TRUST, O controls V if O passes the zone-lock of the SHARED player. 
    423433 
    424   Step 7 is skipped if config(zone_control_zmp_only) is on. 
    425   There's also one special case: anyone can @link an unlinked exit 
    426   (at which point the exit is @chowned to the linker). 
     434  Step 7 is skipped if config(zone_control_zmp_only) is on.  There's 
     435  also one special case: anyone can @link an unlinked exit (at which 
     436  point the exit is @chowned to the linker). 
    427437 
    428438See also: controls(), TRUST, MISTRUST, ZONES, SHARED PLAYERS 
     
    471481& DBREF NUMBER 
    472482& DBREF # 
    473   You will find the term "dbref" or "dbref number" used frequently in these 
    474   help files and in MUSHcode. It is an abbreviation of "database referenc
    475   number". 
    476    
    477   The database is the part of MUSH that stores all the information about  
    478   this particular MUSH. Players, things, rooms, and exits are all objects 
    479   in the database. Each object in the database has a unique dbref number 
    480   that is set when the object is created. You can use the dbref number to 
    481   refer to an object that is not in your current location, and it is  
    482   especially important for global code. 
     483  You will find the term "dbref" or "dbref number" used frequently in 
     484  these help files and in MUSHcode. It is an abbreviation of "databas
     485  reference number". 
     486   
     487  The database is the part of MUSH that stores all the information 
     488  about this particular MUSH. Players, things, rooms, and exits are 
     489  all objects in the database. Each object in the database has a 
     490  unique dbref number that is set when the object is created. You can 
     491  use the dbref number to refer to an object that is not in your 
     492  current location, and it is especially important for global code. 
    483493 
    484494  Using DBREFs is also faster than using names, even if the object is 
    485   in your location. This is because whenever you try to do something with 
    486   an object (such as look at it, take it, etc.), the MUSH first has to 
    487   locate the object. Since the dbref is unique, it can immediately find 
    488   the object rather than checking through all the contents of your area 
    489   to see if one matches the name. 
     495  in your location. This is because whenever you try to do something 
     496  with an object (such as look at it, take it, etc.), the MUSH first 
     497  has to locate the object. Since the dbref is unique, it can 
     498  immediately find the object rather than checking through all the 
     499  contents of your area to see if one matches the name. 
    490500 
    491501(continued in help dbref2) 
    492502& DBREF2 
    493503   
    494   If you own or control an object, you will see its dbref number listed 
    495   right after its name when you look at it (unless you are set MYOPIC). 
     504  If you own or control an object, you will see its dbref number 
     505  listed right after its name when you look at it (unless you are set 
     506  MYOPIC). 
    496507 
    497508  Example: 
     
    500511    A very short desc. 
    501512 
    502   The dbref number is indicated by the number/pound sign (#). Cyclonus's 
    503   dbref is #3. The letters following the dbref are the abbreviations of 
    504   the flags set on the object. NOTE: the abbreviation of the OPAQUE 
    505   flag is 'O' (o), which looks like '0' (zero) on some clients. Make sure  
    506   you have the right number before using it in your code! 
     513  The dbref number is indicated by the number/pound sign 
     514  (#). Cyclonus's dbref is #3. The letters following the dbref are the 
     515  abbreviations of the flags set on the object. NOTE: the abbreviation 
     516  of the OPAQUE flag is 'O' (o), which looks like '0' (zero) on some 
     517  clients. Make sure you have the right number before using it in your 
     518  code! 
    507519 
    508520See also: MYOPIC, OPAQUE, MUSHCODE 
     
    510522 
    511523  When you use the @link command on a room, it sets another room or 
    512   object as the DROP-TO location. By default, any non-STICKY object that 
    513   someone drops in the room will automatically be transported to the 
    514   drop-to location, rather than staying in the room. Any STICKY object 
    515   droped in the room will go to its home. 
    516  
    517   If the room is set STICKY, objects dropped in the room will stay there 
    518   until the last player leaves/disconnects, at which point they will be 
    519   transported as described above. 
     524  object as the DROP-TO location. By default, any non-STICKY object 
     525  that someone drops in the room will automatically be transported to 
     526  the drop-to location, rather than staying in the room. Any STICKY 
     527  object droped in the room will go to its home. 
     528 
     529  If the room is set STICKY, objects dropped in the room will stay 
     530  there until the last player leaves/disconnects, at which point they 
     531  will be transported as described above. 
    520532 
    521533  If the room has a @lock/dropto set on it, only objects that pass the 
    522534  lock will be transported (either immediately or when the last player 
    523   leaves if the room is STICKY). This can be used to prevent the dropto 
    524   from acting on, say, objects containing connected players. 
     535  leaves if the room is STICKY). This can be used to prevent the 
     536  dropto from acting on, say, objects containing connected players. 
    525537 
    526538  Drop-tos are useful for keeping rooms uncluttered.  
     
    535547  This is an important concept in MUSH, because the way many commands 
    536548  work will depend on who enters the command (ie, who the enactor is). 
    537   Any type of object can be an enactor.  
     549  Any type of object can be an enactor. 
    538550 
    539551  There are five %-substitutions that involve the enactor: 
     
    545557 
    546558  If, for example, you have an @osucc on an object that includes the 
    547   %n symbol, whenever someone picks up the object, that %n will be  
    548   replaced with the name of the enactor (the person who typed 'get <object>' 
    549   in this case).  
     559  %n symbol, whenever someone picks up the object, that %n will be 
     560  replaced with the name of the enactor (the person who typed 'get 
     561  <object>' in this case). 
    550562   
    551563See also: EXECUTOR, SUBSTITUTION, DBREF 
    552564& EVALUATION ORDER 
    553   Whenever some text is entered by an object or thing, the MUSH program 
    554   attempts to match it against a valid game command in the following  
    555   order of possible commands: 
     565  Whenever some text is entered by an object or thing, the MUSH 
     566  program attempts to match it against a valid game command in the 
     567  following order of possible commands: 
    556568 
    557569    Special game commands: WHO, QUIT, etc. 
     
    581593        global commands. 
    582594 
    583   Because local commands overrule global commands, you can easily prevent 
    584   a global command from working in a specific room by setting a copy of 
    585   the global command in that room. Alternatively, if a global command is 
    586   oddly not working in a room, you should check for copies of the command 
    587   word in the room (using @scan). 
     595  Because local commands overrule global commands, you can easily 
     596  prevent a global command from working in a specific room by setting 
     597  a copy of the global command in that room. Alternatively, if a 
     598  global command is oddly not working in a room, you should check for 
     599  copies of the command word in the room (using @scan). 
    588600& %! 
    589601& EXECUTOR 
    590   The executor of a command is the object actually carrying out the command. 
    591   This differs from the enactor, because the enactor is the object that sets 
    592   off the command. In some cases, the enactor and the executor will be the 
    593   same. There is a %-substitution, %!, that is replaced by the dbref # of 
    594   the executor of the command. 
     602  The executor of a command is the object actually carrying out the 
     603  command.  This differs from the enactor, because the enactor is the 
     604  object that sets off the command. In some cases, the enactor and the 
     605  executor will be the same. There is a %-substitution, %!, that is 
     606  replaced by the dbref # of the executor of the command. 
    595607 
    596608  For example: 
     
    603615    > Cyclonus is the enactor and #10 is the executor! 
    604616 
    605   In the first case, Cyclonus directly entered the command and was therefore 
    606   both the enactor and the executor. In the second, Cyclonus set off the  
    607   command on the box, so Cyclonus was still the enactor, but the box was 
    608   the object that was actually doing the @emit, and was thus the executor. 
     617  In the first case, Cyclonus directly entered the command and was 
     618  therefore both the enactor and the executor. In the second, Cyclonus 
     619  set off the command on the box, so Cyclonus was still the enactor, 
     620  but the box was the object that was actually doing the @emit, and 
     621  was thus the executor. 
    609622 
    610623See also: ENACTOR, SUBSTITUTION 
    611624& EXITS 
    612   An exit is a one-way link that takes you from its source room to its  
    613   destination room. To open an exit from a room, you must control that room. 
    614   To open an exit to a room, you must either control the room or it must be  
    615   set LINK_OK. If an exit is set DARK is will not show up in the list of  
    616   obvious exits in a room. 
    617  
    618   If an exit is set TRANSPARENT, someone who looks at the exit will also 
    619   see the description and contents of the destination room. If an exit is  
    620   set CLOUDY, someone who looks at the exit will also see the contents of  
    621   the room beyond, but not its description. If an exits is set -both- 
    622   CLOUDY and TRANSPARENT, the description but not the contents will be seen. 
     625  An exit is a one-way link that takes you from its source room to its 
     626  destination room. To open an exit from a room, you must control that 
     627  room.  To open an exit to a room, you must either control the room 
     628  or it must be set LINK_OK. If an exit is set DARK is will not show 
     629  up in the list of obvious exits in a room. 
     630 
     631  If an exit is set TRANSPARENT, someone who looks at the exit will 
     632  also see the description and contents of the destination room. If an 
     633  exit is set CLOUDY, someone who looks at the exit will also see the 
     634  contents of the room beyond, but not its description. If an exits is 
     635  set -both- CLOUDY and TRANSPARENT, the description but not the 
     636  contents will be seen. 
    623637    
    624638  If you have code on an exit (In an @asuccess or the like), note that 
    625   [loc(exit)] is the exit's destination, and [home(exit)] is the exit's 
    626   starting point. If an exit @emit's something, it will be heard in th
    627   source room. 
     639  [loc(exit)] is the exit's destination, and [home(exit)] is the 
     640  exit's starting point. If an exit @emit's something, it will b
     641  heard in the source room. 
    628642    
    629643(continued in exits2) 
    630644& EXITS2 
    631   You can create an exit that sends those who go through it to their homes 
    632   by typing '@link <EXIT>=home'. 
    633  
    634   Starting with PennMUSH version 1.50p10, exits can have more than one  
    635   destination. To make an exit with a variable destination, open the exit  
    636   (using @open),  then type '@link <EXIT>=variable'. Finally, add an  
    637   attribute named 'DESTINATION' to the exit (&destination <EXIT>), which  
    638   will be evaluated for the dbref # of the destination room when the exit  
    639   is used.  
     645  You can create an exit that sends those who go through it to their 
     646  homes by typing '@link <EXIT>=home'. 
     647 
     648  Starting with PennMUSH version 1.50p10, exits can have more than one 
     649  destination. To make an exit with a variable destination, open the 
     650  exit (using @open), then type '@link <EXIT>=variable'. Finally, add 
     651  an attribute named 'DESTINATION' to the exit (&destination <EXIT>), 
     652  which will be evaluated for the dbref # of the destination room when 
     653  the exit is used. 
    640654    
    641655  For example: 
     
    644658  &destination s=[switch(rand(3),0,#100,1,#101,2,#102)] 
    645659    
    646   This exit would take you to either room #100, #101, or #102 depending on  
    647   the random number.  
    648  
    649   Anyone can create variable exits, but the destinations must be to places 
    650   that the exit can normally @link to. 
     660  This exit would take you to either room #100, #101, or #102 
     661  depending on the random number. 
     662 
     663  Anyone can create variable exits, but the destinations must be to 
     664  places that the exit can normally @link to. 
    651665 
    652666See also: @link, @open, link_ok, CLOUDY, TRANSPARENT, @firstexit 
     
    654668  FAILURE   
    655669 
    656   A "failure" usually occurs when you try to do something that is  
    657   governed by an @lock and you don't pass the lock. If you try to 
    658   take a player or thing, and you don't pass their @lock, you will 
    659   set off their @fail/@ofail/@afail attributes. If you try to go 
    660   through an exit, and you don't pass its @lock, you will similarly 
    661   set off its @fail/@ofail/@afail. Other failure sets include: 
     670  A "failure" usually occurs when you try to do something that is 
     671  governed by an @lock and you don't pass the lock. If you try to take 
     672  a player or thing, and you don't pass their @lock, you will set off 
     673  their @fail/@ofail/@afail attributes. If you try to go through an 
     674  exit, and you don't pass its @lock, you will similarly set off its 
     675  @fail/@ofail/@afail. Other failure sets include: 
    662676 
    663677  Failing to enter an object (@efail, @oefail, @aefail) 
     
    667681    where the <lock> can be: FOLLOW_LOCK, PAGE_LOCK 
    668682 
    669   Many other things can also be locked -- see @lock and locktypes for  
     683  Many other things can also be locked -- see @lock and locktypes for 
    670684  more information. However, there are failure messages at this time 
    671685  only for the above. 
     
    676690  Gender on a MUSH is entirely up to you. You can set yourself (or any 
    677691  of your objects) to be male, female, neuter, or plural. If whatever 
    678   is in the SEX attribute is not recognizable, the MUSH will assume  
    679   the object is neuter. Setting a gender attribute will enable  
    680   pronoun substitution by the MUSH. The SEX attribute is visual t
    681   anyone who wants to see it. 
     692  is in the SEX attribute is not recognizable, the MUSH will assume 
     693  the object is neuter. Setting a gender attribute will enable pronoun 
     694  substitution by the MUSH. The SEX attribute is visual to anyone wh
     695  wants to see it. 
    682696 
    683697See also: @sex, SUBSTITUTION 
     
    685699& GLOBAL COMMANDS 
    686700  A command is "global" if it can be used anywhere in the world of the 
    687   MUSH. The standard MUSH commands are all global, so this term is  
     701  MUSH. The standard MUSH commands are all global, so this term is 
    688702  usually used to refer to user-defined commands on objects in the 
    689703  Master Room of the MUSH. Global commands very greatly from MUSH to 
    690   MUSH, but you can usually find MUSH-specific help on them by 
    691   typing "+help".  
     704  MUSH, but you can usually find MUSH-specific help on them by typing 
     705  "+help". 
    692706 
    693707See also: MASTER ROOM, USER-DEFINED COMMANDS, EVALUATION 
    694708& HERE 
    695   The word 'here' refers to the room you are in. For example, 
    696   to rename the room  you're in (if you control it), you could enter  
    697   "@name here= <new name>".  
     709  The word 'here' refers to the room you are in. For example, to 
     710  rename the room you're in (if you control it), you could enter 
     711  "@name here= <new name>". 
    698712& HOMES 
    699713& HOME 
    700   Every thing or player has a home, which is usually the room where 
    701   it was created. You can reset your home or the home of any object 
    702   you own with the @link command: @link <me|object>=<location>. You 
    703   must also control <location>, unless that location (room or thing) 
    704   is set ABODE or LINK_OK. 
    705  
    706   When a player types 'home', s/he is sent back to the home room. When  
    707   a thing with the STICKY flag set on it is dropped, it also goes to  
    708   its home location. Note that if the FIXED flag is set on a player,  
     714  Every thing or player has a home, which is usually the room where it 
     715  was created. You can reset your home or the home of any object you 
     716  own with the @link command: @link <me|object>=<location>. You must 
     717  also control <location>, unless that location (room or thing) is set 
     718  ABODE or LINK_OK. 
     719 
     720  When a player types 'home', s/he is sent back to the home room. When 
     721  a thing with the STICKY flag set on it is dropped, it also goes to 
     722  its home location. Note that if the FIXED flag is set on a player, 
    709723  he/she cannot use the 'home' command. 
    710724 
     
    716730See also: DROP-TOS, @link, STICKY, LINK_OK, FIXED, EXITS 
    717731& INTERIORS 
    718   Here's a quick description of how to make things that can be entered: 
     732  Here's a quick description of how to make things that can be 
     733  entered: 
    719734         
    720735  @create Car 
     
    731746(continued in help interiors2) 
    732747& INTERIORS2 
    733   Now, if you want people inside to be able to hear and communicate with  
    734   the outside, you also need to do the following. 
     748  Now, if you want people inside to be able to hear and communicate 
     749  with the outside, you also need to do the following. 
    735750    
    736751  @set car=audible  (lets people outside hear what's being said in the car. 
     
    744759 
    745760  (The filters will keep people on the outside from seeing the 'o' 
    746   messages and people on the inside from seeing the 'ox' messages which 
    747   is a good thing.) 
     761  messages and people on the inside from seeing the 'ox' messages 
     762  which is a good thing.) 
    748763 
    749764See also: enter, leave, @prefix, @filter, AUDIBLE, @listen 
     
    751766  LAST and LASTLOGOUT 
    752767 
    753   These attributes show the last times you connected and disconnected from 
    754   the MUSH.  
     768  These attributes show the last times you connected and disconnected 
     769  from the MUSH. 
    755770& LASTSITE 
    756771& LASTIP  
    757772  LASTSITE and LASTIP 
    758773 
    759   The LASTSITE attribute gives the name of the site you last connected from. 
    760   The LASTIP attribute gives the IP address you last connected from. 
    761   Mortals cannot set them. 
     774  The LASTSITE attribute gives the name of the site you last connected 
     775  from.  The LASTIP attribute gives the IP address you last connected 
     776  from.  Mortals cannot set them. 
    762777& LINKING   
    763778 
    764   You can link to a room if you control it, or if it is set  
    765   LINK_OK or ABODE. Being able to link means you can set the homes of 
    766   objects or yourself to that  room if it is set ABODE, and can set  
    767   the destination of exits to that room if it is LINK_OK. 
     779  You can link to a room if you control it, or if it is set LINK_OK or 
     780  ABODE. Being able to link means you can set the homes of objects or 
     781  yourself to that room if it is set ABODE, and can set the 
     782  destination of exits to that room if it is LINK_OK. 
    768783 
    769784See also: LINK_OK, ABODE, @link 
    770785& LISTENING 
    771786   
    772   There are two basic ways to trigger action on the MUSH. The basic way 
    773   is to type in commands such as 'look' or '@emit'. These commands are not 
    774   seen or heard by other players, although the results of the commands may 
    775   be. 
    776  
    777   The other way is to "listen" for something said/emitted in your hearing. 
    778   There are two ways to listen for something in a room. The easiest way 
    779   is to use a combination of @listen and @ahear/@aahear/@amhear.  
     787  There are two basic ways to trigger action on the MUSH. The basic 
     788  way is to type in commands such as 'look' or '@emit'. These commands 
     789  are not seen or heard by other players, although the results of the 
     790  commands may be. 
     791 
     792  The other way is to "listen" for something said/emitted in your 
     793  hearing.  There are two ways to listen for something in a room. The 
     794  easiest way is to use a combination of @listen and 
     795  @ahear/@aahear/@amhear. 
    780796 
    781797  For example: 
     
    789805& LISTENING2 
    790806  If you need an object to "listen" for more than one pattern, you can 
    791   also use ^-patterns.  These work similar to user-defined commands,  
    792   using ^ instead of $. An object must be set MONITOR to have ^-patterns 
    793   activated. 
     807  also use ^-patterns.  These work similar to user-defined commands, 
     808  using ^ instead of $. An object must be set MONITOR to have 
     809  ^-patterns activated. 
    794810 
    795811  Syntax:  &<attribute> <object> = ^<pattern>:<action list> 
     
    804820  Welcome Mat says as Grimlock leaves, "Bye!" 
    805821 
    806   Such attributes can also be @triggered as if the ^<pattern>: 
    807   did not exist. 
     822  Such attributes can also be @triggered as if the ^<pattern>: did not 
     823  exist. 
    808824 
    809825(continued in help listening3) 
     
    811827  By default, ^-patterns work like @ahear. To have them work like 
    812828  @amhear, set the AMHEAR attribute flag on the attribute; to have 
    813   them work like @aahear, set the AAHEAR attribute flag on the attribute 
    814   (Note that the triggering object is whatever happens to be %#, so, for 
    815   example, when you @set an object MONITOR, you are %# with regard to the 
    816   "Object is now listening" message, and this message can be picked up 
    817   with an ^pattern.) 
     829  them work like @aahear, set the AAHEAR attribute flag on the 
     830  attribute (Note that the triggering object is whatever happens to be 
     831  %#, so, for example, when you @set an object MONITOR, you are %# 
     832  with regard to the "Object is now listening" message, and this 
     833  message can be picked up with an ^pattern.) 
    818834 
    819835  Additionally, unlike $-commands, @listen and ^-patterns are NOT 
     
    821837  listener. 
    822838 
    823   Listen patterns are checked after the object's normal @listen attribute. 
     839  Listen patterns are checked after the object's normal @listen 
     840  attribute. 
    824841 
    825842See also: @listen, @ahear, @amhear, @aahear, MONITOR, LISTEN_PARENT, 
     
    828845& LISTS 
    829846  The word "list" is used in the help files to refer to a string that 
    830   is a series of smaller strings separated by one or more spaces. A list 
    831   can also have its elements separated by some other kind of character -- 
    832   the separating character is called the "delimiter".  
     847  is a series of smaller strings separated by one or more spaces. A 
     848  list can also have its elements separated by some other kind of 
     849  character -- the separating character is called the "delimiter". 
    833850  For example, the following are all lists: 
    834851 
     
    838855    -eek- .boing. yawp #5 7 
    839856   
    840   Lots of MUSHCode depends on lists and manipulating them. Normally, a list 
    841   is made up of similar items (so the fourth list in the example is NOT a  
    842   typical one). 
     857  Lots of MUSHCode depends on lists and manipulating them. Normally, a 
     858  list is made up of similar items (so the fourth list in the example 
     859  is NOT a typical one). 
    843860 
    844861See also: STRINGS, List Functions 
    845862& LOOPING 
    846   Looping in an object can have its good parts and its bad parts. 
    847   The good part is when you activate part of a program multiple times 
    848   to exhaustively perform an operation.  This can be done like this: 
     863  Looping in an object can have its good parts and its bad parts.  The 
     864  good part is when you activate part of a program multiple times to 
     865  exhaustively perform an operation.  This can be done like this: 
    849866 
    850867    &PART1 object=<action list> ; @trigger me/PART2 
     
    853870  Looping can be a problem when it goes on without stopping.  The @ps 
    854871  command can be used to see if you are looping.  Beware!  A looping 
    855   machine that isn't @halt'd will drain your pennies while you are away 
    856   from the mush! 
     872  machine that isn't @halt'd will drain your pennies while you are 
     873  away from the mush! 
    857874 
    858875See also: @ps, HALT, COSTS, @trigger 
    859876& MASTER ROOM 
    860877   
    861   The Master Room enables global commands and exits. Exits in the Master 
    862   Room may be used from any location on the MUSH. All objects left in the 
    863   Master Room are checked for user-defined $commands. Those $commands are 
    864   considered global, meaning that they can be used anywhere on the MUSH.  
    865   Normally, only wizards will have access to the Master Room; if you have 
    866   a global command that you would like to see enabled for the MUSH, speak 
    867   to a wizard. 
     878  The Master Room enables global commands and exits. Exits in the 
     879  Master Room may be used from any location on the MUSH. All objects 
     880  left in the Master Room are checked for user-defined 
     881  $commands. Those $commands are considered global, meaning that they 
     882  can be used anywhere on the MUSH.  Normally, only wizards will have 
     883  access to the Master Room; if you have a global command that you 
     884  would like to see enabled for the MUSH, speak to a wizard. 
    868885   
    869886See also: EVALUATION, GLOBAL COMMANDS 
     
    882899  MUSH money (the default name is "pennies", but this may be different 
    883900  depending on the particular MUSH) is spent on some MUSH commands 
    884   that are computationally expensive or alter the database. In  
     901  that are computationally expensive or alter the database. In 
    885902  addition, every time you "queue" a command, it costs you a certain 
    886   amount of money -- this prevents looping from getting out of control, 
    887   since when all your money is spent, you can't queue any more commands. 
    888  
    889   The money system can also be used on player-created objects by giving  
    890   them @cost/@payment/@opayment/@apayment attributes. When someone then 
    891   pays the object by giving it the right number of pennies, the attributes 
    892   are triggered. 
     903  amount of money -- this prevents looping from getting out of 
     904  control, since when all your money is spent, you can't queue any 
     905  more commands. 
     906 
     907  The money system can also be used on player-created objects by 
     908  giving them @cost/@payment/@opayment/@apayment attributes. When 
     909  someone then pays the object by giving it the right number of 
     910  pennies, the attributes are triggered. 
    893911 
    894912See also: COSTS, give, @cost, @pay, @opay, @apay 
     
    896914& SOFTCODE 
    897915 
    898   MUSHcode is the programming language available within the MUSH itself 
    899   with which you can create user-defined commands and macros.  It is  
    900   sometimes called "softcode" to distinguish it from "hardcode", which is  
    901   the language that the source code for the MUSH server is written  
    902   in. (Incidentally, hardcode is written in the C programming language.) 
    903    
    904   At its most basic, writing MUSHcode is just stringing together a series 
    905   of commands that you would otherwise just type in one at a time.  You 
    906   can store MUSHcode in attributes on any type of object you own or control 
    907   (including yourself!).  The series of commands can be triggered by using  
    908   a user-defined command or by using @trigger. 
     916  MUSHcode is the programming language available within the MUSH 
     917  itself with which you can create user-defined commands and macros. 
     918  It is sometimes called "softcode" to distinguish it from "hardcode", 
     919  which is the language that the source code for the MUSH server is 
     920  written in. (Incidentally, hardcode is written in the C programming 
     921  language.) 
     922   
     923  At its most basic, writing MUSHcode is just stringing together a 
     924  series of commands that you would otherwise just type in one at a 
     925  time.  You can store MUSHcode in attributes on any type of object 
     926  you own or control (including yourself!).  The series of commands 
     927  can be triggered by using a user-defined command or by using 
     928  @trigger. 
    909929   
    910930(continued in help mushcode2) 
    911931& MUSHCODE2 
    912932 
    913   If you would like to learn more about mushcoding and how to create macros 
    914   for yourself, the following help files may be useful.  However, the best 
    915   way to learn is by obtaining a copy of Amberyl's MUSH manual and following 
    916   the examples described there.  The manual is available by anonymous FTP 
    917   from: ftp.pennmush.org in the directory /pub/PennMUSH/Manuals 
     933  If you would like to learn more about mushcoding and how to create 
     934  macros for yourself, the following help files may be useful. 
     935  However, the best way to learn is by obtaining a copy of Amberyl's 
     936  MUSH manual and following the examples described there.  The manual 
     937  is available by anonymous FTP from: ftp.pennmush.org in the 
     938  directory /pub/PennMUSH/Manuals 
    918939 
    919940  Related Help Topics (in no particular order) 
     
    926947 
    927948& NON-STANDARD ATTRIBUTES 
    928   While there are many standard attributes in MUSH, objects can also have 
    929   an unlimited number of attributes, with any name you wish to use. In the 
    930   past, you were limited to attributes named VA-VZ, WA-WZ, XA-XZ; these 
    931   are still available as standard attributes. However, it is strongly 
    932   recommended that you use non-standard attributes and meaningful names 
    933   in order to make maintaining your MUSHCode easier. 
     949  While there are many standard attributes in MUSH, objects can also 
     950  have an unlimited number of attributes, with any name you wish to 
     951  use. In the past, you were limited to attributes named VA-VZ, WA-WZ, 
     952  XA-XZ; these are still available as standard attributes. However, it 
     953  is strongly recommended that you use non-standard attributes and 
     954  meaningful names in order to make maintaining your MUSHCode easier. 
    934955 
    935956  To set a non-standard attribute, you can use these formats: 
     
    938959      @set <obj> = <attribute_name>:<value> 
    939960 
    940