PennMUSH Community

Changeset 439

Show
Ignore:
Timestamp:
08/12/06 20:00:15 (2 years ago)
Author:
pennmush
Message:

PennMUSH 1.7.7p20 Archival

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • 1.7.7/CHANGES.177

    r437 r439  
    1818 
    1919========================================================================== 
     20 
     21Version 1.7.7 patchlevel 20                     September 4, 2003 
     22 
     23Major Changes: 
     24  * minimal.db is no more. If you start up the server and there's no 
     25    db to be found, it creates a new minimal database in memory 
     26    on the fly. Feel free to delete your coopy of minimal.db. [SW] 
     27    (In related news, the default OSUCC on #0 in minimal.db is gone.  
     28    Suggested by Cheetah@M*U*S*H. So much for the mists.) 
     29Minor Changes: 
     30  * SSL connections are now ended before the dump when rebooting, 
     31    but their descriptor information sticks around to ensure that 
     32    their @adisconnect is run after the reboot. Based on suggestions 
     33    by Vadiv@M*U*S*H and [TAP]. 
     34  * When _DEBUG is defined in a win32 build, don't copy pennmush.exe 
     35    to pennmush_run.exe. Makes debugging easier. Patch by Luke@M*U*S*H. 
     36  * In pueblo mode, no longer clear past images after each room look. 
     37    Patch by Konstantine Shirow. 
     38  * In pueblo mode, we no longer render ansi attributes or colors with 
     39    HTML tags; we assume the client will correctly handle them as ansi 
     40    intermixed with Pueblo. This solves a variety of problems. 
     41    Based on a discussion with Konstantine Shirow. 
     42  * When matching $commands and ^listens, insure that a matching attribute 
     43    exists before testing locks. This may break some strange locks using 
     44    %c, but hopefully won't. Suggested by Cheetah@M*U*S*H. 
     45  * The @scan command temporarily sets %c to the command to be scanned 
     46    (without "@scan" prefixed) so that it can detect commands that use 
     47    %c-matching. Based on ideas from Cheetah and Walker@M*U*S*H. 
     48  * Added support for Pueblo's md5 checksum. We track it on each 
     49    descriptor, though we don't do anything with it currently. 
     50  * Speed-up to fun_merge. Patch by Walker@M*U*S*H. 
     51  * Internal cleanup of flags in channel_broadcast. 
     52  * Wizards may @name themselves to names forbidden in names.cnf. 
     53    Patch by LeeLaLimaLLama@M*U*S*H. 
     54  * We are now forgiving of stupid non-RFC-compliant telnet clients 
     55    that send CR only even when they claim to be sending CRLF 
     56    (Read: MS Windows XP telnet). MS bug reported first by 
     57    Intrevis@M*U*S*H. 
     58  * Misleading restrict_command on @clone removed from restrict.cnf, 
     59    as @dig/@open/@create permissions already control @clone. 
     60    Suggested by Philip Mak. 
     61Functions: 
     62  * lstats() and quota() now allow objects to see stats/quota on other 
     63    objects they control (e.g., on their owners, perhaps). Suggested 
     64    by Philip Mak. 
     65  * hastype() can now test for type GARBAGE. Suggested by Tanaku@M*U*S*H. 
     66Commands: 
     67  * The new ']' command prefix causes the rest of the command-line 
     68    not to be evaluated by the expression parser. Try: ]think [add(1,1)] 
     69    Inspired by Elendor. 
     70  * @hook/ignore. [mux] 
     71  * @hook/override [Rhost, though they don't call it that] 
     72Attributes: 
     73  * @debugforwardlist forwards DEBUG output to dbrefs on the list. 
     74    Suggested by Balerion@M*U*S*H. 
     75Tests: 
     76  * A new test harness for developing regression test suites in perl 
     77    for PennMUSH is now included; few test suites are. If you can figure 
     78    out how to use this, write some tests for us! (If you can't, don't 
     79    ask about it, please :) 
     80Locks: 
     81  * @lock/interact can prevent other players from transmitting any 
     82    normal sound to you (that is, you won't hear them speak, pose,  
     83    emit, etc., like gagging them in a client). It doesn't control 
     84    page (use @lock/page) or @mail (use @lock/mail). You still 
     85    hear 'presence' messages (connects/disconnects/arrivals/leaves) 
     86    so you can have a sense of who can hear you but you can't hear. 
     87    Patch by Philip Mak. 
     88Fixes: 
     89  * Configure script no longer keeps adding -lssl -lcrypto over and 
     90    over to the Makefile. Report by Sholevi@M*U*S*H. 
     91  * Portability fixes for compiling with MSVC5 by Luke@M*U*S*H. 
     92  * The behavior of spaces inside parentheses that aren't part of a 
     93    function has been improved. Report by Jason Newquist. [TAP] 
     94  * txt/*.html files were being improperly escaped before being 
     95    sent to Pueblo connections. Report by Konstantine Shirow. 
     96  * mushdb.h includes flags.h, as it relies on constants from there. 
     97    Suggested by Philip Mak. 
     98  * Better error reporting on some failure messages in chunk allocator. 
     99    Patch by Philip Mak. 
     100  * @config/set with an invalid option now returns an error. 
     101    Report by Sholevi@M*U*S*H. 
     102  * Fix to interaction checking in notify_anything that could result 
     103    in the wrong check being performed. Report by Philip Mak. 
     104  * Help fixes by LeeLaLimaLLama@M*U*S*H, Sunny@M*U*S*H, Sketch@M*U*S*H. 
     105 
    20106 
    21107Version 1.7.7 patchlevel 19                     August 19, 2003 
  • 1.7.7/Configure

    r425 r439  
    47364736    if $test $? -eq 0; then 
    47374737      d_openssl="$define" 
    4738       libs="$libs $libssl $libcrypto" 
    47394738      echo '...and at least version 0.9.6. Great.' >&4 
    47404739    else 
    47414740      echo '...but not at least version 0.9.6.' >&4 
     4741      libssl='' 
     4742      libcrypto='' 
    47424743    fi 
    47434744else 
    47444745    echo "You don't seem to have openssl." >&4 
     4746    libssl='' 
     4747    libcrypto='' 
    47454748fi 
    47464749$rm -f test_openssl* core 
  • 1.7.7/MANIFEST

    r433 r439  
    170170game/names.cnf 
    171171game/restart 
    172 game/data/minimal.db 
    173172game/log/README 
    174173game/save/README 
     
    232231win32/pennmush.sln 
    233232src/SWITCHES 
     233test/MUSHConnection.pm 
     234test/PennMUSH.pm 
     235test/TestHarness.pm 
     236test/testatree.pl 
     237test/testhastype.pl 
  • 1.7.7/Makefile.SH

    r433 r439  
    4343CCFLAGS=$optimize -I.. -I../hdrs $ccflags 
    4444LDFLAGS=$ldflags 
    45 CLIBS=$libs $cryptlib 
     45CLIBS=$libs $cryptlib $libssl $libcrypto 
    4646LNS=$lns 
    4747INSTALL=$install 
  • 1.7.7/Patchlevel

    r437 r439  
    11Do not edit this file. It is maintained by the official PennMUSH patches. 
    2 This is PennMUSH 1.7.7p19 
     2This is PennMUSH 1.7.7p20 
  • 1.7.7/game/README

    r355 r439  
    1414  Under win32 using the Microsoft compiler, DO NOT rename mush.cnf. 
    1515  Also, ignore the restart script.  In the configuration file, turn off 
    16   disk database compression; it is not supported.  If this is you first 
    17   time starting a MUSH and you don't have an indb file (or you want 
    18   to start a new MUSH), copy game/data/minimal.db to game/data/indb. 
     16  disk database compression; it is not supported.   
    1917  Then go to the game directory and run PennMUSH.exe.  Poof, you're done. 
    2018 
     
    2624  a fairly standard Berkeley UNIX setup. If you're on a HP-UX or SysV 
    2725  machine, for example, you may need to change the restart script a bit 
    28   (the ps options, for example). 
     26  (the ps options, for example). Then run it. 
    2927 
    30   You should now be ready to start the game.  This distribution comes 
    31   packaged with a basic database - a God character, starting room, and 
    32   master room. This file is called game/data/minimal.db.  The restart 
    33   script will load this database if it doesn't find another database 
    34   to load. 
     28You should now be ready to start the game.  This distribution can 
     29general a minimal database - a God character, starting room, and 
     30master room.  The server will generate this database if it doesn't 
     31find another database to load. 
    3532 
    36 If you're starting with the minimal.db, the god character "One" has no 
    37 password, so you can log in without one. Of course, you should immediately 
    38 set one (via @newpasswd).  options.h has the Master Room as #2 by default; 
    39 in the provided database, this room is created for you. 
     33If you're starting with the minimal database, the god character "One" 
     34has no password, so you can log in without one. Of course, you should 
     35immediately set one (via @newpasswd).  options.h has the Master Room as 
     36#2 by default; in the minimal database, this room is created for you. 
    4037 
    4138Now you should be set -- all you have to do now is customize the 
  • 1.7.7/game/restart

    r429 r439  
    118118     cp save/$INDB$SUFFIX.old data/$INDB$SUFFIX 
    119119      else 
    120     echo "No save/$INDB$SUFFIX.old found." 
    121     if [ -r data/minimal.db ]; then 
    122        echo "Using data/minimal.db." 
    123        cat data/minimal.db | $COMPRESSOR > data/$INDB$SUFFIX 
    124     else 
    125      if [ -r data/minimal.db.Z ]; then 
    126         echo "Using data/minimal.db.Z." 
    127         zcat data/minimal.db.Z | $COMPRESSOR > data/$INDB$SUFFIX 
    128      else 
    129         echo "No minimal.db.Z found." 
    130         if [ -r data/minimal.db.gz ]; then 
    131           echo "Using data/minimal.db.gz." 
    132           gzip -d -c data/minimal.db.gz | $COMPRESSOR > data/$INDB$SUFFIX 
    133         else 
    134           echo "No minimal.db.gz found." 
    135           echo "I can't find any usable database." 
    136         fi 
    137      fi 
    138     fi 
    139       fi 
     120    echo "No database found. Mush will start with a minimal world." 
     121     fi 
    140122   fi 
    141123fi 
  • 1.7.7/game/restrict.cnf

    r433 r439  
    4040restrict_command @lock noguest 
    4141restrict_command @unlock noguest 
    42 restrict_command @clone noguest 
    4342restrict_command @create noguest 
    4443restrict_command @dig noguest 
     
    5857#restrict_command @open admin builder 
    5958#restrict_command @dig admin builder 
    60 #restrict_command @clone admin builder 
    6159 
    6260# Uncomment to disallow them to create objects 
  • 1.7.7/game/txt/hlp/penncmd.hlp

    r433 r439  
    99  score          slay           take           teach          think           
    1010  unfollow       use            whisper        WHO            with 
    11   "              :              ;              + 
     11  "              :              ;              +              ] 
    1212  
    1313  In addition to these, there are several types of '@' commands. @-commands  
     
    7474  @wizmotd       @wizwall       cd             ch             cv 
    7575  
     76& ] 
     77  The "]" command-prefix instructs the MUSH that the rest of the command 
     78  input that follows should not be evaluated. Here's an example: 
     79 
     80  > say [add(1,1)] 
     81  You say, "2" 
     82 
     83  > say \[add(1,1)\] 
     84  You say, "[add(1,1)]" 
     85 
     86  > ]say [add(1,1)] 
     87  You say, "[add(1,1)]" 
     88 
     89  > ]"[add(1,1)] 
     90  You say, "[add(1,1)]" 
     91   
     92  This can be used to pass unevaluated MUSHcode to softcoded commands 
     93  without having to escape every special character, or to help objects 
     94  set attributes to contain unevaluated code. 
     95 
    7696& @@ 
    7797  
     
    15101530  in command evaluation. The possible points, indicated by the proper switch: 
    15111531 
    1512   @hook/before: The attribute is evaluated before the command itself is run. 
    1513   @hook/after: The attribute is evaluated after the command is run. 
     1532  @hook/ignore: The attribute is evaluated before the built-in command is run. 
     1533                If it returns a false value, the command is skipped 
     1534                (the input is still matched against softcoded commands) 
     1535  @hook/override: The object/attribute is matched for a $command, 
     1536                and if it matches, it is run instead of the built-in command, 
     1537                but with the precedence of the built-in command (thus 
     1538                overriding not only the built-in command but any local 
     1539                $commands that might match). If the match fails, normal 
     1540                built-in command processing continues. Note that all locks 
     1541                and flags on the object (HALT, etc.) still apply. 
     1542  @hook/before: The attribute is evaluated before the built-in command is run. 
     1543  @hook/after: The attribute is evaluated after the built-in command is run. 
    15141544 
    15151545  In all cases, %# is the dbref of the object doing the command, and all 
    1516   hooks share the same set of q-registers. The results of the evaluated 
    1517   attribute is thrown away like it was wrapped in a call of null(). Also, 
    1518   in cases where a command and function do the same thing (e.g., @pemit and 
    1519   pemit()), only the command gets the hooks. 
     1546  hooks share the same set of q-registers. With /before and /after,  
     1547  the results of the evaluated attribute is thrown away like it was 
     1548  wrapped in a call of null(). Also, in cases where a command and function 
     1549  do the same thing (e.g., @pemit and pemit()), only the command gets 
     1550  the hooks. 
    15201551 
    15211552  Leaving out the object and attribute clears an existing hook. Wizards can 
     
    19471978  @lock/dropto      Who can trigger this container's drop-to. 
    19481979  @lock/destroy     Who can destroy this object if it's DESTROY_OK 
     1980  @lock/interact        Who can send sound (say/pose/emit/etc) to this object 
    19491981 
    19501982  See also: @lock, @lset, @clock, FAILURE 
     
    26292661& @search2 
    26302662  If <class>=EXITS, OBJECTS, ROOMS, or PLAYERS, only objects of that type 
     2663  will be listed. 
    26312664 
    26322665  If <class>=FLAGS or LFLAGS, only objects with the list of flags 
  • 1.7.7/game/txt/hlp/pennflag.hlp

    r433 r439  
    200200  The DEBUG flag is used for debugging MUSHcode. It is meant to be used 
    201201  in conjunction with the VERBOSE flag. If an object is set DEBUG, all 
    202   parser evaluation results will be shown to the object's owner, in the 
    203   format: 
     202  parser evaluation results will be shown to the object's owner and to  
     203  any dbrefs in the object's DEBUGFORWARDLIST, in the format: 
    204204  
    205205  #dbref! <string to evaluate> : 
     
    213213  to pinpoint exactly which evaluation is going wrong. 
    214214   
    215   Objects run under this flag are computationally expensive. 
    216   Avoid leaving it set on objects. It can also generate huge amounts of 
    217   spam from the output. 
    218    
     215  Objects run under this flag are computationally expensive.  Avoid 
     216  leaving it set on objects. It can also generate huge amounts of spam 
     217  from the output. 
     218 
    219219  See "help DEBUG2" for more. 
    220220& DEBUG2 
  • 1.7.7/game/txt/hlp/pennfunc.hlp

    r433 r439  
    6666  aposs()       default()     edefault()    eval()        filter() 
    6767  filterbool()  fold()        foreach()     get()         grep() 
    68   grepi()       lattr()       obj()         poss()        regrep() 
    69   regrepi()     subj()        udefault()    ufun()        uldefault() 
    70   ulocal()      v-function    xget()        zfun() 
     68  grepi()       lattr()       nattr()       obj()         poss()         
     69  regrep()      regrepi()     subj()        udefault()    ufun()         
     70  uldefault()   ulocal()      v-function    xget()        zfun() 
    7171 
    7272  See also: ATTRIBUTES, NON-STANDARD ATTRIBUTES 
     
    610610  clock(<channel>[/<locktype>][, <new lock>]) 
    611611 
    612   With one argument, returns the value of a lock on a channel. 
    613   If no locktype is given, "JOIN" is assumed. 
    614   With two arguments, sets the lock. 
     612  With one argument, returns the value of a lock on a channel, if you 
     613  own the channel or are See_All.  If no locktype is given, "JOIN"  
     614  is assumed. 
     615  With two arguments, sets the lock if you would be able to do so via 
     616  @clock. 
    615617 
    616618  See also: @clock 
     
    14321434 
    14331435  Returns 1 if the object is of the named type, otherwise 0. 
    1434   Valid types are: ROOM, EXIT, PLAYER, THING
    1435   If an invalid type is given, #-1 is returned. 
     1436  Valid types are: ROOM, EXIT, PLAYER, THING, GARBAGE
     1437  If an invalid type is given, #-1 NO SUCH TYPE is returned. 
    14361438& HIDDEN() 
    14371439  hidden(<player|descriptor>) 
     
    16911693  matching that pattern will be returned. 
    16921694 
     1695  See also: nattr() 
    16931696& NATTR() 
    16941697& ATTRCNT() 
     
    31653168  Function: starttime() 
    31663169  
    3167   Returns a string which is the time the MUSH first started up.  The time 
    3168   is in the same format as the TIME() function returns. 
     3170  Returns a string containing the time the MUSH first started up (not  
     3171  including @shutdown/reboots).  The time is in the same format that the  
     3172  TIME() function returns. 
    31693173  
    31703174  Example: 
  • 1.7.7/game/txt/hlp/pennv177.hlp

    r437 r439  
    1 & 1.7.7p19 
     1& 1.7.7p20 
    22& changes 
    33This is a list of changes in this patchlevel which are probably of 
     
    1212be read in 'help patchlevels'. 
    1313 
     14Version 1.7.7 patchlevel 20                     September 4, 2003 
     15 
     16Major Changes: 
     17  * minimal.db is no more. If you start up the server and there's no 
     18    db to be found, it creates a new minimal database in memory 
     19    on the fly. Feel free to delete your coopy of minimal.db. [SW] 
     20    (In related news, the default OSUCC on #0 in minimal.db is gone.  
     21    Suggested by Cheetah@M*U*S*H. So much for the mists.) 
     22Minor Changes: 
     23  * SSL connections are now ended before the dump when rebooting, 
     24    but their descriptor information sticks around to ensure that 
     25    their @adisconnect is run after the reboot. Based on suggestions 
     26    by Vadiv@M*U*S*H and [TAP]. 
     27  * When _DEBUG is defined in a win32 build, don't copy pennmush.exe 
     28    to pennmush_run.exe. Makes debugging easier. Patch by Luke@M*U*S*H. 
     29  * In pueblo mode, no longer clear past images after each room look. 
     30    Patch by Konstantine Shirow. 
     31  * In pueblo mode, we no longer render ansi attributes or colors with 
     32    HTML tags; we assume the client will correctly handle them as ansi 
     33    intermixed with Pueblo. This solves a variety of problems. 
     34    Based on a discussion with Konstantine Shirow. 
     35  * When matching $commands and ^listens, insure that a matching attribute 
     36    exists before testing locks. This may break some strange locks using 
     37    %c, but hopefully won't. Suggested by Cheetah@M*U*S*H. 
     38  * The @scan command temporarily sets %c to the command to be scanned 
     39    (without "@scan" prefixed) so that it can detect commands that use 
     40    %c-matching. Based on ideas from Cheetah and Walker@M*U*S*H. 
     41  * Added support for Pueblo's md5 checksum. We track it on each 
     42    descriptor, though we don't do anything with it currently. 
     43  * Speed-up to fun_merge. Patch by Walker@M*U*S*H. 
     44  * Internal cleanup of flags in channel_broadcast. 
     45  * Wizards may @name themselves to names forbidden in names.cnf. 
     46    Patch by LeeLaLimaLLama@M*U*S*H. 
     47  * We are now forgiving of stupid non-RFC-compliant telnet clients 
     48    that send CR only even when they claim to be sending CRLF 
     49    (Read: MS Windows XP telnet). MS bug reported first by 
     50    Intrevis@M*U*S*H. 
     51  * Misleading restrict_command on @clone removed from restrict.cnf, 
     52    as @dig/@open/@create permissions already control @clone. 
     53    Suggested by Philip Mak. 
     54Functions: 
     55  * lstats() and quota() now allow objects to see stats/quota on other 
     56    objects they control (e.g., on their owners, perhaps). Suggested 
     57    by Philip Mak. 
     58  * hastype() can now test for type GARBAGE. Suggested by Tanaku@M*U*S*H. 
     59Commands: 
     60  * The new ']' command prefix causes the rest of the command-line 
     61    not to be evaluated by the expression parser. Try: ]think [add(1,1)] 
     62    Inspired by Elendor. 
     63  * @hook/ignore. [mux] 
     64  * @hook/override [Rhost, though they don't call it that] 
     65Attributes: 
     66  * @debugforwardlist forwards DEBUG output to dbrefs on the list. 
     67    Suggested by Balerion@M*U*S*H. 
     68Tests: 
     69  * A new test harness for developing regression test suites in perl 
     70    for PennMUSH is now included; few test suites are. If you can figure 
     71    out how to use this, write some tests for us! (If you can't, don't 
     72    ask about it, please :) 
     73Locks: 
     74  * @lock/interact can prevent other players from transmitting any 
     75    normal sound to you (that is, you won't hear them speak, pose,  
     76    emit, etc., like gagging them in a client). It doesn't control 
     77    page (use @lock/page) or @mail (use @lock/mail). You still 
     78    hear 'presence' messages (connects/disconnects/arrivals/leaves) 
     79    so you can have a sense of who can hear you but you can't hear. 
     80    Patch by Philip Mak. 
     81Fixes: 
     82  * Configure script no longer keeps adding -lssl -lcrypto over and 
     83    over to the Makefile. Report by Sholevi@M*U*S*H. 
     84  * Portability fixes for compiling with MSVC5 by Luke@M*U*S*H. 
     85  * The behavior of spaces inside parentheses that aren't part of a 
     86    function has been improved. Report by Jason Newquist. [TAP] 
     87  * txt/*.html files were being improperly escaped before being 
     88    sent to Pueblo connections. Report by Konstantine Shirow. 
     89  * mushdb.h includes flags.h, as it relies on constants from there. 
     90    Suggested by Philip Mak. 
     91  * Better error reporting on some failure messages in chunk allocator. 
     92    Patch by Philip Mak. 
     93  * @config/set with an invalid option now returns an error. 
     94    Report by Sholevi@M*U*S*H. 
     95  * Fix to interaction checking in notify_anything that could result 
     96    in the wrong check being performed. Report by Philip Mak. 
     97  * Help fixes by LeeLaLimaLLama@M*U*S*H, Sunny@M*U*S*H, Sketch@M*U*S*H. 
     98 
     99 
     100& 1.7.7p19 
    14101Version 1.7.7 patchlevel 19                     August 19, 2003 
    15102 
  • 1.7.7/game/txt/hlp/pennvOLD.hlp

    r437 r439  
    44184418type 'help <version>p<patchlevel>'. For example, 'help 1.7.2p3' 
    44194419 
    4420 1.7.7: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 
     44201.7.7: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 
     4421       19, 20 
    442144221.7.6: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 
    442244231.7.5: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 
  • 1.7.7/hdrs/atr_tab.h

    r427 r439  
    5050  {"COST", AF_NOPROG | AF_PREFIXMATCH, NULL_CHUNK_REFERENCE, 0, NULL}, 
    5151  {"DEATH", AF_NOPROG | AF_PREFIXMATCH, NULL_CHUNK_REFERENCE, 0, NULL}, 
     52  {"DEBUGFORWARDLIST", AF_NOPROG | AF_PRIVATE | AF_PREFIXMATCH, 
     53   NULL_CHUNK_REFERENCE, 
     54   0, NULL}, 
    5255  {"DESCFORMAT", AF_NOPROG | AF_PREFIXMATCH, NULL_CHUNK_REFERENCE, 0, NULL}, 
    5356  {"DESCRIBE", AF_VISUAL | AF_NOPROG | AF_PREFIXMATCH, NULL_CHUNK_REFERENCE, 0, 
     
    6871   NULL_CHUNK_REFERENCE, 0 | AF_PREFIXMATCH, NULL}, 
    6972  {"FORWARDLIST", AF_NOPROG | AF_PRIVATE | AF_PREFIXMATCH, NULL_CHUNK_REFERENCE, 
    70    0, 
    71    NULL}, 
     73   0, NULL}, 
    7274  {"GIVE", AF_NOPROG | AF_PREFIXMATCH, NULL_CHUNK_REFERENCE, 0, NULL}, 
    7375  {"HAVEN", AF_NOPROG | AF_PREFIXMATCH, NULL_CHUNK_REFERENCE, 0, NULL}, 
  • 1.7.7/hdrs/attrib.h

    r433 r439  
    5151              char const *str, int just_match, char *atrname, 
    5252              char **abp); 
    53 extern int do_set_atr 
    54   (dbref thing, char const *RESTRICT atr, char const *RESTRICT s, dbref player, 
    55    int flags); 
     53extern int one_comm_match(dbref thing, dbref player, const char *atr, 
     54              const char *str); 
     55extern int do_set_atr(dbref thing, char const *RESTRICT atr, 
     56              char const *RESTRICT s, dbref player, int flags); 
    5657extern void do_atrlock(dbref player, char const *arg1, char const *arg2); 
    5758extern void do_atrchown(dbref player, char const *arg1, char const *arg2); 
  • 1.7.7/hdrs/command.h

    r433 r439  
    146146    struct hook_data before;    /**< Hook to evaluate before command */ 
    147147    struct hook_data after; /**< Hook to evaluate after command */ 
     148    struct hook_data ignore;    /**< Hook to evaluate to decide if we should ignore hardcoded command */ 
     149    struct hook_data override;  /**< Hook to override command with $command */ 
    148150  } hooks; 
    149151}; 
  • 1.7.7/hdrs/conf.h

    r433 r439  
    3434#define EMIT_TOKEN '\\' 
    3535#define CHAT_TOKEN '+' 
     36#define NOEVAL_TOKEN ']' 
    3637 
    3738/* delimiter for lists of exit aliases */ 
     
    5253 
    5354/* These CAN be modified, but it's heavily NOT suggested */ 
    54 #define PUEBLO_SEND "</xch_mudtext><img xch_mode=purehtml><xch_page clear=text><body bgcolor=#000000 fgcolor=#C0C0C0>\n" 
    55 #define PUEBLO_HELLO "This world is Pueblo 1.10 Enhanced.\r\n" 
     55#define PUEBLO_SEND "</xch_mudtext><img xch_mode=purehtml><xch_page clear=text>\n" 
     56#define PUEBLO_HELLO "This world is Pueblo 2.50 Enhanced.\r\n" 
    5657 
    5758 
  • 1.7.7/hdrs/dbdefs.h

    r433 r439  
    9595#define Terse(x)        (IS(Owner(x), TYPE_PLAYER, "TERSE") || IS(x, TYPE_THING, "TERSE")) 
    9696#define Myopic(x)       (IS(Owner(x), TYPE_PLAYER, "MYOPIC")) 
    97 #define Nospoof(x)      (IS(Owner(x), TYPE_PLAYER, "NOSPOOF")) 
    98 #define Paranoid(x)     (IS(Owner(x), TYPE_PLAYER, "PARANOID")) 
     97#define Nospoof(x)      (IS(Owner(x),TYPE_PLAYER,"NOSPOOF") || has_flag_by_name(x,"NOSPOOF",NOTYPE)) 
     98#define Paranoid(x)      (IS(Owner(x),TYPE_PLAYER,"PARANOID") || has_flag_by_name(x,"PARANOID",NOTYPE)) 
    9999#define Gagged(x)       (IS(Owner(x), TYPE_PLAYER, "GAGGED")) 
    100100#define ShowAnsi(x)     (IS(Owner(x), TYPE_PLAYER, "ANSI")) 
  • 1.7.7/hdrs/extchat.h

    r433 r439  
    6464#define CU_GAG      0x4     /* Do not hear any messages */ 
    6565#define CU_DEFAULT_FLAGS 0x0 
     66 
     67/* channel_broadcast flags */ 
     68#define CB_CHECKQUIET 0x1   /* Check for quiet flag on recipients */ 
     69#define CB_NOSPOOF    0x2   /* Use nospoof emits */ 
     70#define CB_PRESENCE   0x4   /* This is a presence message, not sound */ 
    6671 
    6772#define CUdbref(u) ((u)->who) 
  • 1.7.7/hdrs/externs.h

    r435 r439  
    5151 
    5252extern void raw_notify(dbref player, const char *msg); 
     53extern void notify_list(dbref speaker, dbref thing, const char *atr, 
     54            const char *msg, int flags); 
    5355extern dbref short_page(const char *match); 
    5456extern dbref visible_short_page(dbref player, const char *match); 
     
    100102#define NA_INTER_SEE    0x0400  /* Message is visual in nature */ 
    101103#define NA_INTER_PRESENCE  0x0800   /* Message is about presence */ 
     104#define NA_NOSPOOF        0x1000    /* Message comes via a NO_SPOOF object. */ 
     105#define NA_PARANOID       0x2000    /* Message comes via a PARANOID object. */ 
     106#define NA_NOPREFIX       0x4000    /* Don't use @prefix when forwarding */ 
    102107#define NA_INTERACTION  (NA_INTER_HEAR|NA_INTER_SEE|NA_INTER_PRESENCE)  /* Message follows interaction rules */ 
    103108 
     
    266271extern int ok_name(const char *name); 
    267272extern int ok_command_name(const char *name); 
    268 extern int ok_player_name(const char *name); 
     273extern int ok_player_name(const char *name, dbref player); 
    269274extern int ok_password(const char *password); 
    270275extern dbref parse_match_possessive(dbref player, const char *str); 
  • 1.7.7/hdrs/game.h

    r435 r439  
    3838extern void do_restart(void); 
    3939extern void do_restart_com(dbref player, const char *arg1); 
     40 
     41/* From command.c */ 
     42enum hook_type { HOOK_BEFORE, HOOK_AFTER, HOOK_IGNORE, HOOK_OVERRIDE }; 
     43extern void do_hook(dbref player, char *command, char *obj, char *attrname, 
     44            enum hook_type flag); 
     45 
    4046 
    4147/* From compress.c */ 
  • 1.7.7/hdrs/lock.h

    r433 r439  
    103103extern const lock_type Dropto_Lock; /* Who follows the dropto of this room? */ 
    104104extern const lock_type Destroy_Lock;    /* Who can @dest me if I'm dest_ok? */ 
     105extern const lock_type Interact_Lock; 
    105106/* Declare new lock types here! */ 
    106107 
  • 1.7.7/hdrs/mushdb.h

    r433 r439  
    77 
    88/* Power macros */ 
     9#include "flags.h" 
    910 
    1011#define Builder(x)       (command_check_byname(x, "@dig")) 
     
    158159#define RDBF_SCREENSIZE         0x01 
    159160#define RDBF_TTYPE              0x02 
     161#define RDBF_PUEBLO_CHECKSUM    0x04 
    160162 
    161163#endif              /* __DB_H */ 
  • 1.7.7/hdrs/mushtype.h

    r433 r439  
    7777/* Descriptor foo */ 
    7878#define DOING_LEN 40 
     79/** Pueblo checksum length. 
     80 * Pueblo uses md5 now, but if they switch to sha1, this will still 
     81 * be safe. 
     82 */ 
     83#define PUEBLO_CHECKSUM_LEN 40 
    7984typedef struct descriptor_data DESC; 
    8085/** A player descriptor's data. 
     
    126131  int ssl_state;        /**< Keep track of state of SSL object */ 
    127132#endif 
     133  char checksum[PUEBLO_CHECKSUM_LEN + 1];   /**< Pueblo checksum */ 
    128134}; 
    129135 
  • 1.7.7/hdrs/switches.h

    r429 r439  
    5656#define SWITCH_HERE 55 
    5757#define SWITCH_HIDE 56 
    58 #define SWITCH_ILIST 57 
    59 #define SWITCH_INVENTORY 58 
    60 #define SWITCH_IPRINT 59 
    61 #define SWITCH_JOIN 60 
    62 #define SWITCH_LIST 61 
    63 #define SWITCH_LOWERCASE 62 
    64 #define SWITCH_ME 63 
    65 #define SWITCH_MEMBERS 64 
    66 #define SWITCH_MOD 65 
    67 #define SWITCH_MORTAL 66 
    68 #define SWITCH_MOTD 67 
    69 #define SWITCH_MUTE 68 
    70 #define SWITCH_NAME 69 
    71 #define SWITCH_NO 70 
    72 #define SWITCH_NOEVAL 71 
    73 #define SWITCH_NOFLAGCOPY 72 
    74 #define SWITCH_NOISY 73 
    75 #define SWITCH_NOSIG 74 
    76 #define SWITCH_NOSPACE 75 
    77 #define SWITCH_NOTIFY 76 
    78 #define SWITCH_NUKE 77 
    79 #define SWITCH_OFF 78 
    80 #define SWITCH_ON 79 
    81 #define SWITCH_OUTSIDE 80 
    82 #define SWITCH_OVERRIDE 81 
    83 #define SWITCH_PAGING 82 
    84 #define SWITCH_PANIC 83 
    85 #define SWITCH_PARANOID 84 
    86 #define SWITCH_PLAYERS 85 
    87 #define SWITCH_PORT 86 
    88 #define SWITCH_PRESERVE 87 
    89 #define SWITCH_PRINT 88 
    90 #define SWITCH_PRIVS 89 
    91 #define SWITCH_PURGE 90 
    92 #define SWITCH_QUICK 91 
    93 #define SWITCH_QUIET 92 
    94 #define SWITCH_READ 93 
    95 #define SWITCH_REBOOT 94 
    96 #define SWITCH_RECALL 95 
    97 #define SWITCH_REGIONS 96 
    98 #define SWITCH_REGISTER 97 
    99 #define SWITCH_REMOVE 98 
    100 #define SWITCH_RENAME 99 
    101 #define SWITCH_RESTORE 100 
    102 #define SWITCH_RESTRICT 101 
    103 #define SWITCH_RETROACTIVE 102 
    104 #define SWITCH_ROOM 103 
    105 #define SWITCH_ROOMS 104 
    106 #define SWITCH_SEE 105 
    107 #define SWITCH_SEEFLAG 106 
    108 #define SWITCH_SELF 107 
    109 #define SWITCH_SEND 108 
    110 #define SWITCH_SET 109 
    111 #define SWITCH_SILENT 110 
    112 #define SWITCH_SKIPDEFAULTS 111 
    113 #define SWITCH_SPEAK 112 
    114 #define SWITCH_STATS 113 
    115 #define SWITCH_SUMMARY 114 
    116 #define SWITCH_TABLES 115 
    117 #define SWITCH_TAG 116 
    118 #define SWITCH_TELEPORT 117 
    119 #define SWITCH_TF 118 
    120 #define SWITCH_THINGS 119 
    121 #define SWITCH_TITLE 120 
    122 #define SWITCH_TRACE 121 
    123 #define SWITCH_UNCLEAR 122 
    124 #define SWITCH_UNFOLDER 123 
    125 #define SWITCH_UNGAG 124 
    126 #define SWITCH_UNHIDE 125 
    127 #define SWITCH_UNMUTE 126 
    128 #define SWITCH_UNTAG 127 
    129 #define SWITCH_UNTIL 128 
    130 #define SWITCH_URGENT 129 
    131 #define SWITCH_USEFLAG 130 
    132 #define SWITCH_WHAT 131 
    133 #define SWITCH_WHO 132 
    134 #define SWITCH_WIPE 133 
    135 #define SWITCH_WIZ 134 
    136 #define SWITCH_WIZARD 135 
    137 #define SWITCH_YES 136 
    138 #define SWITCH_ZONE 137 
     58#define SWITCH_IGNORE 57 
     59#define SWITCH_ILIST 58 
     60#define SWITCH_INVENTORY 59 
     61#define SWITCH_IPRINT 60 
     62#define SWITCH_JOIN 61 
     63#define SWITCH_LIST 62 
     64#define SWITCH_LOWERCASE 63 
     65#define SWITCH_ME 64 
     66#define SWITCH_MEMBERS 65 
     67#define SWITCH_MOD 66 
     68#define SWITCH_MORTAL 67 
     69#define SWITCH_MOTD 68 
     70#define SWITCH_MUTE 69 
     71#define SWITCH_NAME 70 
     72#define SWITCH_NO 71 
     73#define SWITCH_NOEVAL 72 
     74#define SWITCH_NOFLAGCOPY 73 
     75#define SWITCH_NOISY 74 
     76#define SWITCH_NOSIG 75 
     77#define SWITCH_NOSPACE 76 
     78#define SWITCH_NOTIFY 77 
     79#define SWITCH_NUKE 78 
     80#define SWITCH_OFF 79 
     81#define SWITCH_ON 80 
     82#define SWITCH_OUTSIDE 81 
     83#define SWITCH_OVERRIDE 82 
     84#define SWITCH_PAGING 83 
     85#define SWITCH_PANIC 84 
     86#define SWITCH_PARANOID 85 
     87#define SWITCH_PLAYERS 86 
     88#define SWITCH_PORT 87 
     89#define SWITCH_PRESERVE 88 
     90#define SWITCH_PRINT 89 
     91#define SWITCH_PRIVS 90 
     92#define SWITCH_PURGE 91 
     93#define SWITCH_QUICK 92 
     94#define SWITCH_QUIET 93 
     95#define SWITCH_READ 94 
     96#define SWITCH_REBOOT 95 
     97#define SWITCH_RECALL 96 
     98#define SWITCH_REGIONS 97 
     99#define SWITCH_REGISTER 98 
     100#define SWITCH_REMOVE 99 
     101#define SWITCH_RENAME 100 
     102#define SWITCH_RESTORE 101 
     103#define SWITCH_RESTRICT 102 
     104#define SWITCH_RETROACTIVE 103 
     105#define SWITCH_ROOM 104 
     106#define SWITCH_ROOMS 105 
     107#define SWITCH_SEE 106 
     108#define SWITCH_SEEFLAG 107 
     109#define SWITCH_SELF 108 
     110#define SWITCH_SEND 109 
     111#define SWITCH_SET 110 
     112#define SWITCH_SILENT 111 
     113#define SWITCH_SKIPDEFAULTS 112 
     114#define SWITCH_SPEAK 113 
     115#define SWITCH_STATS 114 
     116#define SWITCH_SUMMARY 115 
     117#define SWITCH_TABLES 116 
     118#define SWITCH_TAG 117 
     119#define SWITCH_TELEPORT 118 
     120#define SWITCH_TF 119 
     121#define SWITCH_THINGS 120 
     122#define SWITCH_TITLE 121 
     123#define SWITCH_TRACE 122 
     124#define SWITCH_UNCLEAR 123 
     125#define SWITCH_UNFOLDER 124 
     126#define SWITCH_UNGAG 125 
     127#define SWITCH_UNHIDE 126 
     128#define SWITCH_UNMUTE 127 
     129#define SWITCH_UNTAG 128 
     130#define SWITCH_UNTIL 129 
     131#define SWITCH_URGENT 130 
     132#define SWITCH_USEFLAG 131 
     133#define SWITCH_WHAT 132 
     134#define SWITCH_WHO 133 
     135#define SWITCH_WIPE 134 
     136#define SWITCH_WIZ 135 
     137#define SWITCH_WIZARD 136 
     138#define SWITCH_YES 137 
     139#define SWITCH_ZONE 138 
  • 1.7.7/hdrs/version.h

    r437 r439  
    1 #define VERSION "PennMUSH version 1.7.7 patchlevel 19 [08/19/2003]" 
    2 #define SHORTVN "PennMUSH 1.7.7p19
    3 #define NUMVERSION 001007007019 
     1#define VERSION "PennMUSH version 1.7.7 patchlevel 20 [09/04/2003]" 
     2#define SHORTVN "PennMUSH 1.7.7p20
     3#define NUMVERSION 001007007020 
  • 1.7.7/src/SWITCHES

    r427 r439  
    5555HERE 
    5656HIDE 
     57IGNORE 
    5758ILIST 
    5859INVENTORY 
  • 1.7.7/src/attrib.c

    r435 r439  
    698698  /* check for lots of easy ways out */ 
    699699  if ((type != '$' && type != '^') || !GoodObject(thing) || Halted(thing) 
    700       || (type == '$' 
    701       && (NoCommand(thing) || !eval_lock(player, thing, Command_Lock))) 
    702       || (type == '^' && !eval_lock(player, thing, Listen_Lock)) 
    703       || !eval_lock(player, thing, Use_Lock)) 
     700      || (type == '$' && NoCommand(thing))) 
    704701    return 0; 
    705702 
     
    759756    } 
    760757    if (match_found) { 
     758      if ((type == '$' && !eval_lock(player, thing, Command_Lock)) 
     759      || (type == '^' && !eval_lock(player, thing, Listen_Lock)) 
     760      || !eval_lock(player, thing, Use_Lock)) { 
     761    match--; 
     762    continue; 
     763      } 
    761764      if (atrname && abp) { 
    762765    safe_chr(' ', atrname, abp); 
     
    818821      } 
    819822      if (match_found) { 
     823    if ((type == '$' && !eval