PennMUSH Community

Changeset 527

Show
Ignore:
Timestamp:
08/16/06 03:11:42 (2 years ago)
Author:
pennmush
Message:

PennMUSH 1.8.1p8 Archival

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • 1.8.1/CHANGES.181

    r525 r527  
    1414 
    1515========================================================================== 
     16 
     17Version 1.8.1 patchlevel 8                      June 3, 2006 
     18 
     19Attributes: 
     20  * New 'AAHEAR' and 'AMHEAR' attribute flags, when set on an 
     21    ^listen attribute, cause it to behave like @aahear or 
     22    @amhear respectively, instead of like @ahear. Suggested by 
     23    Jules@M*U*S*H. Patch by Talvo@M*U*S*H. 
     24  * New UNIMPLEMENTED_COMMAND command handles commands that 
     25    are known but not implemented (currently just @SQL). By default, 
     26    produces a standard message, but can now be @hooked, etc. 
     27    Suggested by Talvo@M*U*S*H. [TAP]. 
     28  * @conformat and @invformat are now passed a |-delimited list 
     29    of object names, unparsed in the default fashion, as %1. Patch 
     30    by Talvo@M*U*S*H. 
     31Functions: 
     32  * default() can now take any number of obj/attr cases. Suggested 
     33    by Nathan Baum, patch by Talvo@M*U*S*H. 
     34  * lwhoid(), mwhoid(), xwhoid(), xmwhoid() work like lwho(), etc. 
     35    but return objids instead of dbrefs. Patch by Talvo@M*U*S*H. 
     36  * stringsecs() converts timestrings to seconds. Patch by Talvo@M*U*S*H. 
     37Minor changes: 
     38  * %u is now set to the evaluated typed $command (when a $command 
     39    is matched) and is available to locks. Suggested 
     40    by Jules@M*U*S*H, patch by Talvo@M*U*S*H. 
     41  * Rooms reachable from FLOATING rooms are now considered topologically 
     42    connected, just like rooms reachable from the base room. 
     43    Patch by Nathan Baum. 
     44  * %i0-%i9 evaluates to itext(0)-itext(9) for convenience in iter().  
     45    Suggested by Nathan Baum. Patch by Talvo@M*U*S*H. 
     46  * When safer_ufun is on, you must control an object to @function 
     47    an attribute on it. This prevents, e.g., mortals with @function power 
     48    from making attributes on wizard objects into @functions.  
     49    Suggested by Talvo@M*U*S*H. 
     50  * Internal eval_lock_with function added to support passing special 
     51    %0/%1 values to lock evaluations. Suggested by Malix@8bit. 
     52  * Improved @uptime display by Ambrosia@M*U*S*H. 
     53  * Players may @search a ZMP if they pass the zone lock. Patch by 
     54    Talvo@M*U*S*H. 
     55Fixes: 
     56  * cbuffer() crash fixed. Report by qa'toq@ST:Foundations. [GM] 
     57  * regex crash bug fixed. [GM] 
     58  * insert() added an extra delimiter when inserting at end of list. 
     59    Report by Sangman. [SW] 
     60  * make distclean is more thorough. Patch by Ranmir@M*U*S*H. 
     61  * EQSPLIT commands with no equal sign that were hooked were passed to the  
     62    hook attribute with an equal sign (and nothing to the right). 
     63    Fixed. Suggested by Talvo@M*U*S*H. 
     64  * zwho/zmwho can now be used by see_all players on any zone. 
     65    Suggested by Talvo@M*U*S*H. 
     66  * crecall() now accepts 1 or 2 arguments, as promised. Report by 
     67    Sketch@M*U*S*H. 
     68  * attrib_set(obj/attr,) sets the attribute to a single space 
     69    when EMPTY_ATTRS is off. Patch by Talvo@M*U*S*H. 
     70  * Portability fix in fun_speak. [EEH] 
     71  * Fix to TZ parsing in src/funtime.c by Jules@M*U*S*H. 
     72  * Fix to speak() for fragments of speech by Talvo@M*U*S*H based on 
     73    report by Trelane@M*U*S*H. 
     74  * Typo fixes in game/aliascnf.dst by Talvo@M*U*S*H. 
     75  * Help fixes by Talvo@M*U*S*H, Sketch@M*U*S*H. 
     76 
    1677 
    1778Version 1.8.1 patchlevel 7                      March 21, 2006 
     
    41102  * unique() function removes contiguous duplicates in lists. [SW] 
    42103  * nextdbref() returns the next dbref on the free list.  
    43     Patch by Talvo@M*U*S*H. 
     104    Suggested by Jules@M*U*S*H. Patch by Talvo@M*U*S*H. 
    44105  * Specifying more than one type to locate() now makes each of them 
    45106    preferred (not just the last one). Suggested by Anyasha@ST:Foundations. 
  • 1.8.1/Makefile.SH

    r525 r527  
    221221 
    222222distclean:  
    223     (cd src; make distclean) 
    224     (cd hdrs; rm -f *.orig *~ \#* *.rej *.bak funs.h cmds.h) 
    225     (cd utils; rm -f *.orig *~ \#* *.rej *.bak) 
     223    (cd hdrs; rm -f *.orig *~ \#* *.rej *.bak funs.h cmds.h buildinf.h patches.h) 
     224    (cd utils; rm -f *.orig *~ \#* *.rej *.bak mkcmds.sh) 
    226225    (cd game; rm -rf *.log netmush info_slave *.orig *.rej *~ *.bak mush.cnf) 
    227226    (cd os2; rm -rf *.rej *.orig *~ *.bak) 
     227    (cd src; make distclean; rm -f Makefile) 
    228228    (cd game/txt; make clean) 
     229    (rm -rf .config Makefile config.h config.sh options.h) 
    229230 
    230231totallyclean: distclean  
  • 1.8.1/Patchlevel

    r525 r527  
    11Do not edit this file. It is maintained by the official PennMUSH patches. 
    2 This is PennMUSH 1.8.1p7 
     2This is PennMUSH 1.8.1p8 
  • 1.8.1/game/aliascnf.dst

    r525 r527  
    6161function_alias xthings xobjects 
    6262function_alias xvthings xvobjects 
    63 functoin_alias atrlock attrlock 
     63function_alias atrlock attrlock 
    6464 
    6565# For rhost compatibility 
  • 1.8.1/game/mushcnf.dst

    r525 r527  
    8585 
    8686# The master room. Exits here are global, as are commands on 
    87 # objects here. This only is used if globals is set to "yes". 
     87# objects here. 
    8888master_room 2 
    8989 
  • 1.8.1/game/txt/hlp/pennchat.hlp

    r525 r527  
    287287  prepended to the message, behaving like @cemit/noisy. 
    288288& CFLAGS() 
     289& CLFLAGS() 
    289290  cflags(<channel>) 
    290291  cflags(<channel>,<object>) 
     
    348349 
    349350  cbuffer()     cdesc()       cemit()       cflags()      channels()     
    350   clflags()     clock()       cmsgs()       cowner()      cstatus()      
    351   ctitle()      cusers()      cwho() 
     351  clflags()     clock()       cmsgs()       cowner()      crecall() 
     352  cstatus()     ctitle()      cusers()      cwho() 
  • 1.8.1/game/txt/hlp/penncmd.hlp

    r525 r527  
    398398  @attribute/access adds a new standard attribute into the table, 
    399399  associating it with the given space-separated list of full flag names. 
    400   See 'help @set' for possible flags. A flag list of "none" removes 
     400  See 'help attribute flags' for possible flags. A flag list of "none" removes 
    401401  all flag associations. 
    402402  If the /retroactive switch is added, the flags are assigned to every copy 
     
    612612 
    613613  /noparse   : The command does not evaluate arguments passed to it. 
    614   /eqsplit   : The parser parses leftside and rightside 
     614  /eqsplit   : The parser parses leftside and rightside around = 
    615615  /lsargs    : Comma-separated arguments on the left side are parsed. 
    616616  /rsargs    : In conjunction with eqsplit, the right-side arguments, 
     
    681681  The objects that the looker would normally be able to see is passed 
    682682  as a dbref list in %0; all contents can be acquired through 'lcon(me)'. 
     683  A |-delimited list of all the unparsed object names is passed  
     684  in %1 (so iter(%1,itext(0),|,%r) produces the standard list) 
    683685  
    684686  One could change the format to 'Contents: Object1 Object2 Object3' 
     
    694696  as if it were a description or other similar message on the object. 
    695697  The objects carried are passed as a dbref list in %0. 
     698  A |-delimited list of all the unparsed object names is passed  
     699  in %1 (so iter(%1,itext(0),|,%r) produces the standard list) 
    696700 
    697701  One could change the format to 'You've got: Object1 Object2 Object3' 
     
    11531157& @enable 
    11541158& @disable 
    1155   @enable <parameter> 
    1156   @disable <parameter> 
    1157    
    1158   These are wizard commands that allow certain parameters of the game to 
    1159   be changed at runtime. The values of these parameters are listed by the 
    1160   "@config" command. Common parameters and their effects are as follows: 
    1161    
    1162   logins       --  When logins are disabled, only wizards and royalty may 
    1163                    log into the game. Mortals attempting to log in will be 
    1164                    given the down text, as well as the @rejectmotd. 
    1165   guests       --  When guests are disabled, players can not log in as 
    1166                    guest characters. 
    1167   pueblo       --  Turns on HTML output for the Pueblo client. 
    1168   log_commands --  When this is enabled, all commands are logged. 
    1169   log_huhs     --  When this is enabled, all commands that produce a "Huh?" 
    1170                    are logged. 
    1171   log_forces   --  When this is enabled, @forces done by wizards are logged. 
    1172   log_walls    --  When this is enabled, @walls are logged. 
    1173  
    1174   Actually, any boolean (Yes/No) runtime option can be enabled or 
    1175   disabled with these commands, as a shortcut for @config/set. 
     1159  @enable <option> 
     1160  @disable <option> 
     1161 
     1162  These wizard-only commands allow for any boolean @config options to 
     1163  be changed (see "help @config paramaters" for a list). 
    11761164 
    11771165  @enable <option> is the same thing as @config/set <option>=yes 
    11781166  @disable <option> is the same thing as @config/set <option>=no 
     1167 
     1168  See also: @config 
    11791169& @zenter 
    11801170& @ozenter 
     
    15221512& @function2 
    15231513  <object> can be anything that the player using the @function command 
    1524   controls. <function name> must be 30 characters or less.  
     1514  controls (if safer_ufun is enabled) or can examine (if not).  
     1515  <function name> must be 30 characters or less.  
    15251516 
    15261517  A function defined using @function works just like any of the normal 
     
    29812972 
    29822973  For the class TYPE=PLAYER, and for  PLAYER=<player-name>, anyone may 
    2983   obtain information on any player.  In all other cases, only wizards may 
    2984   obtain information about other players. This is computationally 
     2974  obtain information on any player.  In all other cases, wizards may 
     2975  obtain information about other players, and players who pass a ZMP's 
     2976  zone-lock may obtain information about the ZMP. This is computationally 
    29852977  expensive, costing 100 pennies. It is generally faster than @find. 
    29862978   
     
    30743066  public (p)        This attribute can be evaluated by any object, even 
    30753067                    if safer_ufun is in use. DANGEROUS! AVOID! 
     3068  aahear (A)        ^-listens on this attribute match like @aahear 
     3069  amhear (M)        ^-listens on this attribute match like @amhear 
     3070 
     3071  Continued in 'help attribute flags3' 
     3072& attribute flags3 
    30763073  prefixmatch       When a user attempts to set an attribute using @<attrib>, 
    30773074                    this attribute will be matched down to its unique 
     
    30973094  @shutdown[/panic][/reboot][/paranoid] 
    30983095 
    3099   @shutdown shuts down the game. It may only be used by Wizards and 
    3100   must be typed in full. 
     3096  @shutdown shuts down the game. It may only be used by Wizards. 
    31013097 
    31023098  @shutdown/panic performs a panic shutdown of the game, using a seperate 
  • 1.8.1/game/txt/hlp/pennconf.hlp

    r463 r527  
    66 
    77  Attribs      Chat       Cmds        Cosmetic      Costs 
    8   Db           Dump       Funcs       Limits        Log 
    9   Net          Tiny 
     8  Db           Dump       Flags       Funcs         Limits 
     9  Log          Net        Tiny 
    1010 
    1111 The categories and groups are the same as those used by @config/list. 
    1212 Values must be of the listed type for each option. They include: 
    1313 <number>, <dbref>, <boolean> (Yes/No), <time>, or <string>. 
     14 
     15 Options which take a <time> will accept either a number of seconds 
     16 or a combination of numbers followed by 's' for seconds, 'm' for 
     17 minutes or 'h' for hours, making 1h30m and 5400 equivalent. 
     18 
     19 <dbref> options can be given with or without the leading '#', so 
     20 '1' and '#1' are the same. 
     21 
    1422& @config attribs 
    1523 These options control some attribute behavior. 
     
    2028  player_ahear=<boolean>: Is @ahear triggered on players? 
    2129  room_connects=<boolean>: Are @aconnect and @adisconnect triggered on rooms? 
    22   global_connects=<boolean>: Are @aconnect and @adisconnect triggered on 
    23    objects in the master room? 
    2430  read_remote_desc=<boolean>: Can anyone remotely retrieve @descs? 
     31  startups=<boolean>: Are @startup triggered at restart? 
     32  empty_attrs=<boolean>: Can attributes be set to an empty string? 
    2533& @config chat 
    2634 These options control chat system settings. 
     
    2836  chan_cost=<number>: How many pennies a channel costs to create. 
    2937  max_channels=<number>: How many channels can exist total. 
    30   max_player_channels=>number>: How many channels can each non-admin 
     38  max_player_channels=<number>: How many channels can each non-admin 
    3139   player create? If 0, mortals cannot create channels. 
    3240& @config cmds 
    3341 These options affect command behavior. 
    3442 
    35   globals=<boolean>: Is the master room checked for commands and exits? 
    3643  noisy_whisper=<boolean>: Does whisper default to whisper/noisy? 
    3744  possessive_get=<boolean>: Does "get container's object" work? 
     
    3946  link_to_object=<boolean>: Can exits have objects as their destination? 
    4047  owner_queues=<boolean>: Are command queues kept per-owner, or per-object? 
    41   restricted_building=<boolean>: Does it take the builder @power to build? 
    42   free_objects=<boolean>: If restricted_building is on, can @create be used 
    43    without the builder @power? 
    4448  full_invis=<boolean>: Should say by a dark player show up as 
    4549   'Someone says,'? 
    4650  wiz_noaenter=<boolean>: If yes, dark players don't trigger @aenters. 
    47   player_locate=<boolean>: Can mortals find the locations of remote players? 
    48   cemit_power=<boolean>: Should the cemit @power control @cemit? 
    4951  really_safe=<boolean>: Does SAFE prevent @nuking? 
    50   hate_dest=<boolean>: Does @destroy work? 
    5152  destroy_possessions=<boolean>: When a player is destroyed, are their objects 
    5253   as well? 
     
    5859  player_name_spaces=<boolean>: Can player names have spaces in them? 
    5960  ansi_names=<boolean>: Are names in look hilighted? 
    60   ansi_justify=<boolean>: Do ljust() and rjust() take ansi codes into 
    61    account? 
    6261  float_precision=<numbers>: How many digits after the decimal point in 
    6362   floating point numbers are kept when formatting the result of a 
     
    108107 These are database options. 
    109108 
    110  player_start=<dbref>: What room newly created players are in. 
    111  master_room=<dbref>: The location of the master room. 
    112  ancestor_room=<dbref>: If set to a good object, this is considered a global 
    113   parent for all rooms. If -1 or a nonexistant object, then disabled. 
    114  ancestor_exit=<dbref>: As ancestor_room for exits. 
    115  ancestor_thing=<dbref>: As ancestor_room for things. 
    116  ancestor_player=<dbref>: As ancestor_room for players. 
    117  base_room=<dbref>: The starting room used to determine if other rooms 
    118   are disconnected. 
    119  default_home=<dbref>: The room to send things to when they're homeless. 
    120  exits_connect_rooms=<boolean>: Is a room with any exit at all in not 
    121   considered disconnected for FLOATING checks? 
     109  player_start=<dbref>: What room newly created players are in. 
     110  master_room=<dbref>: The location of the master room. 
     111  ancestor_room=<dbref>: If set to a good object, this is considered a global 
     112   parent for all rooms. If -1 or a nonexistant object, then disabled. 
     113  ancestor_exit=<dbref>: As ancestor_room for exits. 
     114  ancestor_thing=<dbref>: As ancestor_room for things. 
     115  ancestor_player=<dbref>: As ancestor_room for players. 
     116  base_room=<dbref>: The starting room used to determine if other rooms 
     117   are disconnected. 
     118  default_home=<dbref>: The room to send things to when they're homeless. 
     119  exits_connect_rooms=<boolean>: Is a room with any exit at all in not 
     120   considered disconnected for FLOATING checks? 
     121  zone_control_zmp_only=<boolean>: Do we only perform control checks on ZMPs, 
     122   or do we check ZMOs and ZMRs too? 
    122123& @config dump 
    123124 These options affect database saves and other periodic checks. 
    124  
    125  The ones that take times will accept the time as either a 
    126  plain number, or a number with a suffix 's' for seconds or 'm' for 
    127  minutes or 'h' for hours. 
    128125 
    129126  forking_dump=<boolean>: Does the game clone itself and save in the 
     
    137134  purge_interval=<time>: Seconds between automatic @purges. 
    138135  dbck_interval=<time>: Seconds between automatic @dbcks. 
     136& @config flags 
     137  These options set the default flags for newly-created objects and channels. 
     138 
     139  player_flags=<string>: List of flags to set on newly created players 
     140  room_flags=<string>: List of flags to set on newly created rooms 
     141  thing_flags=<string>: List of flags to set on newly created things 
     142  exit_flags=<string>: List of flags to set on newly created exits 
     143  room_flags=<string>: List of flags to set on newly created rooms 
     144  channel_flags=<string>: List of flags to set on newly created channels 
    139145& @config funcs 
    140146 These options affect the behavior of some functions. 
    141147 
    142  haspower_restricted=<boolean>: Is haspower() available only to objects 
    143   with see_all
    144  safer_ufun=<boolean>: Are objects stopped from evaluting attributes on 
    145   objects with more privileges than themselves
     148  safer_ufun=<boolean>: Are objects stopped from evaluting attributes on 
     149  objects with more privileges than themselves
     150  function_side_effects=<boolean>: Are function side effects (functions which 
     151  alter the database) allowed
    146152& @config limits 
    147153 Limits and other constants. 
    148  
    149  The ones that take times will accept the time as either a 
    150  plain number, or a number with a suffix 's' for seconds or 'm' for 
    151  minutes or 'h' for hours. 
    152154 
    153155  max_dbref=<dbref>: The highest dbref an object can have. If 0, 
     
    198200  use_quota=<boolean>: Controls if quotas are used to limit the number 
    199201   of objects a player can own. 
     202 
     203Continued in help @config limits4 
     204& @config limits4 
     205 Limits and constants, continued 
     206 
     207  max_aliases=<number>: The maximum number of aliases a player can have. 
     208  keepalive_timeout=<time>: How often should an 'Are you still there?' query 
     209   be sent to connects, to stop players' routers booting idle connections? 
     210  max_parents=<number>: The maximum number of levels of parenting allowed. 
     211  call_limit=<number>: The maximum number of times the parser can be called 
     212   recursively for any one expression. 
    200213& @config log 
    201214 These options affect logging. 
    202215 
    203216  log_commands=<boolean>: Are all commands logged? 
    204   log_huhs=<boolean>: Are commands that produce Huh? messages logged? 
    205217  log_forces=<boolean>: Are @forces of wizard objects logged? 
    206   log_walls=<boolean>: Are @walls logged? 
    207218& @config net 
    208219 Networking and connection-related options. 
  • 1.8.1/game/txt/hlp/pennfunc.hlp

    r525 r527  
    110110  cmds()        conn()        doing()       height()      hostname() 
    111111  hidden()      idle()        ipaddr()      lports()      lwho()         
    112   mwho()        nmwho()       nwho()        ports()       pueblo()       
    113   recv()        sent()        ssl()         terminfo()    width()        
    114   xmwho()       xwho()        zmwho()       zwho() 
     112  lwhoid()      mwho()        mwhoid()      nmwho()       nwho() 
     113  ports()       pueblo()      recv()        sent()        ssl()          
     114  terminfo()    width()       xmwho()       xmwhoid()     xwho()         
     115  xwhoid()      zmwho()       zwho() 
    115116& Dbref functions 
    116117  Dbref functions return a dbref or list of dbrefs related to some value 
     
    215216  convsecs()    convutcsecs() convtime()    ctime()       etimefmt() 
    216217  isdaylight()  mtime()       restarttime() secs()        starttime() 
    217   time()        timefmt()     timestring()  utctime()    
     218  stringsecs()  time()        timefmt()     timestring()  utctime()    
    218219 
    219220& Utility functions 
     
    888889 
    889890& DEFAULT() 
    890   Function:  default([<obj>/]<attr>,<default case>) 
    891   
    892   This function returns the value of <obj>/<attr>, as if retrieved via 
    893   the get() function, if the attribute exists and is readable by you. 
    894   Otherwise, it evaluates the default case, and returns that. 
    895   Note that the default case is only evaluated if the attribute does 
    896   not exist or cannot be read. Note further than an empty attribute 
    897   counts as an existing attribute. 
    898   
     891  Function:  default([<obj>/]<attr>,[[<obj>]/<attr>,..]<default case>) 
     892  
     893  This function returns the value of the first possible <obj>/<attr>, 
     894  as if retrieved via the get() function, if the attribute exists and 
     895  is readable by you.  Otherwise, it evaluates the default case, and 
     896  returns that.  Note that the default case is only evaluated if the 
     897  attribute does not exist or cannot be read. Note further than an empty 
     898  attribute counts as an existing attribute. 
     899 
    899900  This is useful for code that needs to return the value of an attribute, 
    900901  or an error message or default case, if that attribute does not exist. 
     
    18141815& ITEXT() 
    18151816& INUM() 
     1817& %i 
    18161818  ilev() 
    18171819  itext(<n>) 
     1820  %i<n> 
    18181821  inum(<n>) 
    18191822 
     
    18211824  of ## (itext) or #@ (inum), with reference to the nth more outermost 
    18221825  iter(), where n=0 refers to the current iter(), n=1 to an iter() 
    1823   in which the current iter() is nested, etc. ilev() will return the 
    1824   current nesting depth, or -1 if it is outside an iter(). Thus, 
    1825   itext(ilev()) will return the ## of the outermost iter(). 
     1826  in which the current iter() is nested, etc. %iX is shorthand for itext(X) 
     1827  (up to itext(9).  ilev() returns the current nesting depth, or -1 
     1828  if it is outside an iter().  Thus, itext(ilev()) will return the ## 
     1829  of the outermost iter(). 
    18261830 
    18271831  > say [iter(red blue green,iter(fish shoe, #@:##))] 
     
    18341838  You say, "1:fish 2:shoe 1:fish 2:shoe 1:fish 2:shoe" 
    18351839   
    1836   > say [iter(red blue green,iter(fish shoe, [itext(1)]:[itext(0)]))] 
     1840  > say [iter(red blue green,iter(fish shoe, %i1:%i0))] 
    18371841  You say, "red:fish red:shoe blue:fish blue:shoe green:fish green:shoe" 
    18381842& IPADDR() 
     
    23052309  object. You must be in the object or control it to use this function. 
    23062310& LWHO() 
     2311& LWHOID() 
    23072312  lwho() 
    23082313  lwho(<viewer>) 
    2309  
    2310   This returns a list of the dbref numbers for all currently-connected 
     2314  lwhoid(<viewer>) 
     2315 
     2316  lwho() returns a list of the dbref numbers for all currently-connected 
    23112317  players. When mortals use this function, the dbref numbers of DARK 
    23122318  wizards or royalty do NOT appear on the dbref list. 
     
    23152321  DARK and Hidden players, lwho() returns the output of lwho() from 
    23162322  <viewer>'s point of view. 
     2323 
     2324  lwohid() returns a list of objid's instead. 
    23172325 
    23182326  See also: mwho(), nwho(), xwho() 
     
    25752583  See also: anonymous attributes 
    25762584& MWHO() 
     2585& MWHOID() 
    25772586  mwho() 
    2578  
    2579   This returns a list of the dbref numbers for all current-connected, 
     2587  mwhoid() 
     2588 
     2589  mwho() returns a list of the dbref numbers for all current-connected, 
    25802590  non-hidden players. It's exactly the same as lwho() used by a 
    25812591  mortal, and is suitable for use on privileged global objects who 
    25822592  need an unprivileged who-list. 
     2593   
     2594  mwhoid() returns a list of objids instead. 
    25832595& ALIAS() 
    25842596  alias(<player>[,<new alias>]) 
     
    35893601  <speech>           <speaker's name> says, "<speech>" 
    35903602  
    3591   The conf parameter say_uses_comma is respected (using "says," or "says"). 
    35923603  If <say string> is specified, it is used instead of "says," / "says". 
    35933604 
     
    42514262  You say, "00d 00h 05m 01s" 
    42524263 
     4264  See also: stringsecs() 
     4265& STRINGSECS() 
     4266  stringsecs(<timestring>) 
     4267 
     4268  The stringsecs() function takes a string of the form produced by 
     4269  timestring() and converts it back into seconds. 
     4270 
     4271  Example: 
     4272  > say [stringsecs(5m 1s)] 
     4273  You say, "301" 
     4274 
     4275  See also: timestring(), etimefmt() 
    42534276& TR() 
    42544277  tr(<string>,<find>,<replace>) 
     
    47754798  See also: nthings(), lthings(), lvthings() 
    47764799& XWHO() 
     4800& XWHOID() 
    47774801& XMWHO() 
     4802& XMWHOID() 
    47784803  xwho(start,count) 
    47794804  xmwho(start,count) 
     4805  xwhoid(start,count) 
     4806  xmwhoid(start,count) 
    47804807 
    47814808  xwho() fetches <count> or fewer player dbrefs from the list of connected 
     
    47874814  xmwho() is identical, except it is limited to non-DARK and non-HIDE 
    47884815  players. 
     4816 
     4817  xwhoid() and xmwhoid() return objids instead of dbrefs. 
    47894818 
    47904819  See also: lwho(), mwho(), nwho() 
     
    47974826  It's exactly the same as zwho() used by a mortal, and is suitable for 
    47984827  use on privileged global objects who need an unprivileged zwho-list. 
     4828  The viewer must either have see_alll privileges or pass the zone 
     4829  lock of the zone to use the function. 
    47994830 
    48004831  See also: zwho() 
     
    48064837  players within a location belonging to the specified zone. When mortals 
    48074838  use this function, the dbref numbers of DARK wizards or hidden royalty 
    4808   do NOT appear on the dbref list. 
     4839  do NOT appear on the dbref list. The viewer must either have see_all 
     4840  privileges or pass the zone lock of the zone to use the function. 
    48094841   
    48104842  If <viewer> is given by a privileged user, zwho() returns a dbref list 
  • 1.8.1/game/txt/hlp/penntop.hlp

    r525 r527  
    226226   
    227227  filter()    filterbool()   fold()      foreach()   map() 
    228   mix()       munge()        sortby()    step()  
     228  mix()       munge()        sortby()    sortkey()   step() 
    229229& ATTRIB-OWNERSHIP 
    230230  ATTRIBUTE OWNERSHIP 
     
    552552 
    553553    Special game commands: WHO, QUIT, etc. 
    554     Single-token commands: ", :, ;, + 
     554    Single-token commands: ", :, ;, +, \, # 
    555555    Exits in the room 
    556     @-commands 
     556    @-commands and &attribute setting 
    557557    Regular game commands: get, inventory, etc. 
    558558    Enter aliases 
     
    805805(continued in help listening3) 
    806806& LISTENING3 
    807   Please note that an object CANNOT trigger its own ^-patterns, so they 
    808   work like @ahear rather than @aahear or @amhear. (Note that the 
    809   triggering object is whatever happens to be %#, so, for example, when 
    810   you @set an object MONITOR, you are %# with regard to the  
     807  By default, ^-patterns work like @ahear. To have them work like 
     808  @amhear, set the AMHEAR attribute flag on the attribute; to have 
     809  them work like @aahear, set the AAHEAR attribute flag on the attribute 
     810  (Note that the triggering object is whatever happens to be %#, so, for 
     811  example, when you @set an object MONITOR, you are %# with regard to the 
    811812  "Object is now listening" message, and this message can be picked up 
    812813  with an ^pattern.) 
     
    16211622     %L = the dbref of the ENACTOR's location. 
    16221623     %c = text of the last command, _before_ evaluation. 
     1624     %u = text of the last $command, after evaluation, available to locks. 
    16231625     %? = The current function invocation and depth counts. 
    16241626     %+ = The number of arguments passed to the current ufun. 
  • 1.8.1/game/txt/hlp/pennv181.hlp

    r525 r527  
    1 & 1.8.1p7 
     1& 1.8.1p8 
    22& changes 
    33This is a list of changes in this patchlevel which are probably of 
     
    1212be read in 'help patchlevels'. 
    1313 
     14Version 1.8.1 patchlevel 8                      June 3, 2006 
     15 
     16Attributes: 
     17  * New 'AAHEAR' and 'AMHEAR' attribute flags, when set on an 
     18    ^listen attribute, cause it to behave like @aahear or 
     19    @amhear respectively, instead of like @ahear. Suggested by 
     20    Jules@M*U*S*H. Patch by Talvo@M*U*S*H. 
     21  * New UNIMPLEMENTED_COMMAND command handles commands that 
     22    are known but not implemented (currently just @SQL). By default, 
     23    produces a standard message, but can now be @hooked, etc. 
     24    Suggested by Talvo@M*U*S*H. [TAP]. 
     25  * @conformat and @invformat are now passed a |-delimited list 
     26    of object names, unparsed in the default fashion, as %1. Patch 
     27    by Talvo@M*U*S*H. 
     28Functions: 
     29  * default() can now take any number of obj/attr cases. Suggested 
     30    by Nathan Baum, patch by Talvo@M*U*S*H. 
     31  * lwhoid(), mwhoid(), xwhoid(), xmwhoid() work like lwho(), etc. 
     32    but return objids instead of dbrefs. Patch by Talvo@M*U*S*H. 
     33  * stringsecs() converts timestrings to seconds. Patch by Talvo@M*U*S*H. 
     34Minor changes: 
     35  * %u is now set to the evaluated typed $command (when a $command 
     36    is matched) and is available to locks. Suggested 
     37    by Jules@M*U*S*H, patch by Talvo@M*U*S*H. 
     38  * Rooms reachable from FLOATING rooms are now considered topologically 
     39    connected, just like rooms reachable from the base room. 
     40    Patch by Nathan Baum. 
     41  * %i0-%i9 evaluates to itext(0)-itext(9) for convenience in iter().  
     42    Suggested by Nathan Baum. Patch by Talvo@M*U*S*H. 
     43  * When safer_ufun is on, you must control an object to @function 
     44    an attribute on it. This prevents, e.g., mortals with @function power 
     45    from making attributes on wizard objects into @functions.  
     46    Suggested by Talvo@M*U*S*H. 
     47  * Internal eval_lock_with function added to support passing special 
     48    %0/%1 values to lock evaluations. Suggested by Malix@8bit. 
     49  * Improved @uptime display by Ambrosia@M*U*S*H. 
     50  * Players may @search a ZMP if they pass the zone lock. Patch by 
     51    Talvo@M*U*S*H. 
     52Fixes: 
     53  * cbuffer() crash fixed. Report by qa'toq@ST:Foundations. [GM] 
     54  * regex crash bug fixed. [GM] 
     55  * insert() added an extra delimiter when inserting at end of list. 
     56    Report by Sangman. [SW] 
     57  * make distclean is more thorough. Patch by Ranmir@M*U*S*H. 
     58  * EQSPLIT commands with no equal sign that were hooked were passed to the  
     59    hook attribute with an equal sign (and nothing to the right). 
     60    Fixed. Suggested by Talvo@M*U*S*H. 
     61  * zwho/zmwho can now be used by see_all players on any zone. 
     62    Suggested by Talvo@M*U*S*H. 
     63  * crecall() now accepts 1 or 2 arguments, as promised. Report by 
     64    Sketch@M*U*S*H. 
     65  * attrib_set(obj/attr,) sets the attribute to a single space 
     66    when EMPTY_ATTRS is off. Patch by Talvo@M*U*S*H. 
     67  * Portability fix in fun_speak. [EEH] 
     68  * Fix to TZ parsing in src/funtime.c by Jules@M*U*S*H. 
     69  * Fix to speak() for fragments of speech by Talvo@M*U*S*H based on 
     70    report by Trelane@M*U*S*H. 
     71  * Typo fixes in game/aliascnf.dst by Talvo@M*U*S*H. 
     72  * Help fixes by Talvo@M*U*S*H, Sketch@M*U*S*H. 
     73 
     74 
     75& 1.8.1p7 
    1476Version 1.8.1 patchlevel 7                      March 21, 2006 
    1577 
     
    38100  * unique() function removes contiguous duplicates in lists. [SW] 
    39101  * nextdbref() returns the next dbref on the free list.  
    40     Patch by Talvo@M*U*S*H. 
     102    Suggested by Jules@M*U*S*H. Patch by Talvo@M*U*S*H. 
    41103  * Specifying more than one type to locate() now makes each of them 
    42104    preferred (not just the last one). Suggested by Anyasha@ST:Foundations. 
  • 1.8.1/game/txt/hlp/pennvOLD.hlp

    r525 r527  
    44184418type 'help <version>p<patchlevel>'. For example, 'help 1.7.2p3' 
    44194419 
    4420 1.8.1: 0, 1, 2, 3, 4, 5, 6, 7 
     44201.8.1: 0, 1, 2, 3, 4, 5, 6, 7, 8 
    442144211.8.0: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 
    442244221.7.7: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 
  • 1.8.1/hdrs/attrib.h

    r523 r527  
    105105#define AF_NONAME       0x8000000   /* No name in did_it */ 
    106106#define AF_NOSPACE      0x10000000  /* No space in did_it */ 
     107#define AF_MHEAR        0x20000000  /* ^-listens can be triggered by %! */ 
     108#define AF_AHEAR        0x40000000  /* ^-listens can be triggered by anyone */ 
    107109 
    108110/* external predefined attributes. */ 
  • 1.8.1/hdrs/copyrite.h

    r525 r527  
    171171 * Past and present PennMUSH development team members: 
    172172 *  T. Alexander Popiel, Ralph Melton, Thorvald Natvig, Luuk de Waard, 
    173  *  Shawn Wagner, Ervin Hearn III, Alan "Javelin" Schwartz 
     173 *  Shawn Wagner, Ervin Hearn III, Alan "Javelin" Schwartz, Greg Millam 
    174174 * Past and present PennMUSH porters: 
    175175 *  Nick Gammon, Sylvia, Dan Williams, Ervin Hearn III 
  • 1.8.1/hdrs/dbdefs.h

    r523 r527  
    172172#define AF_Nearby(a) ((a)->flags & AF_NEARBY) 
    173173#define AF_Public(a) ((a)->flags & AF_PUBLIC) 
     174#define AF_Mhear(a) ((a)->flags & AF_MHEAR) 
     175#define AF_Ahear(a) ((a)->flags & AF_AHEAR) 
    174176 
    175177/* Non-mortal checks */ 
  • 1.8.1/hdrs/externs.h

    r523 r527  
    207207  dbref cplr;             /**< initiating player */ 
    208208  char ccom[BUFFER_LEN];      /**< raw command */ 
     209  char ucom[BUFFER_LEN];      /**< evaluated command */ 
    209210  int break_called;       /**< Has the break command been called? */ 
    210211  char break_replace[BUFFER_LEN];  /**< What to replace the break with */ 
  • 1.8.1/hdrs/lock.h

    r525 r527  
    6161void free_locks(lock_list *ll); 
    6262int eval_lock(dbref player, dbref thing, lock_type ltype); 
     63int eval_lock_with(dbref player, dbref thing, lock_type ltype, dbref env0, 
     64           dbref env1); 
    6365int fail_lock(dbref player, dbref thing, lock_type ltype, const char *def, 
    6466          dbref loc); 
  • 1.8.1/hdrs/version.h

    r525 r527  
    11#define VERSION "1.8.1" 
    2 #define PATCHLEVEL "7
    3 #define PATCHDATE "[03/21/2006]" 
    4 #define NUMVERSION 1008001007 
     2#define PATCHLEVEL "8
     3#define PATCHDATE "[06/03/2006]" 
     4#define NUMVERSION 1008001008 
  • 1.8.1/src/atr_tab.c

    r521 r527  
    5656  {"noname", 'N', AF_NONAME, AF_NONAME}, 
    5757  {"nospace", 's', AF_NOSPACE, AF_NOSPACE}, 
     58  {"amhear", 'M', AF_MHEAR, AF_MHEAR}, 
     59  {"aahear", 'A', AF_AHEAR, AF_AHEAR}, 
    5860  {NULL, '\0', 0, 0} 
    5961}; 
     
    8183  {"noname", 'N', AF_NONAME, AF_NONAME}, 
    8284  {"nospace", 's', AF_NOSPACE, AF_NOSPACE}, 
     85  {"amhear", 'M', AF_MHEAR, AF_MHEAR}, 
     86  {"aahear", 'A', AF_AHEAR, AF_AHEAR}, 
    8387  {NULL, '\0', 0, 0} 
    8488}; 
  • 1.8.1/src/attrib.c

    r523 r527  
    12541254      continue; 
    12551255    *s++ = '\0'; 
     1256    if (type == '^' && !AF_Ahear(ptr)) { 
     1257      if ((thing == player && !AF_Mhear(ptr)) 
     1258      || (thing != player && AF_Mhear(ptr))) 
     1259    continue; 
     1260    } 
    12561261 
    12571262    if (AF_Regexp(ptr)) { 
  • 1.8.1/src/bsd.c

    r525 r527  
    24582458      global_eval_context.cplr = d->player; 
    24592459      strcpy(global_eval_context.ccom, command); 
     2460      strcpy(global_eval_context.ucom, ""); 
    24602461 
    24612462      /* Clear %0-%9 and r(0) - r(9) */ 
     
    24692470      send_suffix(d); 
    24702471      strcpy(global_eval_context.ccom, ""); 
     2472      strcpy(global_eval_context.ucom, ""); 
    24712473      global_eval_context.cplr = NOTHING; 
    24722474    } else { 
     
    37893791  int start, count; 
    37903792  int powered = (*(called_as + 1) != 'M'); 
     3793  int objid = (index(called_as, 'D') != NULL); 
    37913794 
    37923795  if (!is_strict_integer(args[0]) || !is_strict_integer(args[1])) { 
     
    38143817      safe_chr(' ', buff, bp); 
    38153818    safe_dbref(d->player, buff, bp); 
     3819    if (objid) { 
     3820      safe_chr(':', buff, bp); 
     3821      safe_integer(CreTime(d->player), buff, bp); 
     3822    } 
    38163823      } 
    38173824    } 
     
    38423849  dbref victim; 
    38433850  int powered = ((*called_as == 'L') && Priv_Who(executor)); 
     3851  int objid = (index(called_as, 'D') != NULL); 
    38443852 
    38453853  first = 1; 
     
    38683876    safe_chr(' ', buff, bp); 
    38693877      safe_dbref(d->player, buff, bp); 
     3878      if (objid) { 
     3879    safe_chr(':', buff, bp); 
     3880    safe_integer(CreTime(d->player), buff, bp); 
     3881      } 
    38703882    } 
    38713883  } 
     
    40694081  } 
    40704082 
    4071   if (!GoodObject(zone) || !eval_lock(victim, zone, Zone_Lock)) { 
     4083  if (!GoodObject(zone) 
     4084      || (!Priv_Who(executor) && !eval_lock(victim, zone, Zone_Lock))) { 
    40724085    safe_str(T(e_perm), buff, bp); 
    40734086    return; 
  • 1.8.1/src/command.c

    r525 r527  
    349349/* A way to let people override the Huh? message */ 
    350350  {"HUH_COMMAND", NULL, cmd_huh_command, 
     351   CMD_T_ANY | CMD_T_NOPARSE | CMD_T_INTERNAL, 0, 0}, 
     352 
     353/* A way to let people override the unimplemented message */ 
     354  {"UNIMPLEMENTED_COMMAND", NULL, cmd_unimplemented, 
    351355   CMD_T_ANY | CMD_T_NOPARSE | CMD_T_INTERNAL, 0, 0}, 
    352356 
     
    11521156    } 
    11531157    if (cmd->type & CMD_T_EQSPLIT) { 
    1154       safe_chr('=', commandraw, &c2); 
    1155       if (cmd->type & CMD_T_RS_ARGS) { 
    1156     int rsa_index; 
    1157     /* This is counterintuitive, but rsa[] 
    1158      * starts at 1. */ 
    1159