Changeset 457
- Timestamp:
- 08/16/06 00:55:01 (2 years ago)
- Files:
-
- 1.7.7/CHANGES.176 (modified) (1 diff)
- 1.7.7/CHANGES.177 (modified) (1 diff)
- 1.7.7/Configure (modified) (3 diffs)
- 1.7.7/MANIFEST (modified) (2 diffs)
- 1.7.7/Makefile.SH (modified) (2 diffs)
- 1.7.7/Patchlevel (modified) (1 diff)
- 1.7.7/game/access.README (modified) (3 diffs)
- 1.7.7/game/aliascnf.dst (added)
- 1.7.7/game/mushcnf.dst (modified) (2 diffs)
- 1.7.7/game/namescnf.dst (added)
- 1.7.7/game/restrictcnf.dst (added)
- 1.7.7/game/txt/hlp/penncmd.hlp (modified) (7 diffs)
- 1.7.7/game/txt/hlp/pennconf.hlp (modified) (1 diff)
- 1.7.7/game/txt/hlp/pennfunc.hlp (modified) (24 diffs)
- 1.7.7/game/txt/hlp/pennmail.hlp (modified) (1 diff)
- 1.7.7/game/txt/hlp/penntop.hlp (modified) (6 diffs)
- 1.7.7/game/txt/hlp/pennv176.hlp (modified) (1 diff)
- 1.7.7/game/txt/hlp/pennv177.hlp (modified) (2 diffs)
- 1.7.7/game/txt/hlp/pennvOLD.hlp (modified) (1 diff)
- 1.7.7/hdrs/attrib.h (modified) (1 diff)
- 1.7.7/hdrs/command.h (modified) (3 diffs)
- 1.7.7/hdrs/conf.h (modified) (7 diffs)
- 1.7.7/hdrs/dbdefs.h (modified) (1 diff)
- 1.7.7/hdrs/extchat.h (modified) (1 diff)
- 1.7.7/hdrs/externs.h (modified) (4 diffs)
- 1.7.7/hdrs/flags.h (modified) (5 diffs)
- 1.7.7/hdrs/game.h (modified) (1 diff)
- 1.7.7/hdrs/mushdb.h (modified) (2 diffs)
- 1.7.7/hdrs/pcre.h (modified) (1 diff)
- 1.7.7/hdrs/switches.h (modified) (1 diff)
- 1.7.7/hdrs/version.h (modified) (1 diff)
- 1.7.7/options.h.dist (modified) (1 diff)
- 1.7.7/src/SWITCHES (modified) (2 diffs)
- 1.7.7/src/boolexp.c (modified) (3 diffs)
- 1.7.7/src/bsd.c (modified) (14 diffs)
- 1.7.7/src/cmds.c (modified) (11 diffs)
- 1.7.7/src/command.c (modified) (17 diffs)
- 1.7.7/src/conf.c (modified) (8 diffs)
- 1.7.7/src/cque.c (modified) (4 diffs)
- 1.7.7/src/db.c (modified) (14 diffs)
- 1.7.7/src/destroy.c (modified) (7 diffs)
- 1.7.7/src/extchat.c (modified) (4 diffs)
- 1.7.7/src/flags.c (modified) (59 diffs)
- 1.7.7/src/function.c (modified) (6 diffs)
- 1.7.7/src/fundb.c (modified) (10 diffs)
- 1.7.7/src/funlist.c (modified) (16 diffs)
- 1.7.7/src/funmisc.c (modified) (8 diffs)
- 1.7.7/src/funstr.c (modified) (5 diffs)
- 1.7.7/src/game.c (modified) (5 diffs)
- 1.7.7/src/look.c (modified) (3 diffs)
- 1.7.7/src/match.c (modified) (1 diff)
- 1.7.7/src/mycrypt.c (modified) (3 diffs)
- 1.7.7/src/notify.c (modified) (4 diffs)
- 1.7.7/src/pcre.c (modified) (175 diffs)
- 1.7.7/src/player.c (modified) (3 diffs)
- 1.7.7/src/portmsg.c (modified) (5 diffs)
- 1.7.7/src/predicat.c (modified) (3 diffs)
- 1.7.7/src/rob.c (modified) (3 diffs)
- 1.7.7/src/set.c (modified) (1 diff)
- 1.7.7/src/speech.c (modified) (17 diffs)
- 1.7.7/src/strutil.c (modified) (1 diff)
- 1.7.7/src/switchinc.c (modified) (2 diffs)
- 1.7.7/src/utils.c (modified) (1 diff)
- 1.7.7/src/wiz.c (modified) (7 diffs)
- 1.7.7/win32/cmds.h (modified) (1 diff)
- 1.7.7/win32/funs.h (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
1.7.7/CHANGES.176
r453 r457 13 13 14 14 ========================================================================== 15 16 Version 1.7.6 patchlevel 16 April 28, 2004 17 18 Fixes: 19 * PCRE updated to 4.5 [SW] 20 15 21 16 22 Version 1.7.6 patchlevel 15 January 25, 2004 1.7.7/CHANGES.177
r455 r457 18 18 19 19 ========================================================================== 20 21 Version 1.7.7 patchlevel 29 April 28, 2004 22 23 Major 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. 36 Commands: 37 * @nsemit, @nsoemit, @nslemit, @nsremit, @nszemit and function forms 38 of the same. Suggested by Cloud@M*U*S*H. 39 Functions: 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. 48 Minor 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. 68 Fixes: 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 20 90 21 91 Version 1.7.7 patchlevel 28 March 12, 2004 1.7.7/Configure
r453 r457 3930 3930 EOCP 3931 3931 3932 if $cc $ccflags $ldflags -o test_fpsetround test_fpsetround.c $libs >/dev/null 2>&1 ; then 3932 if ($cc $ccflags $ldflags -o test_fpsetround test_fpsetround.c $libs \ 3933 && ./test_fpsetround) >/dev/null 2>&1 ; then 3933 3934 echo 'fpsetround() is around (and found).' >&4 3934 3935 val="$define" … … 3952 3953 EOCP 3953 3954 3954 if $cc $ccflags $ldflags -o test_fpsetmask test_fpsetmask.c $libs >/dev/null 2>&1 ; then 3955 if ($cc $ccflags $ldflags -o test_fpsetmask test_fpsetmask.c $libs && \ 3956 ./test_fpsetmask) >/dev/null 2>&1 ; then 3955 3957 echo 'fpsetmask() is up to the task.' >&4 3956 3958 val="$define" … … 5615 5617 $cat >test_cdecl.c <<'EOCP' 5616 5618 #include <stdio.h> 5617 int __cdecl main(int argc, char **argv) { 5619 #include <stdlib.h> 5620 #define WIN32_CDECL __cdecl 5621 5622 int WIN32_CDCEL main(int argc, char **argv) { 5618 5623 exit(0); 5619 5624 } 5620 5625 EOCP 5621 5626 5622 if $cc $ccflags -o test_cdecl test_cdecl.c>/dev/null 2>&1 ; then5627 if ($cc $ccflags -o test_cdecl test_cdecl.c && ./test_cdecl) >/dev/null 2>&1 ; then 5623 5628 cdecl='__cdecl' 5624 5629 echo 'Your compiler likes __cdecl as a keyword.' >&4 1.7.7/MANIFEST
r455 r457 51 51 src/Makefile.SH 52 52 src/access.c 53 src/announce.c54 53 src/atr_tab.c 55 54 src/attrib.c … … 165 164 game/README 166 165 game/access.README 167 game/alias.cnf168 166 game/getdate.README 169 167 game/getdate.template 170 game/restrict.cnf171 168 game/mushcnf.dst 172 game/names.cnf 169 game/aliascnf.dst 170 game/restrictcnf.dst 171 game/namescnf.dst 173 172 game/restart 174 173 game/data/README 1.7.7/Makefile.SH
r455 r457 165 165 -@$perl utils/customize.pl 166 166 167 update-conf: game/mushcnf.dst 167 update-conf: game/mushcnf.dst game/aliascnf.dst game/restrictcnf.dst game/namescnf.dst 168 168 -@$touch game/mushcnf.dst 169 169 -@$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 176 game/alias.cnf: game/aliascnf.dst 177 -@$touch game/aliascnf.dst 178 -@$perl utils/update-cnf.pl game/alias.cnf game/aliascnf.dst 179 180 game/restrict.cnf: game/restrictcnf.dst 181 -@$touch game/restrictcnf.dst 182 -@$perl utils/update-cnf.pl game/restrict.cnf game/restrictcnf.dst 183 184 game/names.cnf: game/namescnf.dst 185 if [ ! -f game/names.cnf ]; then \ 186 \$(CP) game/namescnf.dst game/names.cnf \ 187 fi 170 188 171 189 game/mush.cnf: game/mushcnf.dst … … 285 303 286 304 !NO!SUBS! 287 chmod 755Makefile305 chmod 644 Makefile 1.7.7/Patchlevel
r455 r457 1 1 Do not edit this file. It is maintained by the official PennMUSH patches. 2 This is PennMUSH 1.7.7p2 82 This is PennMUSH 1.7.7p29 1.7.7/game/access.README
r335 r457 103 103 104 104 105 2. Allow specific sites and no others 105 2. 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. 106 109 107 110 *.berkeley.edu -2 default 111 128.32.* -2 default 108 112 * -2 none 109 113 110 People may connect from .berkeley.edu sites only.114 People may connect from .berkeley.edu (128.32.) sites only. 111 115 112 116 … … 160 164 161 165 username@localhost 1 connect 162 127.0.0.1 1 connect166 username@127.0.0.1 1 connect 163 167 * -2 !god 164 168 @sitelock … … 175 179 176 180 localhost.berkeley.edu -2 default 181 127.0.0.1 -2 default 177 182 *.twink.edu -2 !create register suspect 178 183 @sitelock 1.7.7/game/mushcnf.dst
r455 r457 163 163 # connections, leave this set to 0. 164 164 ssl_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. 170 ssl_ip_addr 165 171 166 172 # The file containing the MUSH server's certificate and private key, … … 641 647 wall_prefix Announcement: 642 648 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. 655 announce_connects yes 656 643 657 # can players have names with spaces in them? 644 658 player_name_spaces no 1.7.7/game/txt/hlp/penncmd.hlp
r455 r457 57 57 @find @force @function @gedit @grep 58 58 @halt @lemit @listmotd @mail @map 59 @notify @nspemit @oemit @password @pemit 59 @notify @nsemit @nslemit @nsoemit @nspemit 60 @nsremit @nszemit @oemit @password @pemit 60 61 @ps @remit @restart @scan @search 61 62 @select @stats @sweep @switch @teleport … … 1344 1345 @flag/letter <flag name>[=<letter>] 1345 1346 @flag/restrict <flag name>=[<setperms>], [<unsetperms>] 1347 @flag/type <flag name>=<type(s)> 1346 1348 @flag/enable <flag name> 1347 1349 @flag/disable <flagname> … … 1359 1361 /letter changes or removes a single-letter alias for an existing flag. 1360 1362 /restrict changes flag permissions (see help @flag2) 1363 /type changes flag type(s) (see help @flag2) 1361 1364 /delete deletes a flag completely, removing it from all objects 1362 1365 in the database and the removing it permanently from the … … 1727 1730 /attribs : Alias for @config/attribs, shows all standard attribs 1728 1731 /flags : Alias for @flag/list, shows all flags 1732 /powers : Alias for @powers/list, shows all powers 1729 1733 /lowercase : Show whatever you're showing in lowercase, rather than upper. 1730 1734 & @listmotd … … 2153 2157 See also: @password 2154 2158 & @notify 2155 @notify[/any][/all] <object>[/<attribute>][=< count>]2159 @notify[/any][/all] <object>[/<attribute>][=<number>] 2156 2160 2157 2161 This command notifies a semaphore, allowing commands queued for … … 2159 2163 2160 2164 If the /any switch is given, then all semaphores associated with 2161 <object> are @notified. Otherwise, theonly the specified semaphore2165 <object> are @notified. Otherwise, only the specified semaphore 2162 2166 attribute (or SEMAPHORE if no attribute is specified) is @notified. 2163 2167 … … 2177 2181 See also: SEMAPHORES, @drain, @wait 2178 2182 & @nspemit 2183 & @nsemit 2184 & @nslemit 2185 & @nsremit 2186 & @nszemit 2187 & @nsoemit 2188 @nsemit[/<switch>] [<message>] 2189 @nslemit[/<switch>] <message> 2179 2190 @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 2200 See also: @emit, @lemit, @pemit, @remit, @zemit, nsemit(), nslemit(), 2201 nspemit(), nsremit(), nszemit() 2187 2202 & @odeath 2188 2203 @odeath <player> [=<message>] 1.7.7/game/txt/hlp/pennconf.hlp
r451 r457 82 82 rwall_prefix=<string>: Prefix for @rwall messages. 83 83 wall_prefix=<string>: Prefix for @wall messages. 84 announce_connects=<boolean>: Should (dis)connects be announced to 85 non-MONITOR players and to channels? 84 86 chat_strip_quote=<boolean>: Does +chan "foo strip the "? 85 87 newline_one_char=<boolean>: Is strlen(%r) equal to 1? 1.7.7/game/txt/hlp/pennfunc.hlp
r455 r457 104 104 to an object or objects. 105 105 106 cemit() emit() lemit() nspemit() oemit() 106 cemit() emit() lemit() nsemit() nslemit() 107 nsoemit() nspemit() nsremit() nszemit() oemit() 107 108 pemit() remit() zemit() 108 109 & Connection functions … … 112 113 cmds() conn() doing() height() hostname() 113 114 hidden() idle() ipaddr() lports() lwho() 114 mwho() ports() pueblo() ssl() terminfo()115 width()115 mwho() ports() pueblo() recv() sent() 116 ssl() terminfo() width() 116 117 & Dbref functions 117 118 Dbref functions return a dbref or list of dbrefs related to some value … … 334 335 r baz 335 336 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 336 380 & ALLOF() 337 381 allof(<expr1>[, ...,<exprN>], <osep>) … … 657 701 658 702 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 659 723 & COMP() 660 724 comp(<value1>, <value2>[, <type>]) … … 1048 1112 & EMIT() 1049 1113 emit(<message>) 1114 nsemit(<message>) 1050 1115 1051 1116 Sends a message to the room, as per @emit. 1117 1118 nsemit() is a wizard-only variation that works like @nsemit. 1052 1119 1053 1120 & ENCRYPT() … … 1173 1240 > say [filter(test/is_odd, 1 2 3 4 5 6)] 1174 1241 You say, "1 3 5" 1242 1243 See also: anonymous attributes 1175 1244 & FINDABLE() 1176 1245 findable(<object>,<victim>) … … 1293 1362 > say [fold(test/add_nums,1 2 3 4 5)] 1294 1363 You say, "15" 1364 1365 See also: anonymous attributes 1295 1366 & FOLDERSTATS() 1296 1367 folderstats() … … 1342 1413 > say [foreach(is_alphanum,jt1o+)] 1343 1414 You say, "1 1 1 1 0 " 1415 1416 See also: anonymous attributes 1344 1417 1345 1418 & ACCNAME() … … 1858 1931 & LEMIT() 1859 1932 lemit(<message>) 1933 nslemit(<message>) 1860 1934 1861 1935 Sends a message to the outermost room, as per @lemit. 1936 1937 nslemit() is a wizard-only variation that works like @nslemit. 1862 1938 1863 1939 & LEXITS() … … 2247 2323 > say [map(times_two,1;2;3;4;5,;)] 2248 2324 You say, "2;4;6;8;10" 2249 2325 2326 See also: anonymous attributes 2250 2327 & MATCH() 2251 2328 match(<list>, <pattern>[, <delimiter>]) … … 2360 2437 > say [mix(add_nums, 1:1:1, 2:2:2, 3:3:3, :)] 2361 2438 You say, "6:6:6" 2362 2439 2440 See also: anonymous attributes 2363 2441 & MOD() 2364 2442 & MODULO() … … 2465 2543 > say [munge(sort,iter(v(faction_members),conn(##)),v(faction_members))] 2466 2544 You say, "#12 #234 #3" 2545 2546 See also: anonymous attributes 2467 2547 & MWHO() 2468 2548 mwho() … … 2543 2623 2544 2624 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 2555 2626 & NUM() 2556 2627 num(<object>) … … 2586 2657 for the old object. 2587 2658 2659 The substitution %: returns the object id of the enacting object. 2660 2588 2661 & OBJMEM() 2589 2662 objmem(<object>) … … 2596 2669 & OEMIT() 2597 2670 oemit([<room>/]<object> [<object> ...],<message>) 2671 nsoemit([<room>/]<object> [<object> ...],<message>) 2598 2672 2599 2673 Sends <message> to all objects in <room> (default is the location 2600 2674 of <object>(s)) except <object>(s), as per @oemit. 2675 2676 nsoemit() is a wizard-only variation that works like @nsoemit. 2601 2677 2602 2678 & OPEN() … … 2659 2735 & PEMIT() 2660 2736 pemit(<object list>,<message>) 2737 nspemit(<object list>,<message>) 2661 2738 2662 2739 This function will send each object on the list a message, as per 2663 2740 the @pemit/list command. It returns nothing. It respects page-locks and 2664 2741 HAVEN flags on players. 2742 2743 nspemit() is a wizard-only variation that works like @nspemit/list. 2744 2665 2745 & PI() 2666 2746 pi() … … 2821 2901 register. Under regmatchi, case of the substring may be modified. 2822 2902 2823 For example, i f <string> is 'cookies=30', and <regexp> is '(.+)=([0-9]*)'2824 ( parsed; note that escaping may be necessary), then the 0th substring2903 For example, in regmatch( cookies=30 , (.+)=(\[0-9\]*) ) 2904 (note use of escaping for MUSH parser), then the 0th substring 2825 2905 matched is 'cookies=30', the 1st substring is 'cookies', and the 2nd 2826 2906 substring is '30'. If <register list> is '0 3 5', then %q0 will become … … 2834 2914 & REMIT() 2835 2915 remit(<object>, <message>) 2916 nsremit(<object>, <message>) 2836 2917 2837 2918 Sends a message to the contents of <object>, as per @remit. 2838 2919 2920 nsremit() is a wizard-only variation that works like @nsremit. 2839 2921 & REMOVE() 2840 2922 remove(<list>,<word>[,<delimiter>]) … … 2986 3068 & SCAN() 2987 3069 scan(<object>, <command>) 3070 scan(<command>) 2988 3071 2989 3072 This function works like @scan, and returns a space-separated list of … … 2991 3074 <command> were run by <object>. You must control <object> or be 2992 3075 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. 2993 3079 2994 3080 & SCRAMBLE() … … 3214 3300 this limit is exceeded, the function will fail _silently_. List and 3215 3301 function sizes should be kept reasonable. 3302 3303 See also: anonymous attributes 3216 3304 & SOUNDEX() 3217 3305 soundex(<word>) … … 3358 3446 4 - 5 - 3359 3447 3360 See also: map(), iter() 3448 See also: map(), iter(), anonymous attributes 3361 3449 & STDDEV() 3362 3450 stddev(<number>,...) … … 3913 4001 playername Test for a valid player name that can be set with 3914 4002 @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 3915 4006 3916 4007 > think valid(name,Foobar) … … 4107 4198 & ZEMIT() 4108 4199 zemit(<zone>, <message>) 4200 nszemit(<zone>, <message>) 4109 4201 4110 4202 Sends a message to everything zoned to <zone>, as per @zemit. 4111 4203 Costs apply. 4204 4205 nszemit() is a wizard-only variation that works like @nszemit. 4112 4206 4113 4207 & ZFUN() 1.7.7/game/txt/hlp/pennmail.hlp
r355 r457 126 126 127 127 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. 130 129 131 130 The /debug switch does sanity checking on the mail database, and may only 1.7.7/game/txt/hlp/penntop.hlp
r455 r457 18 18 19 19 If there are any errors in the help text, please notify a wizard 20 in the game, or send mail to dunemush@pennmush.org. 20 in the game, or send mail to dunemush@pennmush.org, who maintains 21 PennMUSH (and its distributed help files) but probably has no relation 22 to this MUSH in particular. 21 23 22 24 & newbie … … 77 79 Help is available on the following topics: 78 80 79 ACTION LISTS ANCESTORS A TTRIB-OWNERSHIP80 ATTRIB UTES BEING KILLED BOOLEAN VALUES81 CHAT CLIENTS CONTROL82 CO PYRIGHT COSTS CREDITS83 DBREFS DROP-TO ENACTOR84 E VALUATION EXECUTOR EXITS85 FAILURE FLAGS FUNCTIONS86 GENDER GLOBALS HERE87 H OMES INTERIORS LINKING88 LI STENING LISTS LOOPING89 MASTER ROOM MATCHING81 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 90 92 91 93 (continued in help topics2) … … 161 163 162 164 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() 164 225 & ATTRIB-OWNERSHIP 165 226 ATTRIBUTE OWNERSHIP 166 227 167 The first person who createsan attribute on an object is the owner228 The latest person to set an attribute on an object is the owner 168 229 of that attribute. If you lock an attribute, using the @atrlock command, 169 230 only the person who owns the attribute will be able to alter the … … 460 521 & %N 461 522 & %~ 523 & %: 462 524 & ENACTOR 463 525 The enactor is the object that does something (enacts something :). … … 471 533 %n = the enactor's name, first letter as-is 472 534 %~ = the enactor's accented name 473 %: = the enactor's unique identifier, equivalent to %#:[convtime(ctime(%#))]535 %: = the enactor's unique identifier, like objid(%#) 474 536 475 537 If, for example, you have an @osucc on an object that includes the … … 1505 1567 %n = the ENACTOR's name, first letter as-is 1506 1568 %~ = the ENACTOR's accented name 1507 1569 %: = the enactor's unique identifier, like objid(%#) 1570 1508 1571 (continued in help SUBSTITUTIONS2) 1509 1572 & SUBSTITUTIONS2 1.7.7/game/txt/hlp/pennv176.hlp
r453 r457 1 & 1.7.6p16 2 Version 1.7.6 patchlevel 16 April 28, 2004 3 4 Fixes: 5 * PCRE updated to 4.5 [SW] 6 7 1 8 & 1.7.6p15 2 9 Version 1.7.6 patchlevel 15 January 25, 2004 1.7.7/game/txt/hlp/pennv177.hlp
r455 r457 1 & 1.7.7p2 81 & 1.7.7p29 2 2 & changes 3 3 This is a list of changes in this patchlevel which are probably of … … 12 12 be read in 'help patchlevels'. 13 13 14 Version 1.7.7 patchlevel 29 April 28, 2004 15 16 Major 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. 29 Commands: 30 * @nsemit, @nsoemit, @nslemit, @nsremit, @nszemit and function forms 31 of the same. Suggested by Cloud@M*U*S*H. 32 Functions: 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. 41 Minor 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. 61 Fixes: 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
