PennMUSH Community

Changeset 457

Show
Ignore:
Timestamp:
08/16/06 00:55:01 (2 years ago)
Author:
pennmush
Message:

PennMUSH 1.7.7p29 Archival

Files:

Legend:

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

    r453 r457  
    1313 
    1414========================================================================== 
     15 
     16Version 1.7.6 patchlevel 16                     April 28, 2004 
     17 
     18Fixes: 
     19   * PCRE updated to 4.5 [SW] 
     20 
    1521 
    1622Version 1.7.6 patchlevel 15                     January 25, 2004 
  • 1.7.7/CHANGES.177

    r455 r457  
    1818 
    1919========================================================================== 
     20 
     21Version 1.7.7 patchlevel 29                     April 28, 2004 
     22 
     23Major changes: 
     24  * Anonymous attributes via #lambda. See help anonymous attributes. [SW] 
     25  * Wizards (other than God) and royalty are no longer treated as No_Pay 
     26    unless the No_Pay power is explicitly set on them, although they 
     27    can still give (themselves or others) as many pennies as they wish. 
     28    This helps stop runaway wizards in the queue (they'll run out of cash 
     29    like anyone else). To get the old behavior back, @power your admin 
     30    No_Pay. You probably want to @power any globals that use search(), 
     31    children(), mail*stats(), etc, No_Pay as well. Suggested by Walker@M*U*S*H. 
     32  * game/restrict.cnf, alias.cnf, names.cnf are renamed in the tarball and 
     33    made with make update like mush.cnf. Suggested by Philip Mak. [SW] 
     34  * @powers now operate under the same code as the @flag system, so God 
     35    can add and modify powers in the MUSH with @power/add, etc.  
     36Commands: 
     37  * @nsemit, @nsoemit, @nslemit, @nsremit, @nszemit and function forms 
     38    of the same. Suggested by Cloud@M*U*S*H. 
     39Functions: 
     40  * andlpowers(), orlpowers(), andpowers(), orpowers(). 
     41  * align() performs fancy text alignment tricks. Patch by Walker@M*U*S*H. 
     42  * sent() and recv() show more player descriptor data from SESSION. 
     43    Suggested by Ricochet@M*U*S*H. 
     44  * scan() with a single argument assumes the executor's point of 
     45    view. Suggested by Cheetah@M*U*S*H. 
     46  * valid() can also check for syntactically correct passwords, 
     47    command names, and function names. 
     48Minor changes: 
     49  * No more CRYPT_SYSTEM in options.h. We try everything and we 
     50    always reset passwords to SHS. Patch by Vadiv@M*U*S*H. 
     51  * Wizards and other privileged players can @chan/recall on channels they're 
     52    not on. Suggested by Trispis@M*U*S*H. [SW] 
     53  * A separate ip address to bind the SSL port to can now be specified 
     54    in mush.cnf. 
     55  * @flag/type allows God to change flag types. Suggested by Renee@ShoreSide. 
     56  * After each @startup is enqueued (during startup or @restart/all), 
     57    we immediately run up to 5 queue cycles. This allows, e.g., God's 
     58    @startup to up to five levels of @dol/@tr/@switch/etc and still have 
     59    the queued code run ahead of other startups. This requires that you 
     60    keep God's dbref as #1. Based on comments by Philip Mak and o 
     61    Trispis@M*U*S*H. 
     62  * The message after successful @password is now clearer, to avoid 
     63    confusion in some unusual cases. Report by Kholnuu. 
     64  * Makefile is no longer set executable. Report by Luke@M*U*S*H. 
     65  * Server now handles telnet NOP and AYT commands. Suggested by 
     66    Philip Mak and Liz (author of Muckclient). 
     67  * announce.c is no longer distributed. portmsg.c cleanup. 
     68Fixes: 
     69  * @undestroy on an invalid (garbage, or !going) object now produces 
     70    an error message. Suggested by T'orA@M*U*S*H. 
     71  * On shutdowns, all queue deposits are now refunded. 
     72  * Ansi behavior on second and later lines of text fixed by Walker@M*U*S*H. 
     73  * Database reading improvements for win32 - ideally, you should now 
     74    be able to read a database written on win32/unix on either system. 
     75  * allof() now evaluates its separator argument. [SW] 
     76  * firstof() doesn't add an extra space before the value it returns. [SW]  
     77  * Slackware portability fixes by Dale @ Wolfpaw.net hosting 
     78  * ]page properly noevals (the right hand side) now. Report by  
     79    Cheetah@M*U*S*H. 
     80  * Partial channel match listings no longer reveal channels the player 
     81    isn't allowed to see. Report by Taz. 
     82  * Help fixes by Trispis@M*U*S*H and Tanaku@M*U*S*H. 
     83  * ssl() and terminfo() don't work on other players unless you're 
     84    See_All, as promised. Based on patch by Tanaku@M*U*S*H. 
     85  * lcon, etc. all do an INTERACT_SEE interaction check now. 
     86    Suggested by Thor@bDv. 
     87  * Code cleanup. [SW] 
     88  * Fixes from 1.7.6p16 
     89 
    2090 
    2191Version 1.7.7 patchlevel 28                     March 12, 2004 
  • 1.7.7/Configure

    r453 r457  
    39303930EOCP 
    39313931 
    3932 if $cc $ccflags $ldflags -o test_fpsetround test_fpsetround.c $libs >/dev/null 2>&1 ; then 
     3932if ($cc $ccflags $ldflags -o test_fpsetround test_fpsetround.c $libs \ 
     3933    && ./test_fpsetround) >/dev/null 2>&1 ; then 
    39333934    echo 'fpsetround() is around (and found).' >&4 
    39343935    val="$define" 
     
    39523953EOCP 
    39533954 
    3954 if $cc $ccflags $ldflags -o test_fpsetmask test_fpsetmask.c $libs >/dev/null 2>&1 ; then 
     3955if ($cc $ccflags $ldflags -o test_fpsetmask test_fpsetmask.c $libs && \ 
     3956    ./test_fpsetmask) >/dev/null 2>&1 ; then 
    39553957    echo 'fpsetmask() is up to the task.' >&4 
    39563958    val="$define" 
     
    56155617$cat >test_cdecl.c <<'EOCP' 
    56165618#include <stdio.h> 
    5617 int __cdecl main(int argc, char **argv) { 
     5619#include <stdlib.h> 
     5620#define WIN32_CDECL __cdecl 
     5621 
     5622int WIN32_CDCEL main(int argc, char **argv) { 
    56185623    exit(0); 
    56195624} 
    56205625EOCP 
    56215626 
    5622 if $cc $ccflags -o test_cdecl test_cdecl.c >/dev/null 2>&1 ; then 
     5627if ($cc $ccflags -o test_cdecl test_cdecl.c && ./test_cdecl) >/dev/null 2>&1 ; then 
    56235628    cdecl='__cdecl' 
    56245629    echo 'Your compiler likes __cdecl as a keyword.' >&4 
  • 1.7.7/MANIFEST

    r455 r457  
    5151src/Makefile.SH 
    5252src/access.c 
    53 src/announce.c 
    5453src/atr_tab.c 
    5554src/attrib.c 
     
    165164game/README 
    166165game/access.README 
    167 game/alias.cnf 
    168166game/getdate.README 
    169167game/getdate.template 
    170 game/restrict.cnf 
    171168game/mushcnf.dst 
    172 game/names.cnf 
     169game/aliascnf.dst 
     170game/restrictcnf.dst 
     171game/namescnf.dst 
    173172game/restart 
    174173game/data/README 
  • 1.7.7/Makefile.SH

    r455 r457  
    165165    -@$perl utils/customize.pl 
    166166 
    167 update-conf: game/mushcnf.dst 
     167update-conf: game/mushcnf.dst game/aliascnf.dst game/restrictcnf.dst game/namescnf.dst 
    168168    -@$touch game/mushcnf.dst 
    169169    -@$perl utils/update-cnf.pl game/mush.cnf game/mushcnf.dst 
     170    -@$touch game/aliascnf.dst 
     171    -@$perl utils/update-cnf.pl game/alias.cnf game/aliascnf.dst 
     172    -@$touch game/restrictcnf.dst 
     173    -@$perl utils/update-cnf.pl game/restrict.cnf game/restrictcnf.dst 
     174    -@if [ ! -f game/names.cnf ]; then \$(CP) game/namescnf.dst game/names.cnf; fi 
     175 
     176game/alias.cnf: game/aliascnf.dst 
     177    -@$touch game/aliascnf.dst 
     178    -@$perl utils/update-cnf.pl game/alias.cnf game/aliascnf.dst 
     179 
     180game/restrict.cnf: game/restrictcnf.dst 
     181    -@$touch game/restrictcnf.dst 
     182    -@$perl utils/update-cnf.pl game/restrict.cnf game/restrictcnf.dst 
     183 
     184game/names.cnf: game/namescnf.dst 
     185    if [ ! -f game/names.cnf ]; then \ 
     186        \$(CP) game/namescnf.dst game/names.cnf \ 
     187    fi 
    170188 
    171189game/mush.cnf: game/mushcnf.dst 
     
    285303 
    286304!NO!SUBS! 
    287 chmod 755 Makefile 
     305chmod 644 Makefile 
  • 1.7.7/Patchlevel

    r455 r457  
    11Do not edit this file. It is maintained by the official PennMUSH patches. 
    2 This is PennMUSH 1.7.7p28 
     2This is PennMUSH 1.7.7p29 
  • 1.7.7/game/access.README

    r335 r457  
    103103 
    104104 
    105 2. Allow specific sites and no others 
     1052. Allow specific sites and no others. Note that you must list both 
     106   hostname-matching patterns and ip address-matching patterns, because 
     107   if either fails to match a rule that allows connection, the connection 
     108   will be refused. This is true in general when writing positive rules. 
    106109 
    107110*.berkeley.edu -2 default 
     111128.32.* -2 default 
    108112* -2 none 
    109113 
    110 People may connect from .berkeley.edu sites only. 
     114People may connect from .berkeley.edu (128.32.) sites only. 
    111115 
    112116 
     
    160164 
    161165username@localhost 1 connect  
    162 127.0.0.1 1 connect 
     166username@127.0.0.1 1 connect 
    163167* -2 !god 
    164168@sitelock 
     
    175179 
    176180localhost.berkeley.edu -2 default 
     181127.0.0.1 -2 default 
    177182*.twink.edu -2 !create register suspect 
    178183@sitelock 
  • 1.7.7/game/mushcnf.dst

    r455 r457  
    163163# connections, leave this set to 0. 
    164164ssl_port 0 
     165 
     166# The ip address to bind to for the SSL port, if one is specified.  
     167# If your host has multiple IP addresses, put the ip address to  
     168# listen on here. Otherwise, leave it blank to listen on all 
     169# addresses if SSL is in use. 
     170ssl_ip_addr 
    165171 
    166172# The file containing the MUSH server's certificate and private key, 
     
    641647wall_prefix Announcement: 
    642648 
     649# Should we announce connections/disconnections to rooms and on channels? 
     650# If this is disabled, only MONITOR players will see connect/disconnect. 
     651# @aconnect/@adisconnect, however, are still triggered, so you can 
     652# softcode whatever connection monitor you like. Players will probably 
     653# object if you don't at least show them when someone connects in  
     654# the room with them. 
     655announce_connects yes 
     656 
    643657# can players have names with spaces in them? 
    644658player_name_spaces no 
  • 1.7.7/game/txt/hlp/penncmd.hlp

    r455 r457  
    5757  @find          @force         @function      @gedit         @grep 
    5858  @halt          @lemit         @listmotd      @mail          @map 
    59   @notify        @nspemit       @oemit         @password      @pemit 
     59  @notify        @nsemit        @nslemit       @nsoemit       @nspemit 
     60  @nsremit       @nszemit       @oemit         @password      @pemit 
    6061  @ps            @remit         @restart       @scan          @search 
    6162  @select        @stats         @sweep         @switch        @teleport 
     
    13441345  @flag/letter <flag name>[=<letter>] 
    13451346  @flag/restrict <flag name>=[<setperms>], [<unsetperms>] 
     1347  @flag/type <flag name>=<type(s)> 
    13461348  @flag/enable <flag name> 
    13471349  @flag/disable <flagname> 
     
    13591361    /letter changes or removes a single-letter alias for an existing flag. 
    13601362    /restrict changes flag permissions (see help @flag2) 
     1363    /type changes flag type(s) (see help @flag2) 
    13611364    /delete deletes a flag completely, removing it from all objects 
    13621365      in the database and the removing it permanently from the  
     
    17271730  /attribs   : Alias for @config/attribs, shows all standard attribs 
    17281731  /flags     : Alias for @flag/list, shows all flags 
     1732  /powers    : Alias for @powers/list, shows all powers 
    17291733  /lowercase : Show whatever you're showing in lowercase, rather than upper. 
    17301734& @listmotd 
     
    21532157See also: @password 
    21542158& @notify 
    2155   @notify[/any][/all] <object>[/<attribute>][=<count>] 
     2159  @notify[/any][/all] <object>[/<attribute>][=<number>] 
    21562160   
    21572161  This command notifies a semaphore, allowing commands queued for 
     
    21592163 
    21602164  If the /any switch is given, then all semaphores associated with 
    2161   <object> are @notified.  Otherwise, the only the specified semaphore 
     2165  <object> are @notified.  Otherwise, only the specified semaphore 
    21622166  attribute (or SEMAPHORE if no attribute is specified) is @notified. 
    21632167 
     
    21772181See also: SEMAPHORES, @drain, @wait 
    21782182& @nspemit 
     2183& @nsemit 
     2184& @nslemit 
     2185& @nsremit 
     2186& @nszemit 
     2187& @nsoemit 
     2188  @nsemit[/<switch>] [<message>] 
     2189  @nslemit[/<switch>] <message> 
    21792190  @nspemit[/switches] <object>=<message> 
    2180  
    2181   This wizard-only command is similar to @pemit, with two differences. 
    2182   It will not include nospoof information, and it doesn't accept the 
    2183   /contents switch. It is meant to be used by commands in the master 
    2184   room where the nospoof information is just useless noise. 
    2185  
    2186 See also: @pemit, nspemit() 
     2191  @nsremit[/switches] <object> = <message>. 
     2192  @nszemit <zone> = <message> 
     2193 
     2194  These wizard-only commands work like @emit, @lemit, @pemit, @remit, 
     2195  and @zemit, respectively, but will not include nospoof information. 
     2196  They are meant to be used by commands in the master room where the 
     2197  nospoof information is just useless noise. They take all switches 
     2198  of their respective commands. 
     2199 
     2200See also: @emit, @lemit, @pemit, @remit, @zemit, nsemit(), nslemit(), 
     2201          nspemit(), nsremit(), nszemit() 
    21872202& @odeath 
    21882203  @odeath <player> [=<message>] 
  • 1.7.7/game/txt/hlp/pennconf.hlp

    r451 r457  
    8282  rwall_prefix=<string>: Prefix for @rwall messages. 
    8383  wall_prefix=<string>: Prefix for @wall messages. 
     84  announce_connects=<boolean>: Should (dis)connects be announced to  
     85    non-MONITOR players and to channels? 
    8486  chat_strip_quote=<boolean>:  Does +chan "foo strip the "? 
    8587  newline_one_char=<boolean>: Is strlen(%r) equal to 1? 
  • 1.7.7/game/txt/hlp/pennfunc.hlp

    r455 r457  
    104104  to an object or objects. 
    105105 
    106   cemit()       emit()        lemit()       nspemit()     oemit() 
     106  cemit()       emit()        lemit()       nsemit()      nslemit() 
     107  nsoemit()     nspemit()     nsremit()     nszemit()     oemit() 
    107108  pemit()       remit()       zemit()  
    108109& Connection functions 
     
    112113  cmds()        conn()        doing()       height()      hostname() 
    113114  hidden()      idle()        ipaddr()      lports()      lwho()         
    114   mwho()        ports()       pueblo()      ssl()         terminfo()     
    115   width()  
     115  mwho()        ports()       pueblo()      recv()        sent() 
     116  ssl()         terminfo()    width()  
    116117& Dbref functions 
    117118  Dbref functions return a dbref or list of dbrefs related to some value 
     
    334335   r baz 
    335336 
     337& ALIGN() 
     338  align(<widths>,<col1>,..,<coln>[,<filler>[,<colsep>[,<rowsep>]) 
     339 
     340  Creates columns of text, each column designated by <col1..coln>. 
     341  Each column is individually wrapped inside its own column, allowing 
     342  for easy creation of book pages, newsletters, or the like. 
     343 
     344  <widths> is a space-separated list of column widths. '10 10 10' for 
     345  the widths argument specifies that there are 3 columns, each 10 
     346  spaces wide. You can further modify this by prefixing the number 
     347  with '<', '-' or '>'. A < before a number causes the field to be 
     348  left-aligned. A '-' causes it to be centered, and '>' makes it 
     349  right-aligned. No prefix defaults to left-aligned. A '.' after the 
     350  number implies the column is to be repeated for as long as there is 
     351  a non-repeating column. 
     352 
     353  <filler> is a single character that, if given, is the character used 
     354  to fill empty columns and remaining spaces. <colsep>, if given, is 
     355  inserted between every column, on every row. <rowsep>, if given, is 
     356  inserted between every line. By default, <filler> and <colsep> are 
     357  a space, and <rowsep> is a newline. 
     358 
     359  Continued in HELP ALIGN2 
     360& ALIGN2 
     361  Examples: 
     362   
     363    > &line me=align(<5 10 20,\([left(xget(%0,sex),1)]\),name(%0),name(%L)) 
     364    > th iter(lwho(),u(line,##)) 
     365      (M) Walker     Tree 
     366      (F) Jane Doe   Nowhere 
     367 
     368    > &haiku me = Alignment function,%rIt justifies your writing,%rBut the 
     369                  words still suck.%rLuke 
     370 
     371    > th [align(5 -40 5,,[repeat(-,40)]%r[u(haiku)]%r[repeat(-,40)],,%b,+) 
     372 
     373         +----------------------------------------+ 
     374         +          Alignment function,           +      
     375         +       It justifies your writing,       +      
     376         +       But the words still suck.        +      
     377         +                  Luke                  + 
     378         +----------------------------------------+ 
     379 
    336380& ALLOF() 
    337381  allof(<expr1>[, ...,<exprN>], <osep>) 
     
    657701 
    658702  See also: Connection Functions 
     703& SENT() 
     704  sent(<player|descriptor>) 
     705 
     706  Returns the number of characters sent by a player during this 
     707  connection as indicated by SESSION.  
     708 
     709  The caller can use the function on himself, but using on any other 
     710  player requires privileged power such as Wizard, Royalty or SEE_ALL. 
     711 
     712  See also: Connection Functions 
     713& RECV() 
     714  recv(<player|descriptor>) 
     715 
     716  Returns the number of characters received by a player during this 
     717  connection as indicated by SESSION.  
     718 
     719  The caller can use the function on himself, but using on any other 
     720  player requires privileged power such as Wizard, Royalty or SEE_ALL. 
     721 
     722  See also: Connection Functions 
    659723& COMP() 
    660724  comp(<value1>, <value2>[, <type>]) 
     
    10481112& EMIT() 
    10491113  emit(<message>) 
     1114  nsemit(<message>) 
    10501115 
    10511116  Sends a message to the room, as per @emit. 
     1117 
     1118  nsemit() is a wizard-only variation that works like @nsemit. 
    10521119 
    10531120& ENCRYPT() 
     
    11731240    > say [filter(test/is_odd, 1 2 3 4 5 6)] 
    11741241    You say, "1 3 5" 
     1242 
     1243  See also: anonymous attributes 
    11751244& FINDABLE() 
    11761245  findable(<object>,<victim>) 
     
    12931362    > say [fold(test/add_nums,1 2 3 4 5)] 
    12941363    You say, "15" 
     1364 
     1365  See also: anonymous attributes 
    12951366& FOLDERSTATS() 
    12961367  folderstats() 
     
    13421413    > say [foreach(is_alphanum,jt1o+)] 
    13431414    You say, "1 1 1 1 0 " 
     1415 
     1416  See also: anonymous attributes 
    13441417  
    13451418& ACCNAME() 
     
    18581931& LEMIT() 
    18591932  lemit(<message>) 
     1933  nslemit(<message>) 
    18601934 
    18611935  Sends a message to the outermost room, as per @lemit. 
     1936 
     1937  nslemit() is a wizard-only variation that works like @nslemit. 
    18621938 
    18631939& LEXITS() 
     
    22472323    > say [map(times_two,1;2;3;4;5,;)] 
    22482324    You say, "2;4;6;8;10" 
    2249   
     2325 
     2326  See also: anonymous attributes 
    22502327& MATCH() 
    22512328  match(<list>, <pattern>[, <delimiter>]) 
     
    23602437  > say [mix(add_nums, 1:1:1, 2:2:2, 3:3:3, :)] 
    23612438  You say, "6:6:6" 
    2362   
     2439 
     2440  See also: anonymous attributes 
    23632441& MOD() 
    23642442& MODULO() 
     
    24652543  > say [munge(sort,iter(v(faction_members),conn(##)),v(faction_members))] 
    24662544  You say, "#12 #234 #3" 
     2545 
     2546  See also: anonymous attributes 
    24672547& MWHO() 
    24682548  mwho() 
     
    25432623  
    25442624  See also: and(), or(), nor(), xor() 
    2545 & NSPEMIT() 
    2546   nspemit(<object list>,<message>) 
    2547  
    2548   This wizard-only function will send each object on the list a 
    2549   message, as per the @nspemit/list command. It returns nothing. It is 
    2550   similar to pemit(), except it does not include any nospoof information. 
    2551   Like @nspemit, it is meant for use with globals where nospoof 
    2552   information isn't wanted. 
    2553    
    2554   See also: pemit(), @nspemit 
     2625 
    25552626& NUM() 
    25562627  num(<object>) 
     
    25862657  for the old object. 
    25872658 
     2659  The substitution %: returns the object id of the enacting object. 
     2660 
    25882661& OBJMEM() 
    25892662  objmem(<object>) 
     
    25962669& OEMIT() 
    25972670  oemit([<room>/]<object> [<object> ...],<message>) 
     2671  nsoemit([<room>/]<object> [<object> ...],<message>) 
    25982672 
    25992673  Sends <message> to all objects in <room> (default is the location  
    26002674  of <object>(s)) except <object>(s), as per @oemit. 
     2675 
     2676  nsoemit() is a wizard-only variation that works like @nsoemit. 
    26012677 
    26022678& OPEN() 
     
    26592735& PEMIT() 
    26602736  pemit(<object list>,<message>) 
     2737  nspemit(<object list>,<message>) 
    26612738 
    26622739  This function will send each object on the list a message, as per 
    26632740  the @pemit/list command. It returns nothing. It respects page-locks and 
    26642741  HAVEN flags on players. 
     2742 
     2743  nspemit() is a wizard-only variation that works like @nspemit/list. 
     2744   
    26652745& PI() 
    26662746  pi() 
     
    28212901  register. Under regmatchi, case of the substring may be modified. 
    28222902  
    2823   For example, if <string> is 'cookies=30', and <regexp> is '(.+)=([0-9]*)' 
    2824   (parsed; note that escaping may be necessary), then the 0th substring 
     2903  For example, in regmatch( cookies=30 , (.+)=(\[0-9\]*) ) 
     2904  (note use of escaping for MUSH parser), then the 0th substring 
    28252905  matched is 'cookies=30', the 1st substring is 'cookies', and the 2nd 
    28262906  substring is '30'. If <register list> is '0 3 5', then %q0 will become 
     
    28342914& REMIT() 
    28352915  remit(<object>, <message>) 
     2916  nsremit(<object>, <message>) 
    28362917 
    28372918  Sends a message to the contents of <object>, as per @remit. 
    28382919 
     2920  nsremit() is a wizard-only variation that works like @nsremit. 
    28392921& REMOVE() 
    28402922  remove(<list>,<word>[,<delimiter>]) 
     
    29863068& SCAN() 
    29873069  scan(<object>, <command>) 
     3070  scan(<command>) 
    29883071 
    29893072  This function works like @scan, and returns a space-separated list of  
     
    29913074  <command> were run by <object>. You must control <object> or be 
    29923075  See_All to use this function. 
     3076 
     3077  If no <object> is specified, this function works like @scan run 
     3078  by the function's executor. 
    29933079 
    29943080& SCRAMBLE() 
     
    32143300  this limit is exceeded, the function will fail _silently_. List and 
    32153301  function sizes should be kept reasonable. 
     3302 
     3303  See also: anonymous attributes 
    32163304& SOUNDEX() 
    32173305  soundex(<word>) 
     
    33583446  4 - 5 - 
    33593447 
    3360   See also: map(), iter() 
     3448  See also: map(), iter(), anonymous attributes 
    33613449& STDDEV() 
    33623450  stddev(<number>,...) 
     
    39134001   playername  Test for a valid player name that can be set with 
    39144002                @name or @alias. 
     4003   password    Test for a valid password. 
     4004   command     Test for a valid command name for @command/add 
     4005   function    Test for a valid function name for @function 
    39154006 
    39164007  > think valid(name,Foobar) 
     
    41074198& ZEMIT() 
    41084199  zemit(<zone>, <message>) 
     4200  nszemit(<zone>, <message>) 
    41094201 
    41104202  Sends a message to everything zoned to <zone>, as per @zemit. 
    41114203  Costs apply. 
     4204 
     4205  nszemit() is a wizard-only variation that works like @nszemit. 
    41124206 
    41134207& ZFUN() 
  • 1.7.7/game/txt/hlp/pennmail.hlp

    r355 r457  
    126126   
    127127  Only wizards may stats players other than themselves. The mail statistics 
    128   commands are computationally expensive, and thus are subject to "daytime" 
    129   restrictions. They also cost the same as a @find (100 pennies). 
     128  commands are computationally expensive and cost the same as @find. 
    130129   
    131130  The /debug switch does sanity checking on the mail database, and may only 
  • 1.7.7/game/txt/hlp/penntop.hlp

    r455 r457  
    1818 
    1919If there are any errors in the help text, please notify a wizard 
    20 in the game, or send mail to dunemush@pennmush.org. 
     20in the game, or send mail to dunemush@pennmush.org, who maintains 
     21PennMUSH (and its distributed help files) but probably has no relation 
     22to this MUSH in particular. 
    2123   
    2224& newbie 
     
    7779Help is available on the following topics: 
    7880 
    79   ACTION LISTS             ANCESTORS                ATTRIB-OWNERSHIP 
    80   ATTRIBUTES               BEING KILLED             BOOLEAN VALUES            
    81   CHAT                     CLIENTS                  CONTROL                   
    82   COPYRIGHT                COSTS                    CREDITS                   
    83   DBREFS                   DROP-TO                  ENACTOR                   
    84   EVALUATION               EXECUTOR                 EXITS                     
    85   FAILURE                  FLAGS                    FUNCTIONS                 
    86   GENDER                   GLOBALS                  HERE                      
    87   HOMES                    INTERIORS                LINKING                   
    88   LISTENING                LISTS                    LOOPING                   
    89   MASTER ROOM              MATCHING 
     81  ACTION LISTS             ANCESTORS                ANONYMOUS ATTRIBUTES 
     82  ATTRIB-OWNERSHIP         ATTRIBUTES               BEING KILLED 
     83  BOOLEAN VALUES           CHAT                     CLIENTS 
     84  CONTROL                  COPYRIGHT                COSTS 
     85  CREDITS                  DBREFS                   DROP-TO 
     86  ENACTOR                  EVALUATION               EXECUTOR 
     87  EXITS                    FAILURE                  FLAGS 
     88  FUNCTIONS                GENDER                   GLOBALS                   
     89  HERE                     HOMES                    INTERIORS                 
     90  LINKING                  LISTENING                LISTS                     
     91  LOOPING                  MASTER ROOM              MATCHING 
    9092 
    9193(continued in help topics2) 
     
    161163 
    162164  See also: PARENTS, ORPHAN 
    163  
     165& ANONYMOUS ATTRIBUTES 
     166& LAMBDA 
     167  In many cases where a function expects a object/attribute pair 
     168  that refers to an attribute to evaluate, you can use the form 
     169 
     170  #lambda/<code> 
     171 
     172  instead, and the code will be treated as an attribute's body. 
     173  The code will normally be parsed twice, so special characters  
     174  should be escaped where needed. 
     175 
     176  These anonymous attributes should be used for short and simple 
     177  pieces of code. Anything long or complicated should go in an 
     178  actual attribute, for readability and maintainability. 
     179 
     180  See HELP ANONYMOUS2 for examples. 
     181& ANONYMOUS2 
     182  A typical usage of anonymous attributes would be to convert 
     183  a list of dbrefs to names, as so: 
     184 
     185  >say map(#lambda/name(\%0), #3 #12 #23) 
     186  You say, "Joe Robert Sally" 
     187 
     188  Because the code is parsed twice, you can actually build parts of 
     189  it in place, which is very convenient. Consider this implementation 
     190  of a lattrval function, which is like lattr() but it only returns 
     191  non-empty attributes: 
     192 
     193  &lattrval me= 
     194   filter(#lambda/hasattrval([secure(before(%0, /))], \%0), lattr(%0)) 
     195   
     196  The first time '#lambda/hasattrval([secure(before(%0, /))], \%0)' is 
     197  parsed in a call like 'u(lattrval, #1234)', it is turned into 
     198  '#lambda/hasattrval(#1234, %0)', thus avoiding the need for a setq() or 
     199  the like to store the top-level %0 for use in a real attribute called by 
     200  filter(). However, this can lead to problems with evaluating un-trusted 
     201  code. Use secure() or escape() where neccessary. 
     202 
     203  See HELP ANONYMOUS3 for another example. 
     204& ANONYMOUS3 
     205   
     206  You can also use lit() to avoid having the code evaluated twice, if 
     207  needed. For example, this code, which returns all unlinked exits in 
     208  a room: 
     209 
     210  &lunlinked me=filter(lit(#lambda/strmatch(loc(%0), #-1)), lexits(%0)) 
     211 
     212  This approach is useful both for security in making it harder to evaluate 
     213  a string that shouldn't be, and for making the code look nicer by not 
     214  having to escape percent signs, brackets, and other special 
     215  characters. However, it also makes it harder to build the code string on 
     216  the fly. Use what's most appropriate. 
     217      
     218  See HELP ANONYMOUS4 for a list of functions that support anonymous 
     219  attributes. 
     220& ANONYMOUS4 
     221  The following functions support anonymous attributes: 
     222   
     223  filter()    filterbool()   fold()      foreach()   map() 
     224  mix()       munge()        sortby()    step()  
    164225& ATTRIB-OWNERSHIP 
    165226  ATTRIBUTE OWNERSHIP 
    166227   
    167   The first person who creates an attribute on an object is the owner 
     228  The latest person to set an attribute on an object is the owner 
    168229  of that attribute. If you lock an attribute, using the @atrlock command, 
    169230  only the person who owns the attribute will be able to alter the 
     
    460521& %N 
    461522& %~ 
     523& %: 
    462524& ENACTOR 
    463525  The enactor is the object that does something (enacts something :). 
     
    471533    %n = the enactor's name, first letter as-is 
    472534    %~ = the enactor's accented name 
    473     %: = the enactor's unique identifier, equivalent to %#:[convtime(ctime(%#))] 
     535    %: = the enactor's unique identifier, like objid(%#) 
    474536 
    475537  If, for example, you have an @osucc on an object that includes the 
     
    15051567     %n = the ENACTOR's name, first letter as-is 
    15061568     %~ = the ENACTOR's accented name 
    1507       
     1569     %: = the enactor's unique identifier, like objid(%#) 
     1570 
    15081571(continued in help SUBSTITUTIONS2) 
    15091572& SUBSTITUTIONS2 
  • 1.7.7/game/txt/hlp/pennv176.hlp

    r453 r457  
     1& 1.7.6p16 
     2Version 1.7.6 patchlevel 16                     April 28, 2004 
     3 
     4Fixes: 
     5   * PCRE updated to 4.5 [SW] 
     6 
     7 
    18& 1.7.6p15 
    29Version 1.7.6 patchlevel 15                     January 25, 2004 
  • 1.7.7/game/txt/hlp/pennv177.hlp

    r455 r457  
    1 & 1.7.7p28 
     1& 1.7.7p29 
    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 29                     April 28, 2004 
     15 
     16Major changes: 
     17  * Anonymous attributes via #lambda. See help anonymous attributes. [SW] 
     18  * Wizards (other than God) and royalty are no longer treated as No_Pay 
     19    unless the No_Pay power is explicitly set on them, although they 
     20    can still give (themselves or others) as many pennies as they wish. 
     21    This helps stop runaway wizards in the queue (they'll run out of cash 
     22    like anyone else). To get the old behavior back, @power your admin 
     23    No_Pay. You probably want to @power any globals that use search(), 
     24    children(), mail*stats(), etc, No_Pay as well. Suggested by Walker@M*U*S*H. 
     25  * game/restrict.cnf, alias.cnf, names.cnf are renamed in the tarball and 
     26    made with make update like mush.cnf. Suggested by Philip Mak. [SW] 
     27  * @powers now operate under the same code as the @flag system, so God 
     28    can add and modify powers in the MUSH with @power/add, etc.  
     29Commands: 
     30  * @nsemit, @nsoemit, @nslemit, @nsremit, @nszemit and function forms 
     31    of the same. Suggested by Cloud@M*U*S*H. 
     32Functions: 
     33  * andlpowers(), orlpowers(), andpowers(), orpowers(). 
     34  * align() performs fancy text alignment tricks. Patch by Walker@M*U*S*H. 
     35  * sent() and recv() show more player descriptor data from SESSION. 
     36    Suggested by Ricochet@M*U*S*H. 
     37  * scan() with a single argument assumes the executor's point of 
     38    view. Suggested by Cheetah@M*U*S*H. 
     39  * valid() can also check for syntactically correct passwords, 
     40    command names, and function names. 
     41Minor changes: 
     42  * No more CRYPT_SYSTEM in options.h. We try everything and we 
     43    always reset passwords to SHS. Patch by Vadiv@M*U*S*H. 
     44  * Wizards and other privileged players can @chan/recall on channels they're 
     45    not on. Suggested by Trispis@M*U*S*H. [SW] 
     46  * A separate ip address to bind the SSL port to can now be specified 
     47    in mush.cnf. 
     48  * @flag/type allows God to change flag types. Suggested by Renee@ShoreSide. 
     49  * After each @startup is enqueued (during startup or @restart/all), 
     50    we immediately run up to 5 queue cycles. This allows, e.g., God's 
     51    @startup to up to five levels of @dol/@tr/@switch/etc and still have 
     52    the queued code run ahead of other startups. This requires that you 
     53    keep God's dbref as #1. Based on comments by Philip Mak and o 
     54    Trispis@M*U*S*H. 
     55  * The message after successful @password is now clearer, to avoid 
     56    confusion in some unusual cases. Report by Kholnuu. 
     57  * Makefile is no longer set executable. Report by Luke@M*U*S*H. 
     58  * Server now handles telnet NOP and AYT commands. Suggested by 
     59    Philip Mak and Liz (author of Muckclient). 
     60  * announce.c is no longer distributed. portmsg.c cleanup. 
     61Fixes: 
     62  * @undestroy on an invalid (garbage, or !going) object now produces 
     63    an error message. Suggested by T'orA@M*U*S*H. 
     64  * On shutdowns, all queue deposits are now refunded. 
     65  * Ansi behavior on second and later lines of text fixed by Walker@M*U*S*H. 
     66  * Database reading improvements for win32 - ideally, you should now 
     67    be able to read a database written on win32/unix on either system. 
     68  * allof() now evaluates its separator argument. [SW] 
     69  * firstof() doesn't add an extra space before the value it returns. [SW]  
     70  * Slackware portability fixes by Dale @ Wolfpaw.net hosting 
     71  * ]page properly noevals (the right hand side) now. Report by  
     72    Cheetah@M*U*S*H. 
     73  * Partial channel match listings no longer reveal channels the player 
     74    isn't allowed to see. Report by Taz. 
     75  * Help fixes by Trispis@M*U*S*H and Tanaku@M*U*S*H. 
     76  * ssl() and terminfo() don't work on other players unless you're 
     77    See_All, as promised. Based on patch by Tanaku@M*U*S*H. 
     78  * lcon, etc. all do an INTERACT_SEE interaction check now. 
     79    Suggested by Thor@bDv. 
     80  * Code cleanup. [SW] 
     81  * Fixes from 1.7.6p16 
     82&nbs