PennMUSH Community

Changeset 654

Show
Ignore:
Timestamp:
01/27/07 02:12:14 (1 year ago)
Author:
penndev
Message:

PennMUSH 1.8.3p0 release candidate.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • 1.8.3/trunk

    • Property svn:ignore changed from
      .config
      config.h
      config.sh
      ignore
      Makefile
      options.h
      to
      #!/bin/sh
      #
      # usage: restart
      #
      # REQUIRED: You must set this to the path to your game directory.
      # E.g.: /home/mush/game
      GAMEDIR=

      # OPTIONAL things that you may want to tweak.

      # Uncomment the line below to attempt to allow crashes to produce
      # core dumps. If you're getting crashes, this is the best way
      # to debug them.
      #ulimit -c unlimited

      # Internationalization stuff
      # Set LANG here to get international character sets and, if someone's
      # done it, translation of messages.
      # Vaild locales are usually <lang_code>_<COUNTRY CODE>
      # Example (uncomment to use):
      #LANG=fr_FR

      # Time zone stuff
      # If you want your MUSH to run in a different timezone than the one
      # you're in, you need to identify the target time zone file in
      # /usr/share/zoneinfo or /usr/lib/zoneinfo. Then uncomment the next
      # two lines and set TZ to the desired timezone file, as shown, with
      # an initial colon:
      #TZ=:EST5EDT
      #export TZ


      # The config file. Best to keep this as is. If you must change
      # the name, make it a link to mush.cnf.
      CONF_FILE=mush.cnf

      #######################################################################

      if [ -z "$GAMEDIR" ]; then
      echo "You must set GAMEDIR in the restart script."
      exit 1
      fi

      if [ ! -d "$GAMEDIR" ]; then
      echo "GAMEDIR doesn't appear to be a directory. It's: $GAMEDIR"
      exit 1
      fi

      cd $GAMEDIR
      echo Running from `pwd`

      if [ ! -f "$CONF_FILE" ]; then
      echo "CONF_FILE doesn't exist. It's: $CONF_FILE"
      echo "Create $CONF_FILE from $GAMEDIR/mushcnf.dst and run 'make update'"
      exit 1
      fi

      # If netmush isn't here, they probably didn't make install
      # In any case, we'd better not proceed.
      if [ ! -e netmush ]; then
      echo "I don't see $GAMEDIR/netmush. Did you remember to make install?"
      exit 1
      fi

      #
      # Read the cnf file and set some variables.
      #
      INDB=`egrep "^input_database" $CONF_FILE | sed "s/.*[ ][ ]*.*\/\(.*\)/\1/" | sed 's/\r$//'`
      OUTDB=`egrep "^output_database" $CONF_FILE | sed "s/.*[ ][ ]*.*\/\(.*\)/\1/" | sed 's/\r$//'`
      PANICDB=`egrep "^crash_database" $CONF_FILE | sed "s/.*[ ][ ]*.*\/\(.*\)/\1/" | sed 's/\r$//'`
      PANICDIR=`egrep "^crash_database" $CONF_FILE | sed "s/.*[ ][ ]*\(.*\)\/.*/\1/" | sed 's/\r$//'`
      COMPRESSOR="cat"
      SUFFIX=""

      # Find out what the compression program is, if any
      egrep -s "^compress_program[ ]*[A-Za-z0-9]" $CONF_FILE
      nocompress=$?
      if [ "$nocompress" -eq 0 ]; then
      COMPRESSOR=`egrep "^compress_program" $CONF_FILE | sed "s/[^ ]*[ ]*\(.*\)/\1/" | sed 's/\r$//'`
      SUFFIX=`egrep "^compress_suffix" $CONF_FILE | sed "s/[^ ]*[ ]*\(.*\)/\1/" | sed 's/\r$//'`
      fi


      #-- start up everything

      # Prevent double-starting things. You may need to provide a pathname for
      # some of the commands. System V flavors need "ps -f" instead of "ps uwx".
      mush=`ps uwwx | grep " $GAMEDIR/$CONF_FILE" | grep -v grep | wc -l`


      if [ "$mush" -gt 0 ]; then
      echo Mush already active or some other process is using $GAMEDIR/$CONF_FILE.
      exit 0
      fi

      echo Building text file indexes.
      (cd txt; make)

      echo Restarting Mush.

      if [ -r "$PANICDIR/$PANICDB" ]; then
      end="`tail -1 $PANICDIR/$PANICDB`"
      if [ "$end" = "***END OF DUMP***" ]; then
      echo "Recovering PANIC dump."
      cat $PANICDIR/$PANICDB | $COMPRESSOR > data/$OUTDB$SUFFIX
      rm $PANICDIR/$PANICDB
      echo "PANIC dump successfully recovered."
      else
      mv $PANICDIR/$PANICDB save/$PANICDB.corrupt
      echo "Warning: PANIC dump corrupt. Using older db."
      fi
      fi

      # Copy the last set of log files to save/
      mv -f log/*.log save/

      if [ -r "data/$OUTDB$SUFFIX" ]; then
      rm -f save/$INDB$SUFFIX.old
      mv -f data/$INDB$SUFFIX save/$INDB$SUFFIX.old
      mv data/$OUTDB$SUFFIX data/$INDB$SUFFIX
      else
      echo "No $OUTDB$SUFFIX found."
      if [ -r "data/$INDB$SUFFIX" ]; then
      echo "Using $INDB$SUFFIX."
      else
      echo "No $INDB$SUFFIX found."
      if [ -r "save/$INDB$SUFFIX.old" ]; then
      echo "Using save/$INDB$SUFFIX.old."
      cp save/$INDB$SUFFIX.old data/$INDB$SUFFIX
      else
      echo "No database found. Mush will start with a minimal world."
      fi
      fi
      fi

      if [ -r reboot.db ]; then
      rm -f reboot.db
      fi

      DATEMSK="${GAMEDIR}/getdate.template"
      export DATEMSK

      LC_ALL=$LANG LANG=$LANG ./netmush $GAMEDIR/$CONF_FILE &
  • 1.8.3/trunk/CHANGES.182

    r574 r654  
    1414 
    1515========================================================================== 
     16 
     17Version 1.8.2 patchlevel 2                      January 27, 2007 
     18 
     19Fixes: 
     20  * Vector functions with an empty vector didn't return anything. 
     21    Reported by Talvo. [SW] 
     22  * Several typos in server messages. Fixed by Sketch, Stoko. 
     23  * Help fixes by Malix, [GM], Talvo, Sketch, and others. 
     24  * Crash bug in lmath() fixed. [GM] 
     25  * Crash bug in list functions fixed. [GM] 
     26  * list2arr in C now removes markup. list2arr_ansi() was added. [GM] 
     27  * Compilation problems on IRIX and similar OSes. [SW] 
     28  * Matcher bug with multiple wildcards fixed. Reported by Ian. [SW] 
     29  * Garbled output of locks from examine. Reported by Intrevis. [SW]. 
     30  * regraballi() couldn't use its output seperator argument. Reported 
     31    by Jules. [SW] 
     32  * Looking at an object used the looker, not the lookee, as the origin 
     33    of the name for @ahear/@aahear/@amhear. [SW] 
     34  * Fixed the distribution of random numbers with a huge range. Reported 
     35    by Luke.  
    1636 
    1737Version 1.8.2 patchlevel 1                      November 26, 2006 
  • 1.8.3/trunk/INSTALL

    r523 r654  
    3333"log" (log files), and "save" (backup databases).  Finally, the "hints" 
    3434directory is used during the installation process, the "po" directory 
    35 holds translation message files, and the "os2" directory contains files 
    36 of using in building for OS/2. 
     35holds translation message files. 
    3736 
    3837 pennmush--+-> src 
     
    4746           |              \-> save  
    4847           +-> hints  
    49            +-> os2 
    5048           +-> po 
    5149           +-> utils  
     
    5654operating systems including at least: 
    5755 
    58     NeXT Mach 2.1 
    59     Sun Sparc SunOS 4.1.x 
    60     Sun Sparc and i386 Solaris 2.x  
    61     DEC Decstation Ultrix 4.x and OSF/1 
    62     DEC Alpha OSF/1 and Linux 
    63     SGI Indy Irix 5.x and 6.x 
    64     HP 9000 series HP-UX 8.x 
    65     IBM RS/6000 AIX 3.2 
    66     IBM S/390 Linux 
    67     Novell Unixware SVR4 
    68     Linux 
    69     FreeBSD 
    70     AT&T SVR4 
    71     Windows 95/NT cygwin, mingw32, and MSVC++ 
    72     OS/2 
     56    GNU/Linux, NetBSD, FreeBSD on many architectures 
     57        Mac OS X on PowerPC 
     58        Microsoft Windows on x86 
     59          
    7360 
    7461There's no real reason why PennMUSH shouldn't compile on any 32-bit 
    75 or better BSD, System V, or POSIX operating system.  Javelin does his 
    76 development on a Linux PC these days. 
    77  
    78 If you have serious problems, contact Javelin and he will try to help 
    79 you. Email is the best way to get a fast response; in an emergency, you 
    80 can bother him on a MUD, but for code problems, email will probably get 
    81 you a better response. 
     62or better BSD, System V, or POSIX operating system.  Development is 
     63primarily done on GNU/Linux and Mac OS X systems. 
    8264 
    8365============================================================================ 
     
    147129want to customize their MUSH server, and don't feel like compiling it 
    148130themselves.  This binary distribution may not contain the src, hdrs, 
    149 hints, or os2 directories and may be missing several key files (like 
     131or hints directories and may be missing several key files (like 
    150132Configure) from the pennmush directory.  It does include the options.h 
    151133that it was built with, as an aid to those who decide later that they 
  • 1.8.3/trunk/MANIFEST

    r559 r654  
    77CHANGES.181 
    88CHANGES.182 
     9CHANGES.183 
    910CHANGES.OLD 
    1011COPYRITE 
     
    6061game/txt/hlp/pennv181.hlp 
    6162game/txt/hlp/pennv182.hlp 
     63game/txt/hlp/pennv183.hlp 
    6264game/txt/hlp/pennvOLD.hlp 
    6365game/txt/index-files.pl 
     
    128130hints/next.sh 
    129131hints/openbsd.sh 
    130 hints/os2.sh 
    131132hints/solaris_2.sh 
    132133hints/sunos_4.sh 
     
    135136hints/win32.sh 
    136137options.h.dist 
    137 os2/GCCOPT.CMD 
    138 os2/Makefile 
    139 os2/Penn-OS2.htm 
    140 os2/config.h 
    141138po/Makefile 
    142139src/Makefile.SH 
  • 1.8.3/trunk/Makefile.SH

    r557 r654  
    9494    (cd utils; sh mkcmds.sh switches) 
    9595 
    96 hdrs/funs.h: src/fun*.c src/bsd.c src/conf.c src/extmail.c src/help.c src/wiz.c src/sql.c Patchlevel 
     96hdrs/funs.h: src/fun*.c src/bsd.c src/conf.c src/extmail.c src/help.c src/markup.c src/wiz.c src/sql.c Patchlevel 
    9797    (cd utils; sh mkcmds.sh functions) 
    9898 
  • 1.8.3/trunk/Patchlevel

    r574 r654  
    11Do not edit this file. It is maintained by the official PennMUSH patches. 
    2 This is PennMUSH 1.8.2p1 
     2This is PennMUSH 1.8.3p0 
  • 1.8.3/trunk/game

    • Property svn:ignore changed from
      *.cnf
      ignore
      netmush
      info_slave
      to
      #!/bin/sh
      #
      # usage: restart
      #
      # REQUIRED: You must set this to the path to your game directory.
      # E.g.: /home/mush/game
      GAMEDIR=/Users/shawnw/src/penn/1.8.3/devel/game/

      # OPTIONAL things that you may want to tweak.

      # Uncomment the line below to attempt to allow crashes to produce
      # core dumps. If you're getting crashes, this is the best way
      # to debug them.
      #ulimit -c unlimited

      # Internationalization stuff
      # Set LANG here to get international character sets and, if someone's
      # done it, translation of messages.
      # Vaild locales are usually <lang_code>_<COUNTRY CODE>
      # Example (uncomment to use):
      #LANG=fr_FR

      # Time zone stuff
      # If you want your MUSH to run in a different timezone than the one
      # you're in, you need to identify the target time zone file in
      # /usr/share/zoneinfo or /usr/lib/zoneinfo. Then uncomment the next
      # two lines and set TZ to the desired timezone file, as shown, with
      # an initial colon:
      #TZ=:EST5EDT
      #export TZ


      # The config file. Best to keep this as is. If you must change
      # the name, make it a link to mush.cnf.
      CONF_FILE=mush.cnf

      #######################################################################

      if [ -z "$GAMEDIR" ]; then
      echo "You must set GAMEDIR in the restart script."
      exit 1
      fi

      if [ ! -d "$GAMEDIR" ]; then
      echo "GAMEDIR doesn't appear to be a directory. It's: $GAMEDIR"
      exit 1
      fi

      cd $GAMEDIR
      echo Running from `pwd`

      if [ ! -f "$CONF_FILE" ]; then
      echo "CONF_FILE doesn't exist. It's: $CONF_FILE"
      echo "Create $CONF_FILE from $GAMEDIR/mushcnf.dst and run 'make update'"
      exit 1
      fi

      # If netmush isn't here, they probably didn't make install
      # In any case, we'd better not proceed.
      if [ ! -e netmush ]; then
      echo "I don't see $GAMEDIR/netmush. Did you remember to make install?"
      exit 1
      fi

      #
      # Read the cnf file and set some variables.
      #
      INDB=`egrep "^input_database" $CONF_FILE | sed "s/.*[ ][ ]*.*\/\(.*\)/\1/" | sed 's/\r$//'`
      OUTDB=`egrep "^output_database" $CONF_FILE | sed "s/.*[ ][ ]*.*\/\(.*\)/\1/" | sed 's/\r$//'`
      PANICDB=`egrep "^crash_database" $CONF_FILE | sed "s/.*[ ][ ]*.*\/\(.*\)/\1/" | sed 's/\r$//'`
      PANICDIR=`egrep "^crash_database" $CONF_FILE | sed "s/.*[ ][ ]*\(.*\)\/.*/\1/" | sed 's/\r$//'`
      COMPRESSOR="cat"
      SUFFIX=""

      # Find out what the compression program is, if any
      egrep -s "^compress_program[ ]*[A-Za-z0-9]" $CONF_FILE
      nocompress=$?
      if [ "$nocompress" -eq 0 ]; then
      COMPRESSOR=`egrep "^compress_program" $CONF_FILE | sed "s/[^ ]*[ ]*\(.*\)/\1/" | sed 's/\r$//'`
      SUFFIX=`egrep "^compress_suffix" $CONF_FILE | sed "s/[^ ]*[ ]*\(.*\)/\1/" | sed 's/\r$//'`
      fi


      #-- start up everything

      # Prevent double-starting things. You may need to provide a pathname for
      # some of the commands. System V flavors need "ps -f" instead of "ps uwx".
      mush=`ps uwwx | grep " $GAMEDIR/$CONF_FILE" | grep -v grep | wc -l`


      if [ "$mush" -gt 0 ]; then
      echo Mush already active or some other process is using $GAMEDIR/$CONF_FILE.
      exit 0
      fi

      echo Building text file indexes.
      (cd txt; make)

      echo Restarting Mush.

      if [ -r "$PANICDIR/$PANICDB" ]; then
      end="`tail -1 $PANICDIR/$PANICDB`"
      if [ "$end" = "***END OF DUMP***" ]; then
      echo "Recovering PANIC dump."
      cat $PANICDIR/$PANICDB | $COMPRESSOR > data/$OUTDB$SUFFIX
      rm $PANICDIR/$PANICDB
      echo "PANIC dump successfully recovered."
      else
      mv $PANICDIR/$PANICDB save/$PANICDB.corrupt
      echo "Warning: PANIC dump corrupt. Using older db."
      fi
      fi

      # Copy the last set of log files to save/
      mv -f log/*.log save/

      if [ -r "data/$OUTDB$SUFFIX" ]; then
      rm -f save/$INDB$SUFFIX.old
      mv -f data/$INDB$SUFFIX save/$INDB$SUFFIX.old
      mv data/$OUTDB$SUFFIX data/$INDB$SUFFIX
      else
      echo "No $OUTDB$SUFFIX found."
      if [ -r "data/$INDB$SUFFIX" ]; then
      echo "Using $INDB$SUFFIX."
      else
      echo "No $INDB$SUFFIX found."
      if [ -r "save/$INDB$SUFFIX.old" ]; then
      echo "Using save/$INDB$SUFFIX.old."
      cp save/$INDB$SUFFIX.old data/$INDB$SUFFIX
      else
      echo "No database found. Mush will start with a minimal world."
      fi
      fi
      fi

      if [ -r reboot.db ]; then
      rm -f reboot.db
      fi

      DATEMSK="${GAMEDIR}/getdate.template"
      export DATEMSK

      LC_ALL=$LANG LANG=$LANG ./netmush $GAMEDIR/$CONF_FILE &
  • 1.8.3/trunk/game/restart

    r561 r654  
    139139 
    140140DATEMSK="${GAMEDIR}/getdate.template" 
    141 export DATEMSK 
    142141 
    143142LC_ALL=$LANG LANG=$LANG ./netmush $GAMEDIR/$CONF_FILE & 
  • 1.8.3/trunk/game/txt/hlp/pennattr.hlp

    r525 r654  
     1& ATTRIBUTE FLAGS 
     2  Attribute flags are set on an object's attributes using @set, or applied 
     3  to attributes globally using @attrib. Their names (and, when applicable, 
     4  the character used in examine as shorthand for the flag) include: 
     5 
     6  no_command ($)    Attribute will not be checked for '$' commands and 
     7                    '^' listen patterns. 
     8  visual (v)        Attribute can be seen by anyone via get(), eval(), 
     9                    ufun(), zfun(), and similar functions. 
     10  no_inherit (i)    Attribute will not be inherited by the children of 
     11                    this object. 
     12  no_clone (c)      Attribute will not be copied if the object is @clone'd. 
     13  regexp (R)        Match $-commands and ^-listens using regular expressions. 
     14                    See 'help regexps'. 
     15  case (C)          Match $-commands and ^-listens case sensitively. 
     16  safe (S)          Attribute may not be modified, without unsetting this flag. 
     17  mortal_dark (m)   Attribute cannot be seen by mortals. This flag can only 
     18                    be set by royalty and wizards.  "hidden" is a synonym. 
     19 
     20  Continued in 'help attribute flags2' 
     21& ATTRIBUTE FLAGS2 
     22  noname (N)        Attribute won't show name in @o-* messages. 
     23  nospace (s)       Attribute won't append a space in @o-* messages. 
     24  wizard (w)        Attribute can only be set by wizards. 
     25                    This flag can only be set by royalty and wizards. 
     26  veiled (V)        Attribute value will not be shown on default examine, 
     27                    but is still otherwise accessible (for spammy attribs). 
     28  debug (b)         Show debug output when this attribute is evaluated. 
     29  nearby (n)        Even if this attribute is visual, it can only be 
     30                    retrieved if you're co-located with the object. 
     31  public (p)        This attribute can be evaluated by any object, even 
     32                    if safer_ufun is in use. DANGEROUS! AVOID! 
     33  aahear (A)        ^-listens on this attribute match like @aahear 
     34  amhear (M)        ^-listens on this attribute match like @amhear 
     35 
     36  Continued in 'help attribute flags3' 
     37& ATTRIBUTE FLAGS3 
     38  prefixmatch       When a user attempts to set an attribute using @<attrib>, 
     39                    this attribute will be matched down to its unique 
     40                    prefixes. This flag is primarily used internally. 
     41  `                 This attribute is a branch. See: help ATTRIBUTE TREES 
    142& ATTRIBUTE TREES 
    243& ATTR TREES 
     
    2465attributes will be created as needed to support it. 
    2566 
    26 See help attribute trees2 for more information and examples. 
     67See 'help attribute trees2' for more information and examples. 
    2768 
    2869& ATTRIBUTE TREES2 
     
    4788on examine.  
    4889 
    49 See help attribute trees3 for more information and examples. 
     90See 'help attribute trees3' for more information and examples. 
    5091 
    5192& ATTRIBUTE TREES3 
     
    74115  ... 
    75116 
    76 See help attribute trees4 for information about @parent and attribute trees. 
     117See 'help attribute trees4' for information about @parent and attribute trees. 
     118 
    77119& ATTRIBUTE TREES4 
    78120& ATTR TREES4 
  • 1.8.3/trunk/game/txt/hlp/pennchat.hlp

    r531 r654  
    3434  being clobbered by the chat system. 
    3535 
    36   See also: chat, CHAN_USEFIRSTMATCH 
     36See also: chat, CHAN_USEFIRSTMATCH 
    3737& CHAN_USEFIRSTMATCH 
    3838  CHAN_USEFIRSTMATCH (any type) 
     
    5757  information in broadcasts. 
    5858 
    59   See also: chat 
     59See also: chat 
    6060& @channel 
    6161  @channel/list [<channel-prefix>] 
     
    8181  and a description of the channel's purpose. 
    8282 
    83   More commands are provided in "help @channel2".  See also: chat 
     83  More commands are provided in "help @channel2". 
     84   
     85See also: chat 
    8486& @channel2 
    8587  @channel/who <channel> 
     
    150152  @channel/delete removes a channel. You must own it or be Wizard. 
    151153  @channel/desc sets the channel's description, shown on @channel/what. 
    152     Descriptions are limited to 256 characters. 
     154    Descriptions are limited to 256 characters. If there are any commas 
     155    in the description, the whole string should be enclosed in {}'s. 
    153156  @channel/rename is used to rename a channel. 
    154157 
     
    335338  @clock. 
    336339 
    337   See also: @clock 
     340See also: @clock 
    338341& CRECALL() 
    339342  crecall(<channel>[, <lines> [, <start line> [, <osep> [, <timestamps?> ]]]]) 
     
    344347  include their timestamps; otherwise, they will not. 
    345348 
    346   See also: @channel3 
     349See also: @channel3 
    347350& Channel functions 
    348351  Channel functions work with the channel system. 
  • 1.8.3/trunk/game/txt/hlp/penncmd.hlp

    r531 r654  
    1717  @-ATTRIBUTES   @-BUILDING     @-GENERAL      @-WIZARD 
    1818  
     19  Commands that can only be used by connected players are listed in 
     20  HELP SOCKET COMMANDS. 
    1921& @-ATTRIBUTES 
    2022These '@' commands set standard message/action sets on objects. Each comes 
     
    301303  @alias has no effect on non-players. 
    302304 
    303   See also: @name, alias(), fullalias() 
     305See also: @name, alias(), fullalias() 
    304306& @allhalt 
    305307  @allhalt 
     
    447449  the rest of the commands in the current queue. 
    448450 
    449   @assert does the inverse: stopping execution if <boolean> evaluse to false. 
     451  @assert does the inverse: it stops execution if <boolean> evaluates to false. 
    450452 
    451453  Examples: 
     
    462464  (The @switch is run, which queues 'think Third', think First is 
    463465   run, displaying 'First', command execution is broken (so we never 
    464    think Second, and then the queued 'think Third' is run, displaying 
     466   think Second), and then the queued 'think Third' is run, displaying 
    465467   Third. If you figured that out, you have a very good understanding 
    466468   of the PennMUSH queue. :) 
    467469 
    468   See also: ACTION LISTS, QUEUE, BOOLEAN VALUES 
     470See also: ACTION LISTS, QUEUE, BOOLEAN VALUES 
    469471& @charges 
    470472  @charges <object> = <integer> 
     
    554556See also: @chzone, ZONES 
    555557& @clone 
    556   @clone <object, room, or exit>[=<new name>] 
    557   @clone/preserve <object, room, or exit>[=<new name>] 
    558  
    559   For objects, creates an exact duplicate of it and puts it in the 
     558  @clone <thing, room, or exit>[=<new name>] 
     559  @clone/preserve <thing, room, or exit>[=<new name>] 
     560 
     561  For things, creates an exact duplicate of it and puts it in the 
    560562  current room. For exits, it creates an exact duplicate of that 
    561563  exit, except the clone's source is the current room rather than 
     
    688690  for example. More complex things are, obviously, possible. 
    689691  
    690   See also: @exitformat, @nameformat, @descformat 
     692See also: @exitformat, @nameformat, @descformat 
    691693& @invformat 
    692694  @invformat <object> [=<format>] 
     
    703705  for example. More complex things are, obviously, possible. 
    704706  
    705   See also: inventory 
     707See also: inventory 
    706708& @descformat 
    707709  @descformat <object> [=<text>] 
     
    715717  "look" for each room's @desc. 
    716718 
    717   See also: @exitformat, @nameformat, @conformat, @idescformat 
     719See also: @exitformat, @nameformat, @conformat, @idescformat 
    718720& @idescformat 
    719721  @idescformat <object> [=<text>] 
     
    727729  "look" for each object's @idesc. 
    728730 
    729   See also: @exitformat, @nameformat, @conformat, @descformat 
     731See also: @exitformat, @nameformat, @conformat, @descformat 
    730732& @nameaccent 
    731733  @nameaccent <object> [=<accent template>] 
     
    741743  @nameformat is used. 
    742744 
    743   See also: accent(), @nameformat 
     745See also: accent(), @nameformat 
    744746& @nameformat 
    745747  @nameformat <object> [=<format>] 
     
    755757  @nameformat here = %1 [if(isdbref(zone(%0)),<[name(zone(%0))]>)] 
    756758 
    757   See also: @exitformat, @conformat, @descformat 
     759See also: @exitformat, @conformat, @descformat 
    758760& @cost 
    759761  @cost <object> = <amount>  
     
    804806  @create <name> [=<cost>] 
    805807 
    806   Creates a thing with the specified name. Creating an object costs 
     808  Creates a thing with the specified name. Creating a thing costs 
    807809  a certain amount of MUSH money, which usually defaults to 10 pennies. 
    808810  You can specify a higher cost if you wish, but not a lower one. 
    809   This cost is refunded if you @destroy/@recycle the object
    810  
    811   Once you have created an object, you can use it as a PUPPET, to store 
     811  This cost is refunded if you @destroy/@recycle the thing
     812 
     813  Once you have created a thing, you can use it as a PUPPET, to store 
    812814  USER-DEFINED COMMANDS, or just as a prop. Some MUSHes choose to limit  
    813815  the number of objects that players can create by setting a QUOTA. 
    814816  
    815   See also: give, @quota, MONEY 
     817See also: give, @quota, MONEY 
    816818& @dbck 
    817819  @dbck 
     
    886888    defaults for that attribute on that MUSH. 
    887889   
    888   If an attribute contains special characters, such as %r or %t, or 
    889   begins or ends with spaces, then the command sent will be an @set command 
    890   that has its special characters escaped, and with such %rs, %ts, and %bs 
    891   as to exactly duplicate the attribute as it is currently set. 
     890  If an attribute contains special characters, such as %r or %t, ansi, pueblo, 
     891  or begins or ends with spaces, then the command sent will be an @set command 
     892  that has its special characters escaped, and with such %rs, %ts, and %bs as 
     893  to exactly duplicate the attribute as it is currently set. 
    892894 
    893895(continued in help @decompile3) 
     
    10001002    an exit named "Out <S>;s;south;out;o" coming back from the kitchen 
    10011003    to whatever room you are currently in. 
    1002      
    1003 See also: @open, @link, EXITS, @create 
     1004 
     1005See also: @open, @link, EXITS, @create, DBREF 
    10041006& @doing 
    10051007  @doing <message> 
     
    10541056  or room, specified as <name> or #<number> or 'me' or 'here'. Sets  
    10551057  the drop message for <object>. The message is displayed when a  
    1056   player drops <object>. Without a message argument, it clears the  
     1058  player drops <object>. Without a message argument, it clears the  
    10571059  message.  
    10581060 
     
    10601062  the exit. 
    10611063 
    1062   See also: drop, @odrop, @adrop. 
     1064See also: drop, @odrop, @adrop. 
    10631065& @dump 
    10641066  @dump [/paranoid] [check interval] 
     
    10841086  type "sit down" instead of "enter chair" - using the object name is 
    10851087  not necessary. Note that the enter alias is checked after normal exits. 
    1086   Like an exit, it may have a semi-colon separated list of words, 
     1088  Like an exit, it may have a semicolon separated list of words, 
    10871089  i.e. sit down;sit;sit on chair 
    10881090& @edit 
     
    11611163  @disable <option> is the same thing as @config/set <option>=no 
    11621164 
    1163   See also: @config 
     1165See also: @config 
    11641166& @zenter 
    11651167& @ozenter 
     
    12521254  '@exitformat here = Exits: [iter(%0,name(##))]', for example. 
    12531255 
    1254   See also: TRANSPARENT, @conformat, @nameformat, @descformat 
     1256See also: TRANSPARENT, @conformat, @nameformat, @descformat 
    12551257& @failure 
    12561258  @failure <object> [=<message>] 
     
    13341336 
    13351337See also: follow, unfollow, followers(), @ofollow, @afollow 
     1338& @unfollow 
     1339  @unfollow <object> = <message> 
     1340 
     1341  Sets the message shown to someone after they stop following  
     1342  the object (using the 'unfollow' command).  
     1343 
     1344See also: follow, unfollow, followers(), @ounfollow, @aunfollow 
    13361345& @FORWARDLIST 
    13371346  @forwardlist <object> [=<list of dbrefs>] 
     
    13651374 
    13661375See also: DEBUG 
    1367 & @unfollow 
    1368   @unfollow <object> = <message> 
    1369  
    1370   Sets the message shown to someone after they stop following  
    1371   the object (using the 'unfollow' command).  
    1372  
    1373 See also: follow, unfollow, followers(), @ounfollow, @aunfollow 
    13741376& @force 
    13751377  @force[/noeval] <object>=<command> 
     
    13921394  evaluate the command when the forcee runs it. 
    13931395 
    1394 Example
     1396Examples
    13951397  @create Lackey 
    13961398  > Created: Object #103  
     
    14341436      Be very very careful with this.  
    14351437 
    1436   See also: help flags. See help @flag2 for information on @flag/add 
     1438See also: help flags. See help @flag2 for information on @flag/add 
    14371439& @flag2 
    14381440  @flag/add is used to add a new flag with the given name. Arguments 
     
    19001902 
    19011903See also: LISTENING, @ahear, @amhear, @aahear 
    1902 & NEW LOCKS 
    1903   In PennMUSH 1.7.5, several new features have been added to locks. 
    1904  
    1905   Locks can now be inherited off of parents, just like attributes. 
    1906   By default, locks are set no_inherit, but this flag can be cleared. 
    1907  
    1908   There are now lock flags including ones to control inheritance, 
    1909   copying in a @clone, who can set them, and so on. Details are 
    1910   in HELP @LSET. 
    1911    
    1912   Indirect lock keys (@#1234) can now refer to other lock names on 
    1913   objects, not just a lock of the same name. See HELP @LOCK4. 
    1914  
    1915   There is a new lock key for testing flags and object types.  
    1916   See HELP @LOCK9 for more information. 
    19171904& LOCKING 
    19181905& LOCKS 
     
    19201907  @lock[/<switch>] <object>=<key>  
    19211908   
    1922   This command "locks" the object, specifying (by the key) who or what can 
    1923   do certain things with the object. There are many different types of locks, 
    1924   all of which are described in "help locktypes" and which are designated by 
    1925   the switch. The "basic" lock determines, for players and objects, who can 
    1926   pick them up. For exits, it determines who can go through the exit. 
    1927   All other locks can be set the same way as the basic lock. 
     1909  This command "locks" the object, specifying a key which determines who or 
     1910  what can do certain things with the object. There are many different types 
     1911  of locks, all of which are described in "help locktypes" and which are 
     1912  designated by the switch. The "basic" lock determines, for players and 
     1913  things, who can pick them up. For exits, it determines who can go through 
     1914  the exit. All other locks can be set the same way as the basic lock. 
    19281915 
    19291916  Whenever you "pass" the basic lock, you succeed in doing something with 
     
    19311918  messages and actions. If you fail to pass the basic lock, you trigger 
    19321919  the @failure/@ofailure/@afailure messages and actions. Other locktypes 
    1933   may also have such success/failure messages
     1920  may also have such success/failure messages: see "help failure" for info
    19341921 
    19351922  You can specify <object> and <key> as either the name of an object in 
    19361923  the immediate area, a DBREF number, "me", or "here".  
    1937  
    1938   Many new features have recently been added to locks. See HELP NEW LOCKS 
    1939   for details. 
    19401924 
    19411925(continued in help @lock2)   
    19421926& @lock2 
    19431927  You can lock an object in several different ways. The simplest lock is to 
    1944   lock it to one other thing
     1928  lock it to one other object with the '=', signifying a DBRef # match.
    19451929   @lock My Toy = = me 
    19461930     This locks the object "My Toy" to you and you alone. It is recommended 
    19471931     that you @lock me == me in order to prevent anyone else from picking 
    1948      you up. The two = signs are NOT a typo! 
    1949  
    1950   You can lock an object -against- one other object as well, using the '!'  
    1951   symbol: 
     1932     you up. The two = signs are NOT a typo! The first is part of the @lock 
     1933     syntax (as shown at the top of "help @lock") the second is a lock key 
     1934     that means "exactly this object". 
     1935   
     1936  You can lock an object -against- another object as well, using the '!'  
     1937  symbol before any other key: 
    19521938    @lock Shared Toy = !Vector Sigma 
    19531939      This locks the object "Shared Toy" to everyone -except- Vector Sigma. 
     
    21022088    @lock/use commands = !dbreflist^deny & dbreflist^allow  
    21032089 
    2104 See also: locktypes, @clock, objid() 
     2090See also: locktypes, @clock, elock(), lock(), objid() 
    21052091& locktypes 
    21062092& locklist 
     
    21382124  @lock/chzone          Who can @chzone to this object if it's a ZMO 
    21392125  @lock/forward         Who can @forwardlist a message to this object  
    2140   @lock/control    Who can control this object (only if set) 
    2141   @lock/dropto     Who can trigger this container's drop-to. 
    2142   @lock/destroy    Who can destroy this object if it's DESTROY_OK 
     2126  @lock/control         Who can control this object (only if set) 
     2127  @lock/dropto          Who can trigger this container's drop-to. 
     2128  @lock/destroy         Who can destroy this object if it's DESTROY_OK 
    21432129  @lock/interact        Who can send sound (say/pose/emit/etc) to this object 
    21442130  @lock/take            Who can get things contained in this object 
    21452131 
    2146   See also: @lock, @lset, @clock, FAILURE 
     2132See also: @lock, @lset, @clock, FAILURE 
    21472133& @lset 
    21482134  @lset <object>/<lock type>=[!]<flag> 
     
    21672153  file to log to.  /cmd is default. 
    21682154 
    2169   See also: @logwipe 
     2155See also: @logwipe 
    21702156& @logwipe 
    21712157  @logwipe/<switch> <password> 
     
    21762162  command. 
    21772163 
    2178   See also: @log 
     2164See also: @log 
    21792165& @map 
    21802166  @map[/delim] [<delim>] <list> = <function or pattern> 
     
    22582244  the new name will be passed as %1. 
    22592245 
    2260   See also: @alias 
     2246See also: @alias 
    22612247& @newpassword 
    22622248  @newpassword <player> = <password> 
     
    23112297  of their respective commands. 
    23122298 
    2313 See also: @emit, @lemit, @pemit, @prompt, @remit, @oemit, @zemit,  
    2314           nsemit(), nslemit(), nspemit(), nsprompt(), nsremit(), nsoemit(),  
    2315           nszemit(), PROMPT_NEWLINES 
     2299See also: @emit, @lemit, @pemit, @prompt, @remit, @oemit, @zemit, nsemit(), 
     2300  nslemit(), nspemit(), nsprompt(), nsremit(), nsoemit(), nszemit(), 
     2301  PROMPT_NEWLINES 
    23162302& @odeath 
    23172303  @odeath <player> [=<message>] 
     
    24942480  If the =<message> part is omitted, the message will be reset. 
    24952481 
    2496 Ex: @opay Vending Machine=sticks a quarter in the vending machine. 
     2482  Ex: @opay Vending Machine=sticks a quarter in the vending machine. 
    24972483 
    24982484See also: give, @cost, @payment, @apayment, MONEY 
     
    25052491  specified name. You can then use the @link command to set the exit's 
    25062492  destination, or you can set it automatically by using the DBREF of a 
    2507   destination, which can be a room or object. (Note that you CANNOT open 
    2508   exits from objects.) If you also include the second exit name, an exit 
     2493  destination, which can be a room or thing. (Note that you CANNOT open 
     2494  exits from things.) If you also include the second exit name, an exit 
    25092495  from the destination room will be opened back to the room you are in. 
    25102496 
     
    25142500  the list of Obvious Exits in a room. 
    25152501 
    2516 Ex: @open Up;u;climb = #255, Down;dow;do;d;fall 
     2502  Ex: @open Up;u;climb = #255, Down;dow;do;d;fall 
    25172503 
    25182504See also: EXITS, @link, @dig 
     
    25302516  that you put @osuccs on all exits and all takeable objects. 
    25312517 
    2532 Ex: @osucc North=heads north into the catacombs. 
     2518  Ex: @osucc North=heads north into the catacombs. 
    25332519   
    25342520  If the =<message> part is omitted, the message will be reset. 
     
    26102596  is reset to nothing. May be abbreviated @pay.  
    26112597 
    2612 See also: give, @apay, @opay, and @cost. 
     2598See also: give, @apay, @opay, @cost. 
    26132599& @receive 
    26142600& @oreceive 
     
    26602646  /spoof, /noeval 
    26612647 
    2662   See also: @pemit, @nsprompt, prompt(), nsprompt(), PROMPT_NEWLINES 
     2648See also: @pemit, @nsprompt, prompt(), nsprompt(), PROMPT_NEWLINES 
    26632649& PROMPT_NEWLINES 
    26642650  PROMPT_NEWLINES <1|0> 
     
    26762662  these clients. 
    26772663 
    2678   See also: @prompt, prompt() 
     2664See also: @prompt, prompt() 
    26792665& @pemit 
    26802666  @pemit[/<switch>] <object> = <message> 
     
    27052691  except from Wizards or those with the pemit_all power. 
    27062692 
    2707 See also @emit, @oemit, @remit, NOSPOOF, and SPOOFING. 
     2693  See also @emit, @oemit, @remit, NOSPOOF, and SPOOFING. 
    27082694& @poll 
    27092695  @poll <poll question> 
     
    28682854   the enactor or the Can_nspemit power. 
    28692855 
    2870 See also: @emit, @pemit, @oemit, SPOOFING, NOSPOOF and CONTROL. 
     2856See also: @emit, @pemit, @oemit, SPOOFING, NOSPOOF, CONTROL. 
    28712857& @restart 
    28722858  @restart <object> or @restart/all 
     
    29802966                                          worth more than 10 coins. 
    29812967  
    2982   See also: lsearch, lsearchr  
     2968See also: lsearch, lsearchr  
    29832969& @select 
    29842970  @select <string>=<expr1>,<action1>[,<exprN>,<actionN>]...[,<default>] 
     
    30293015  The fourth form sets (or unsets) an attribute flag on the specified 
    30303016  attribute. See 'help attribute flags'. 
    3031 & attribute flags 
    3032   Attribute flags are set on an object's attributes using @set, or applied 
    3033   to attributes globally using @attrib. Their names (and, when applicable, 
    3034   the character used in examine as shorthand for the flag) include: 
    3035   
    3036   no_command ($)    Attribute will not be checked for '$' commands and 
    3037                     '^' listen patterns.  
    3038   visual (v)        Attribute can be seen by anyone via get(), eval(), 
    3039                     ufun(), zfun(), and similar functions.  
    3040   no_inherit (i)    Attribute will not be inherited by the children of 
    3041                     this object.  
    3042   no_clone (c)      Attribute will not be copied if the object is @clone'd. 
    3043   regexp (R)        Match $-commands and ^-listens using regular expressions. 
    3044                     See 'help regexps'. 
    3045   case (C)          Match $-commands and ^-listens case sensitively. 
    3046   safe (S)          Attribute may not be modified, without unsetting this flag. 
    3047   mortal_dark (m)   Attribute cannot be seen by mortals. This flag can only  
    3048                     be set by royalty and wizards.  "hidden" is a synonym. 
    3049  
    3050   Continued in 'help attribute flags2' 
    3051 & attribute flags2 
    3052   noname (N)        Attribute won't show name in @o-* messages. 
    3053   nospace (s)       Attribute won't append a space in @o-* messages. 
    3054   wizard (w)        Attribute can only be set by wizards.  
    3055                     This flag can only be set by royalty and wizards. 
    3056   veiled (V)        Attribute value will not be shown on default examine, 
    3057                     but is still otherwise accessible (for spammy attribs). 
    3058   debug (b)         Show debug output when this attribute is evaluated. 
    3059   nearby (n)        Even if this attribute is visual, it can only be 
    3060                     retrieved if you're co-located with the object. 
    3061   public (p)        This attribute can be evaluated by any object, even 
    3062                     if safer_ufun is in use. DANGEROUS! AVOID! 
    3063   aahear (A)        ^-listens on this attribute match like @aahear 
    3064   amhear (M)        ^-listens on this attribute match like @amhear 
    3065  
    3066   Continued in 'help attribute flags3' 
    3067 & attribute flags3 
    3068   prefixmatch       When a user attempts to set an attribute using @<attrib>, 
    3069                     this attribute will be matched down to its unique 
    3070                     prefixes. This flag is primarily used internally. 
    3071   `                 This attribute is a branch. See: help ATTRIBUTE TREES 
    30723017& @sex 
    30733018  @sex <player> = <gender>   
     
    31863131  Example: @sql SHOW TABLES 
    31873132 
    3188   See also: sql(), sqlescape(), mapsql() 
     3133See also: sql(), sqlescape(), mapsql() 
    31893134& @squota 
    31903135  @squota <victim> [= [+|-] <amount>] 
     
    32323177  @sweep [connected | here | inventory | exits ] 
    32333178  
    3234   @sweep gives you a list of all objects/players that are listening in 
    3235   the room you are currently in, as well as the objects you are 
    3236   carrying. Most objects only listen for a particular string or 
    3237   phrase, so they normally do not pose a problem if you need privacy. 
    3238   You will have to be careful of players and puppets since they will 
    3239   hear everything you say and do. (And might post the same to r.g.m!) 
     3179  @sweep gives you a list of all nearby objects that are listening, 
     3180  including the room you are in and the objects you are carrying. 
     3181  Most objects only listen for a particular string or phrase, so they 
     3182  normally do not pose a problem if you need privacy. You will have to be 
     3183  careful of players and puppets since they will hear everything you say 
     3184  and do. (And might post the same to r.g.m!) 
    32403185  AUDIBLE exits are also shown on an ordinary sweep, if the room is 
    32413186  also AUDIBLE. (Audible exits aren't active unless the room is audible). 
     
    33133258  to its home. 
    33143259 
    3315   See also: JUMP_OK, NO_TEL, @oxtport, @tport, @otport, @atport, @lock 
     3260See also: JUMP_OK, NO_TEL, @oxtport, @tport, @otport, @atport, @lock 
    33163261& @tport 
    33173262  @tport <object> [=<message>] 
     
    33253270  as %0 - %9. 
    33263271 
    3327   Example
     3272  Examples
    33283273    &GREET me=POSE waves hi. 
    33293274    @tr me/GREET 
     
    34483393   
    34493394& @verb3 
    3450   Example
     3395  Examples
    34513396   
    34523397  &VERB_EXAMPLE Test Obj