This is patch11 to PennMUSH 1.7.5. After applying this patch, you will have version 1.7.5p11 To apply this patch, save it to a file in your top-level MUSH directory, and do the following: patch -p1 < 1.7.5-patch11 make install If you use GNU patch 2.2, you probably want the above to be 'patch -b -p1', not just 'patch -p1'. Unix (or cygwin) users need not worry about failed hunks in src/switchinc.c, hdrs/switches.h, hdrs/cmds.h, or hdrs/funs.h. These files are automatically rebuilt on compile. Then @shutdown and restart your MUSH. - Alan/Javelin In this patch: Config: * New mush.cnf option only_ascii_in_names (defaults to yes) prohibits the use of extended characters in names. Games that are running in non-English locales will probably want to set this to no instead. Suggested by Philip Mak. [SW] Commands: * Added @hook/before and @hook/after [SW,3] Locks: * You can now use power^ and channel^ in locks to test if the enactor has a given power or is on a given channel. Patch by Vadiv@M*U*S*H. * @lock/dropto, if set on a room, can prevent objects from being affected by the room's drop-to. Inspired by Oriens@Alexandria. Functions: * The sha1() function computes the SHA-1 cryptographic hash of a string. * A new nosidefx function restriction to allow disabling the side-effect version of a function while still enabling the informational version. For things like name() and parent(). [SW] * @function's report includes more function restrictions in the flags field. [SW] Minor changes: * Modularization of code for itemizing lists by Vadiv@M*U*S*H. * If there's no connect.html and you're on an html connection, connect.txt is now better formatted when sent to you. Same for other cached text files. Suggested by BladedThoth@M*U*S*H. * CRYPT_SYSTEM 1 now behaves like CRYPT_SYSTEM 3 (replacing system-crypt passwords with SHS passwords). Suggested by Vadiv@M*U*S*H. * flag_table is no longer referenced anywhere except when it is used to seed the ptab_flag at startup. A stub "flag_add" function has been added to make life easier for hardcoders. Suggested by Gepht. Fixes: * sig.c was broken on systems without sigprocmask. Reported by Arithon@Oracle * Bug with paging disconnected players and @away fixed. Reported by Vadiv@M*U*S*H. * Bashisms that crept into utils/mkcmds.sh has been replaced by more portable alternatives based on Configure's results. Reported by Jason Newquist. * Trigonometric functions were broken for non-radian degree types. Fixed up. * @decomp / didn't properly use 'here' as the name of the object in its output. Reported by Oriens@Alexandria. * Wizards can now modify any lock on anything but God. Reported by Brian Favela. * ex/mortal and ex now produce identical output when a mortal examines an object owned by someone else. Reported by Philip Mak. * We do a little better about trying to close html and ansi tags in all conditions. Bugs reported by BladedThoth @ M*U*S*H. * whisper/@pemit to a puppet should be relayed to the owner, even if the owner is in the same room. Discovered thanks to MUSH sound test suite designed by Trispis@M*U*S*H. * The --longest switch in game/txt/Makefile was broken. Report by Nymeria@M*U*S*H * Help fixes by Noltar@Korongil and Intrevis@M*U*S*H * The M_READ extmail bit is now renamed M_MSGREAD, as M_READ conflicts with an included define on Solaris. Report by Jason Newquist. * Setting flags using single characters was not well documented, and didn't respect the character case. Reported by Intrevis@M*U*S*H. * @chown by a Wizard attempted to debit the Wizard's money, rather than that of the new owner of the object, which violated expected conservation of money. Reported by Peter Bengtson. * Several bugs in wrap()'s output fixed. Reported by Balerion@M*U*S*H. [SW] Prereq: 1.7.5p10 *** 1_7_5.313/Patchlevel Thu, 19 Sep 2002 22:15:07 -0500 dunemush (pennmush/5_Patchlevel 1.17.1.11 600) --- 1_7_5.363(w)/Patchlevel Thu, 31 Oct 2002 14:49:51 -0600 dunemush (pennmush/5_Patchlevel 1.17.1.12 600) *************** *** 1,2 **** Do not edit this file. It is maintained by the official PennMUSH patches. ! This is PennMUSH 1.7.5p10 --- 1,2 ---- Do not edit this file. It is maintained by the official PennMUSH patches. ! This is PennMUSH 1.7.5p11 *** 1_7_5.313/README Fri, 13 Sep 2002 12:03:52 -0500 dunemush (pennmush/4_README 1.11 600) --- 1_7_5.363(w)/README Tue, 01 Oct 2002 22:54:31 -0500 dunemush (pennmush/4_README 1.12 600) *************** *** 147,153 **** and then skip down to step #6 below b. Compile with the Cygwin unix emulation tools (http://www.cygwin.com) In addition to the base cygwin stuff, you'll want the following packages: ! binutils, gcc, make, patch, perl These are also recommended: gettext, gettext-devel, indent, vim or emacs It is recommended that you install the tools under C:\CYGWIN and --- 147,153 ---- and then skip down to step #6 below b. Compile with the Cygwin unix emulation tools (http://www.cygwin.com) In addition to the base cygwin stuff, you'll want the following packages: ! binutils, gcc, make, patch, perl, exim-4.10-1 source code These are also recommended: gettext, gettext-devel, indent, vim or emacs It is recommended that you install the tools under C:\CYGWIN and *************** *** 194,210 **** You should not need to change any of the other header files. ! 4. Do a "make install". This will build all the necessary files, and set up some symbolic links for the restart script. You will probably receive a few compilation warnings, which can generally be ignored. ! 5. If you plan to run multiple MUSHes, you may want to do a "make customize" which will run a script to help set up a separate customized game subdirectory for each MUSH (run it once per MUSH you plan to run). Files in these subdirectories will already be customized in many ways, so what follows may be slightly different. :) ! 6. Read game/README and follow those instructions. On cygwin systems, you will likely have to edit the game/restart script and explicitly set GAMEDIR (to /usr/src/pennmush/game) --- 194,213 ---- You should not need to change any of the other header files. ! 4. On cygwin systems, add to the CCFLAGS in the Makefile: ! -I/usr/src/exim-4.10-1/minires ! ! 5. Do a "make install". This will build all the necessary files, and set up some symbolic links for the restart script. You will probably receive a few compilation warnings, which can generally be ignored. ! 6. If you plan to run multiple MUSHes, you may want to do a "make customize" which will run a script to help set up a separate customized game subdirectory for each MUSH (run it once per MUSH you plan to run). Files in these subdirectories will already be customized in many ways, so what follows may be slightly different. :) ! 7. Read game/README and follow those instructions. On cygwin systems, you will likely have to edit the game/restart script and explicitly set GAMEDIR (to /usr/src/pennmush/game) *************** *** 226,232 **** Linux FreeBSD AT&T SVR4 ! Windows 95/NT OS/2 There's no real reason why PennMUSH shouldn't compile on any 32-bit or --- 229,235 ---- Linux FreeBSD AT&T SVR4 ! Windows 95/NT cygwin and MSVC++ OS/2 There's no real reason why PennMUSH shouldn't compile on any 32-bit or *** 1_7_5.313/CHANGES Thu, 19 Sep 2002 22:15:07 -0500 dunemush (pennmush/g/7_CHANGES 1.27.1.86 600) --- 1_7_5.363(w)/CHANGES Thu, 31 Oct 2002 14:49:48 -0600 dunemush (pennmush/g/7_CHANGES 1.27.1.116 600) *************** *** 18,23 **** --- 18,90 ---- ========================================================================== + Version 1.7.5 patchlevel 11 October 31, 2002 + + Config: + * New mush.cnf option only_ascii_in_names (defaults to yes) prohibits + the use of extended characters in names. Games that are running + in non-English locales will probably want to set this to no instead. + Suggested by Philip Mak. [SW] + Commands: + * Added @hook/before and @hook/after [SW,3] + Locks: + * You can now use power^ and channel^ in locks + to test if the enactor has a given power or is on a given channel. + Patch by Vadiv@M*U*S*H. + * @lock/dropto, if set on a room, can prevent objects from being + affected by the room's drop-to. Inspired by Oriens@Alexandria. + Functions: + * The sha1() function computes the SHA-1 cryptographic hash of a string. + * A new nosidefx function restriction to allow disabling the side-effect + version of a function while still enabling the informational version. + For things like name() and parent(). [SW] + * @function's report includes more function restrictions in the flags + field. [SW] + Minor changes: + * Modularization of code for itemizing lists by Vadiv@M*U*S*H. + * If there's no connect.html and you're on an html connection, + connect.txt is now better formatted when sent to you. Same for + other cached text files. Suggested by BladedThoth@M*U*S*H. + * CRYPT_SYSTEM 1 now behaves like CRYPT_SYSTEM 3 (replacing + system-crypt passwords with SHS passwords). Suggested by Vadiv@M*U*S*H. + * flag_table is no longer referenced anywhere except when it is used + to seed the ptab_flag at startup. A stub "flag_add" function has + been added to make life easier for hardcoders. Suggested by + Gepht. + Fixes: + * sig.c was broken on systems without sigprocmask. Reported by + Arithon@Oracle + * Bug with paging disconnected players and @away fixed. + Reported by Vadiv@M*U*S*H. + * Bashisms that crept into utils/mkcmds.sh has been replaced by + more portable alternatives based on Configure's results. + Reported by Jason Newquist. + * Trigonometric functions were broken for non-radian degree types. + Fixed up. + * @decomp / didn't properly use 'here' as the name + of the object in its output. Reported by Oriens@Alexandria. + * Wizards can now modify any lock on anything but God. Reported by + Brian Favela. + * ex/mortal and ex now produce identical output when a mortal + examines an object owned by someone else. Reported by Philip Mak. + * We do a little better about trying to close html and ansi tags + in all conditions. Bugs reported by BladedThoth @ M*U*S*H. + * whisper/@pemit to a puppet should be relayed to the owner, even if the + owner is in the same room. Discovered thanks to MUSH sound test + suite designed by Trispis@M*U*S*H. + * The --longest switch in game/txt/Makefile was broken. Report by + Nymeria@M*U*S*H + * Help fixes by Noltar@Korongil and Intrevis@M*U*S*H + * The M_READ extmail bit is now renamed M_MSGREAD, as M_READ conflicts + with an included define on Solaris. Report by Jason Newquist. + * Setting flags using single characters was not well documented, and + didn't respect the character case. Reported by Intrevis@M*U*S*H. + * @chown by a Wizard attempted to debit the Wizard's money, rather than + that of the new owner of the object, which violated expected conservation + of money. Reported by Peter Bengtson. + * Several bugs in wrap()'s output fixed. Reported by Balerion@M*U*S*H. [SW] + + Version 1.7.5 patchlevel 10 September 19, 2002 Major Changes: *************** *** 42,48 **** * Added atan2(). [SW] * dist2d() and dist3d() can take floating-point numbers. [SW] * Other small cleanups in the math functions. [SW] ! @Mail: * The MAIL_SUBJECTS option has been removed. @mail now includes subjects mandatorily. Suggested by Vadiv@M*U*S*H. Minor Changes: --- 109,115 ---- * Added atan2(). [SW] * dist2d() and dist3d() can take floating-point numbers. [SW] * Other small cleanups in the math functions. [SW] ! Mail: * The MAIL_SUBJECTS option has been removed. @mail now includes subjects mandatorily. Suggested by Vadiv@M*U*S*H. Minor Changes: *************** *** 78,83 **** --- 145,151 ---- * The whisper-pose message is now Player senses: , with no quotation marks added. This matches all other pose-type messages in the server. Suggested by Philip Mak. + * Only escape codes described in the help are allowed in timefmt() [SW] Fixes: * Archaic help reference to FORCE_WHITE removed. Noted by Oriens@Alexandria. * Help fixes by Cerekk@bDv TrekMUSH, Julian@M*U*S*H, Letters@M*U*S*H, *** 1_7_5.313/game/txt/hlp/pennvers.hlp Thu, 19 Sep 2002 22:15:07 -0500 dunemush (pennmush/12_pennvers.h 1.169.1.42.1.3.1.2.2.2.1.1.1.3.1.1.1.5.1.4.1.1.1.1.1.1.1.1.1.5.1.1.1.3.1.1.1.3.1.1.1.14 600) --- 1_7_5.363(w)/game/txt/hlp/pennvers.hlp Thu, 31 Oct 2002 14:50:01 -0600 dunemush (pennmush/12_pennvers.h 1.169.1.42.1.3.1.2.2.2.1.1.1.3.1.1.1.5.1.4.1.1.1.1.1.1.1.1.1.5.1.1.1.3.1.1.1.3.1.1.1.37 600) *************** *** 1,5 **** & changes ! & 1.7.5p10 This is a list of changes in this patchlevel which are probably of interest to players. More information about new commands and functions can probably be gotten via 'help '. 'help credits' --- 1,5 ---- & changes ! & 1.7.5p11 This is a list of changes in this patchlevel which are probably of interest to players. More information about new commands and functions can probably be gotten via 'help '. 'help credits' *************** *** 11,16 **** --- 11,84 ---- A list of the patchlevels associated with each release can be read in 'help patchlevels'. + Version 1.7.5 patchlevel 11 October 31, 2002 + + Config: + * New mush.cnf option only_ascii_in_names (defaults to yes) prohibits + the use of extended characters in names. Games that are running + in non-English locales will probably want to set this to no instead. + Suggested by Philip Mak. [SW] + Commands: + * Added @hook/before and @hook/after [SW,3] + Locks: + * You can now use power^ and channel^ in locks + to test if the enactor has a given power or is on a given channel. + Patch by Vadiv@M*U*S*H. + * @lock/dropto, if set on a room, can prevent objects from being + affected by the room's drop-to. Inspired by Oriens@Alexandria. + Functions: + * The sha1() function computes the SHA-1 cryptographic hash of a string. + * A new nosidefx function restriction to allow disabling the side-effect + version of a function while still enabling the informational version. + For things like name() and parent(). [SW] + * @function's report includes more function restrictions in the flags + field. [SW] + Minor changes: + * Modularization of code for itemizing lists by Vadiv@M*U*S*H. + * If there's no connect.html and you're on an html connection, + connect.txt is now better formatted when sent to you. Same for + other cached text files. Suggested by BladedThoth@M*U*S*H. + * CRYPT_SYSTEM 1 now behaves like CRYPT_SYSTEM 3 (replacing + system-crypt passwords with SHS passwords). Suggested by Vadiv@M*U*S*H. + * flag_table is no longer referenced anywhere except when it is used + to seed the ptab_flag at startup. A stub "flag_add" function has + been added to make life easier for hardcoders. Suggested by + Gepht. + Fixes: + * sig.c was broken on systems without sigprocmask. Reported by + Arithon@Oracle + * Bug with paging disconnected players and @away fixed. + Reported by Vadiv@M*U*S*H. + * Bashisms that crept into utils/mkcmds.sh has been replaced by + more portable alternatives based on Configure's results. + Reported by Jason Newquist. + * Trigonometric functions were broken for non-radian degree types. + Fixed up. + * @decomp / didn't properly use 'here' as the name + of the object in its output. Reported by Oriens@Alexandria. + * Wizards can now modify any lock on anything but God. Reported by + Brian Favela. + * ex/mortal and ex now produce identical output when a mortal + examines an object owned by someone else. Reported by Philip Mak. + * We do a little better about trying to close html and ansi tags + in all conditions. Bugs reported by BladedThoth @ M*U*S*H. + * whisper/@pemit to a puppet should be relayed to the owner, even if the + owner is in the same room. Discovered thanks to MUSH sound test + suite designed by Trispis@M*U*S*H. + * The --longest switch in game/txt/Makefile was broken. Report by + Nymeria@M*U*S*H + * Help fixes by Noltar@Korongil and Intrevis@M*U*S*H + * The M_READ extmail bit is now renamed M_MSGREAD, as M_READ conflicts + with an included define on Solaris. Report by Jason Newquist. + * Setting flags using single characters was not well documented, and + didn't respect the character case. Reported by Intrevis@M*U*S*H. + * @chown by a Wizard attempted to debit the Wizard's money, rather than + that of the new owner of the object, which violated expected conservation + of money. Reported by Peter Bengtson. + * Several bugs in wrap()'s output fixed. Reported by Balerion@M*U*S*H. [SW] + + + & 1.7.5p10 Version 1.7.5 patchlevel 10 September 19, 2002 Major Changes: *************** *** 35,41 **** * Added atan2(). [SW] * dist2d() and dist3d() can take floating-point numbers. [SW] * Other small cleanups in the math functions. [SW] ! @Mail: * The MAIL_SUBJECTS option has been removed. @mail now includes subjects mandatorily. Suggested by Vadiv@M*U*S*H. Minor Changes: --- 103,109 ---- * Added atan2(). [SW] * dist2d() and dist3d() can take floating-point numbers. [SW] * Other small cleanups in the math functions. [SW] ! Mail: * The MAIL_SUBJECTS option has been removed. @mail now includes subjects mandatorily. Suggested by Vadiv@M*U*S*H. Minor Changes: *************** *** 71,76 **** --- 139,145 ---- * The whisper-pose message is now Player senses: , with no quotation marks added. This matches all other pose-type messages in the server. Suggested by Philip Mak. + * Only escape codes described in the help are allowed in timefmt() [SW] Fixes: * Archaic help reference to FORCE_WHITE removed. Noted by Oriens@Alexandria. * Help fixes by Cerekk@bDv TrekMUSH, Julian@M*U*S*H, Letters@M*U*S*H, *************** *** 5551,5891 **** TinyMUSH 2.0's. The option to examine public attributes by default is configurable. - & 1.7.5p10 - Version 1.7.5 patchlevel 10 July 16, 2002 - - Fixes: - * enter no longer returns Permission denied, but - "I can't see that here", as you can only enter things. - Suggested by Philip Mak. - * A one-time, one-pointer memory leak in plyrlist.c fixed - by Vadiv@M*U*S*H. - - - & 1.7.5p9 - Version 1.7.5 patchlevel 9 July 16, 2002 - - Minor Changes: - * /noeval switch added to @wall/@rwall/@wizwall and variants. - Suggested by Philip Mak. - Fixes: - * Added a missing space in the @function report for softcoded - @functions. [SW] - * MUX-style @function foo=obj/attr works right. [SW] - * Cleaned up some multiple includes of the same header files. [SW] - * Lots of cleanup of old _() macros and similar by Vadiv@M*U*S*H. - * Added help for @stats/table. Suggested by Intrevis@M*U*S*H. - * Fixes to csrimalloc #ifdefs that broke in last patchlevel. [SW] - * A typo that could crash @function on certain operating systems - has been fixed. Report by Jeff Heinen. - * Improved switch() help. [SW] - * Changes in the way switchinc.c is generated, to reduce the number - of patches that attempt to patch it due to indentation changes. [SW] - - & 1.7.5p8 - Version 1.7.5 patchlevel 8 June 26, 2002 - - Minor Changes: - * Added @nspemit and nspemit(). Wizard-only versions of @pemit and - pemit() that don't print nospoof information. Suggested by many people, - most recently Mike Griffiths and Nymeria@M*U*S*H. [SW] - * Help updates. [SW] - * Force the pipes to compression program for database reads and saves to be - block-buffered. [SW] - * @function name=obj/attrib now works, as well as - @function name=obj,attrib [TAP] - * The AF_PREFIXMATCH flag is no longer shown on attributes it's set - on when you examine them. - Fixes: - * A bunch of internal code cleanup, especially around casts. [SW] - * The disconnected room check is skipped on GOING rooms. Suggested - by Philip Mak. - * The dbck check for nameless rooms was only checking disconnected - rooms; now it checks all rooms. - * hasflag() did not work with single-character flag abbreviations. - Report by Mystery8. - * The variable named 'template' in src/strutil.c has been renamed - to avoid clashes with the C++ reserved word. Suggested by Mac@M*U*S*H. - * Improvement to help @filter. Suggested by Philip Mak. [SW] - * Files in the patches directory ending in ~ are ignored - when patches.h is rebuilt. [SW] - * Removed a // comment from strutil.c, as we're still - just following the c89 standard, not c99. Report by - Vadiv@M*U*S*H. [SW] - * make indent now indents the .dst files before the .c ones. - Fixes some spurious warnings from later makes. Suggested by - Vadiv@M*U*S*H. [SW] - * Code cleanup, mostly tprintf() and unneeded header file - checking elimination. [SW] - * Since a Windows header #defines OPAQUE, which conflicts with a - #define for the mush flag of the same name, rename - our #define rather than #undefining the Windows one. [SW] - * Fixes from 1.7.4p19 - - - & 1.7.5p7 - Version 1.7.5 patchlevel 7 May 14, 2002 - - Utilities: - * 'make globalinstall' will install executables, scripts, and - a game/ directory structure in a global location (/usr/libexec/pennmush - by default). Facilitates rpm builds. By Vadiv@M*U*S*H. - * The utils/ln-dir.sh script can be used to clone a globalinstall'd - pennmush for an individual MUSH/user. In combination, these two - are a replacement for 'make customize', especially for mud hosters. - By Vadiv@M*U*S*H. - * You can now configure options.h settings from the command line - using: make DEFINE="OPTION OPTION=value" UNDEFINE="OPTION" update - This will mostly be useful for autoinstallers and packaging scripts. - Suggested by Vadiv@M*U*S*H. - Minor Changes: - * The default gcc compile flags now include some extra warnings. - * The prefix-table code now only aliases down to unique prefixes. - This prevents @w from calling @wipe (reported by Philip Mak), - and means that you'll need to use alias.cnf to get some of those - short aliases. [SW] - * Attribute lookups only do prefix-matching on attributes with the - AF_PREFIXMATCH flag. Most standard atr_tab.h attributes have this - flag, but newly added @attributes won't. Solves a problem with - inadvertant prefix-matching of @attribs reported by Sam Knowlton. - Fixes: - * Fixes from 1.7.4p18 - * @decomp/skipdefaults skips @lsets of default lock flags. - Suggested by Oriens@Alexandria. [SW] - * Typo in src/bsd.c corrected. Reported by Nymeria@M*U*S*H. - * Missing prototype in src/help.c. Reported by Nymeria@M*U*S*H. - * A bunch of linting. - * Win32 portability fixes. [EEH] - * Updated MSVC++ project files for win32. [EEH] - * @newpassword = foo would change the password of an arbitrary player. - This is now corrected. Report by Oriens@Alexandria. - - & 1.7.5p6 - Version 1.7.5 patchlevel 6 April 22, 2002 - - Config: - * New attribute_alias config directive, and some default attribute - aliases added to alias.cnf. Based on a report from Hilikiradi. - Functions: - * textfile() returns help/news/etc. entries. Suggested by Trispis@M*U*S*H. - Minor changes: - * New @warnings type lock-checks that reports problems with @locks. [SW] - * exit-unlinked checks do some sanity checks on variable exits. [SW] - * Improved error-checking in evaluation of @locks. [SW] - * No more hdrs/warnings.h file. [SW] - * New @nameaccent attribute to add accent marks to object - names in speech and things like look. Idea from Elendor. [SW] - * accent() understands a few more things. [SW] - * The accented characters->html entities table and other - lookup tables are now in a seperate file, src/tables.c, - which can be regenerated if needed by utils/gentables.c [SW] - * Improvements in caching of cached text files. [SW] - Fixes: - * Buglet in ansi display of high-bit characters fixed. Report by - Trispis@M*U*S*H. [SW] - * Improved @clock2 help by Linda Antonsson. - * Fixes from 1.7.4p17 - * A truly perverse database could cause an infinite loop on load. [TAP] - * Win32 portability fixes. [NJG, EEH] - * The notify code assumed that integers could be directly stored in - pointers. This isn't always true. [SW] - * Removed some un-used code. [SW] - * Fixed some compiler warnings and general code cleanup. [SW] - * Changed signal handlers to always use the ANSI/ISO C form (Returning - void, basically) [SW] - * A null string no longer prefix-matches anything. Report by Prot Diryn - and Cheetah@M*U*S*H. - * @sitelock/remove could remove entries it shouldn't if you remove the first - one after the '@sitelock will add sites...' line. Reported by - Ambrosia@M*U*S*H. [SW] - * The last line of the access.cnf file sometimes wouldn't get read - properly. [SW] - - - & 1.7.5p5 - Version 1.7.5 patchlevel 5 March 11, 2002 - - Commands: - * @notify and @drain now accept a new switch /any. [TAP] - * Added @remit/list. Suggested by Tareldin@M*U*S*H [SW] - Minor changes: - * We now use the Mersenne Twister pseudo-random number generator, - which is better that that available in most C libraries. - Moreover, we seed with /dev/urandom, if it's available. [SW] - * The 'T' type character (for THING) is now shown when one-character - flag lists are displayed. This is more consistent with other types, - and makes it harder to confuse #23O (#23, opaque) with #230 - (#230, no flags). Suggested by Eratl@M*U*S*H. - * @lock/use on a parent used to apply to attempts to use $commands on - a child. This is no longer necessary, given inheritable locks, - so the behavior has been changed. Parents' locks are no longer checked - when deciding if a $command inherited from the parent should be run - via a child. - * New 'call_limit' config option can limit the number of recursive - parser calls to control process stack size and avoid crashes - on systems with limited stack. Defaults to unlimited, however, because - setting this value too small breaks mushcode. Report by Bellemore - and BladedThoth @ M*U*S*H. - Fixes: - * Code cleanup - some stuff from 1.7.4 got left in that isn't - used in 1.7.5 any more. [SW] - * Fixes from 1.7.4p16, notably an important fix for timed semaphores. - * Cygwin portability fixes. [NJG] - * Updated MSVC++ project files. [EEH] - - - & 1.7.5p4 - Version 1.7.5 patchlevel 4 February 15, 2002 - - Major changes: - * The mush recognizes telnet-aware connections. This is - neccessary for properly sending them some 8-bit characters. [SW] - * Much more support for handling accented characters in the ISO 8859-1 - character set. See help for accent(), stripaccents(), and NOACCENTS. - Inspired by Elendor. [SW] - * Things that do first-unique-prefix matching (command, attribute and flag - names) now use a more space-efficient data structure than before. - This adds two new files, src/ptab.c and hdrs/ptab.h [SW] - Commands: - * @sitelock/remove removes a sitelock entry. [SW] - Functions: - * ord() and chr() functions for converting characters to/from numerical - values that represent them. [SW] - Minor changes: - * The useless FORCE_WHITE flag is really, truely, gone. [SW] - * Use the new arglens argument to functions in more places. [SW] - * capstr() and before() fixes reimplemented using arglens. [SW] - * We now use the Mersenne Twister PRNG algorithm. [SW] - Fixes: - * setunion() no longer eats empty list elements. [SW] - * Setting an inherited lock on a child could change the parent's lock. - Reported by Riverwolf. [SW] - * Help fixes. [SW, Nymeria] - * Players waiting at the connect screen weren't being disconnected - by the idle_timeout. - * Detection of cygwin in Configure may be improved. - * Fixes from 1.7.4p15. - - & 1.7.5p3 - Version 1.7.5 patchlevel 3 January 24, 2002 - - Fixes: - * before() was broken in 1.7.5p2. Reported by Sam Knowlton. - * capstr() was broken in 1.7.5p2. - * Win32 portability fixes by Noltar@Korongil. - - & 1.7.5p2 - Version 1.7.5 patchlevel 2 January 23, 2002 - - Major changes: - * Implementations for softcode functions get the lengths of their arguments - passed to them, and this is taken advantage of in a number of places. [SW] - Minor changes: - * It's harder to get a partial dbref because of end-of-buffer truncation. [SW] - * Code cleanup. In particular, safe_str() and friends are no longer - macros for a safe_copy_str() or the like, because hardly anything - used a different buffer length than BUFFER_LEN, and those places - can be handled other ways. [SW] - Fixes: - * Win32 portability fixes by Noltar@Korongil and Eric Koske. - * When you have two hidden connections, one idle over the inactivity limit, - and the other not, @hide/off on the active connection unhides both, - but you also see the Inactivity re-hide message from the other - connection. Reported by Trispis. - * iname() function actually added to function table so it works. - Reported by K. Shirow. - * @lock obj=attrib:value locks didn't work properly. Reported by - Linda Antonsson. - * Fixes from 1.7.4p14. - - & 1.7.5p1 - Version 1.7.5 patchlevel 1 December 3, 2001 - - Minor Changes: - * PCRE updated to 3.7. [SW] - * player_name_len is now runtime configurable. Suggested by - Linda Antonsson. [SW] - * Any object of any type may be a ZMO, and any object of any type - may be zoned to a ZMO of any type. However, searching for - $commands has not changed, so $commands on a ZMO are only - searched when the ZMO is not a room, and $commands on objects - within the ZMO are only searched when the ZMO is a room. [TAP] - * @chzoneall nows directly calls @chzone, and @chzone now tells - you when it's not changing a zone. [TAP] - * The term "Zone Master" (player) has been replaced by "Shared - Player" in the help. [TAP] - * Many obsolete db formats are no longer readable. hdrs/oldattrib.h - and src/convdb.c are no more. [SW] - * Code cleanup. [SW] - Fixes: - * Help file for mix updated. Report by Cmintrnt@M*U*S*H - * Updated win32 config.h file and other fixes by Noltar@Korongil - * WHO wasn't showing unconnected players. Report by Noltar@Korongil. [SW] - * Help fixes. [SW] - - & 1.7.5p0 - Version 1.7.5 patchlevel 0 November 14, 2001 - - Major Changes: - * This is now the development minor version. This first release includes - relatively few changes, to make converting to it easier. - * Internal changes to the lock system. This requires a new minimal.db, - which is now distributed. [SW] - * Locale-based string collation throughout. - * Only ANSI C compilers are still supported; no more K&R. Files are - gradually going to be converted to ANSI C only. - * There is now an option to make ZMOs and ZMRs not count for - control of objects, only ZMPs. [SW] - Flags: - * The ZONE player flag has been renamed SHARED, to help seperate the - ZMP control-only meaning from the command-matching of ZMOs and ZMRs. [SW] - Commands: - * /preserve switch for @link prevents @chowning. Suggested by Vexon@M*U*S*H - * Admin WHO and SESSION now includes unconnected descriptors. [SW] - * Unconnected descriptors can now be booted. Patch by Bellemore@M*U*S*H. - * Unconnected descriptors can now be paged by admin with page/port. [SW] - Functions: - * mix() can take more than 10 lists and of unequal length. [3,SW] - * iname() returns the name of an object from inside (honoring nameformat) - Idea by Jeffrey@TheHotel. - * lplayers() returns a list of players in the location. Handy for - room parents. By Vexon@M*U*S*H. - * lvplayers(), lvcon(), lvexits() are like lplayers/lcon/lexits, but - leave out dark things (and disconnected players). Handy for room - parents. By Vexon@M*U*S*H. - Minor Changes: - * munge() now passes its delimiter as %1 to make generic sorting easier. [SW] - * Word-based attribute compression is faster than before, for both - compression and decompression. [SW] - * Windows memory-usage information for wizards is now in @uptime, not - @stats [SW] - * Word-based attribute compression stats can be viewed on non-Windows - mushes as well, by defining COMP_STATS. See externs.h for details. [SW] - * Setting of the internal QUEUE and semaphore attributes does not modify - an object's last-modified timestamp. [SW] - * Speaking on a channel that you're gagging is now treated like - speaking on a channel that you're not on. Suggested by rodregis@M*U*S*H - * You can use @exitto in place of &DESTINATION to set the destinatino - for variable exits, though DESTINATION is checked first. [3] - * WATCHER is another name for the MONITOR flag. [3] - * max_guest_pennies and guest_paycheck config options. Inspired by [SW] - * Lock and unlock messages now show object name and dbref, and tell - you if you unlock an already unlocked object. Suggested by Jamie Warren. - * A version of portmsg for Win32 is in the win32 directory. - Donated by CU5@WCX - * Tweaks to info_slave, which now uses readv/writev. [SW] - * Lots of code cleanup. [SW] - * CHAT_SYSTEM, INFO_SLAVE, and FUNCTION_SIDE_EFFECTS are now #define'd - by default. [TAP] - Fixes: - * Indentation fixes [SW] - * Fixes up to 1.7.4p12 merged in. - & patchlevels For information on a specific patchlevel of one of the versions listed, type 'help p'. For example, 'help 1.7.2p3' ! 1.7.5: 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10 1.7.4: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 1.7.3: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 --- 5620,5630 ---- TinyMUSH 2.0's. The option to examine public attributes by default is configurable. & patchlevels For information on a specific patchlevel of one of the versions listed, type 'help p'. For example, 'help 1.7.2p3' ! 1.7.5: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 1.7.4: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 1.7.3: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 *** 1_7_5.313/game/txt/hlp/penntop.hlp Thu, 19 Sep 2002 22:15:07 -0500 dunemush (pennmush/13_penntop.hl 1.2.1.27.1.3.1.2.1.2.1.1.1.1.1.1.1.1.1.6 600) --- 1_7_5.363(w)/game/txt/hlp/penntop.hlp Wed, 30 Oct 2002 14:46:47 -0600 dunemush (pennmush/13_penntop.hl 1.2.1.27.1.3.1.2.1.2.1.1.1.1.1.1.1.1.1.10 600) *************** *** 134,140 **** Test 2, success. Test 3, success. ! See also: ATTRIBUTES, SUBSTITUTION, @asuccess, @dolist & ATTRIB-OWNERSHIP ATTRIBUTE OWNERSHIP --- 134,140 ---- Test 2, success. Test 3, success. ! See also: ATTRIBUTES, SUBSTITUTION, @asuccess, @dolist & ATTRIB-OWNERSHIP ATTRIBUTE OWNERSHIP *************** *** 149,155 **** You must control an object in order to set attributes on it. ! See also: @atrlock, @atrchown, ATTRIBUTES & ATTRIBUTES & ATTRIBUTES LIST & ATTRIBUTE LIST --- 149,155 ---- You must control an object in order to set attributes on it. ! See also: @atrlock, @atrchown, ATTRIBUTES & ATTRIBUTES & ATTRIBUTES LIST & ATTRIBUTE LIST *************** *** 195,201 **** of conflicting with other attribute names. This could result in you setting an unwanted attribute. ! For example: @adesc me=think %N looks at you. will set your ADESCRIBE attribute just as @adescribe me=think %N looks at you. --- 195,201 ---- of conflicting with other attribute names. This could result in you setting an unwanted attribute. ! For example: @adesc me=think %N looks at you. will set your ADESCRIBE attribute just as @adescribe me=think %N looks at you. *************** *** 224,230 **** longer and descriptive names for attributes, which makes it much easier to examine and work on objects. ! See also: ATTRIB-OWNERSHIP, @set, examine, @atrchown, @atrlock, hasattr() get(), v(), NON-STANDARD ATTRIBUTES, SETTING-ATTRIBUTES & BEING KILLED --- 224,230 ---- longer and descriptive names for attributes, which makes it much easier to examine and work on objects. ! See also: ATTRIB-OWNERSHIP, @set, examine, @atrchown, @atrlock, hasattr() get(), v(), NON-STANDARD ATTRIBUTES, SETTING-ATTRIBUTES & BEING KILLED *************** *** 237,243 **** Many MUSHes choose to disable the kill command. ! See also: kill, slay, @death & BOOLEAN VALUES A boolean variable, for those of you not familiar with programming, --- 237,243 ---- Many MUSHes choose to disable the kill command. ! See also: kill, slay, @death & BOOLEAN VALUES A boolean variable, for those of you not familiar with programming, *************** *** 287,293 **** (note: These rules only apply when a function expects a Boolean value, not for strings that expect other values.) ! See also: BOOLEAN FUNCTIONS, not(), t() & CLIENTS Clients are special software programs that you can use to connect to MUSHes. They are usually much nicer to use than raw telnet and give you --- 287,293 ---- (note: These rules only apply when a function expects a Boolean value, not for strings that expect other values.) ! See also: BOOLEAN FUNCTIONS, not(), t() & CLIENTS Clients are special software programs that you can use to connect to MUSHes. They are usually much nicer to use than raw telnet and give you *************** *** 332,338 **** There's also one special case: anyone can @link an unlinked exit (at which point the exit is @chowned to the linker). ! See also: controls(), TRUST, ZONES, SHARED PLAYERS & COSTS These are usually: --- 332,338 ---- There's also one special case: anyone can @link an unlinked exit (at which point the exit is @chowned to the linker). ! See also: controls(), TRUST, ZONES, SHARED PLAYERS & COSTS These are usually: *************** *** 349,355 **** Type '@config/costs' to get the costs for the particular MUSH you are on. ! See also: MONEY, money(), score & CREDITS Maintainer: Javelin Developers: Talek [TAP], Trivian [TN], Halatir [LdW], Raevnos [SW] --- 349,355 ---- Type '@config/costs' to get the costs for the particular MUSH you are on. ! See also: MONEY, money(), score & CREDITS Maintainer: Javelin Developers: Talek [TAP], Trivian [TN], Halatir [LdW], Raevnos [SW] *************** *** 370,376 **** and Rhost [Rhost] servers, as well as to the players of Belgariad MUSH, DuneMUSH, and M*U*S*H, and everyone else using this server! ! See also: help code, help license & DATABASE & DBREFS & DBREF NUMBER --- 370,376 ---- and Rhost [Rhost] servers, as well as to the players of Belgariad MUSH, DuneMUSH, and M*U*S*H, and everyone else using this server! ! See also: help code, help license & DATABASE & DBREFS & DBREF NUMBER *************** *** 410,431 **** flag is 'O' (o), which looks like '0' (zero) on some clients. Make sure you have the right number before using it in your code! ! See also: MYOPIC, OPAQUE, MUSHCODE & DROP-TOS ! When you use the @link command on a room, it sets another room or object ! as the DROP-TO location. Any object that someone drops in the room will ! automatically be sent to the drop-to location, rather than staying in the ! room. ! ! If the object is set STICKY, it will instead go to its home. If the ! room is set STICKY, all objects dropped in the room will stay there ! until the last player leaves/disconnects, at which point all of them ! will be sent to the drop-to location. ! This is very useful for keeping rooms uncluttered. ! See also: @link, STICKY, LINK_OK & %# & %N & ENACTOR --- 410,436 ---- flag is 'O' (o), which looks like '0' (zero) on some clients. Make sure you have the right number before using it in your code! ! See also: MYOPIC, OPAQUE, MUSHCODE & DROP-TOS ! When you use the @link command on a room, it sets another room or ! object as the DROP-TO location. By default, any non-STICKY object that ! someone drops in the room will automatically be transported to the ! drop-to location, rather than staying in the room. Any STICKY object ! droped in the room will go to its home. ! ! If the room is set STICKY, objects dropped in the room will stay there ! until the last player leaves/disconnects, at which point they will be ! transported as described above. ! ! If the room has a @lock/dropto set on it, only objects that pass the ! lock will be transported (either immediately or when the last player ! leaves if the room is STICKY). This can be used to prevent the dropto ! from acting on, say, objects containing connected players. ! Drop-tos are useful for keeping rooms uncluttered. ! See also: @link, STICKY, LINK_OK, @lock & %# & %N & ENACTOR *************** *** 441,447 **** replaced with the name of the enactor (the person who typed 'get ' in this case). ! See also: EXECUTOR, SUBSTITUTION, DBREF & EVALUATION ORDER Whenever some text is entered by an object or thing, the MUSH program attempts to match it against a valid game command in the following --- 446,452 ---- replaced with the name of the enactor (the person who typed 'get ' in this case). ! See also: EXECUTOR, SUBSTITUTION, DBREF & EVALUATION ORDER Whenever some text is entered by an object or thing, the MUSH program attempts to match it against a valid game command in the following *************** *** 491,497 **** same. There is a %-substitution, %!, that is replaced by the dbref # of the executor of the command. ! For example: @emit %N is the enactor and %! is the executor! > Cyclonus is the enactor and #6 is the executor! @create Box --- 496,502 ---- same. There is a %-substitution, %!, that is replaced by the dbref # of the executor of the command. ! For example: @emit %N is the enactor and %! is the executor! > Cyclonus is the enactor and #6 is the executor! @create Box *************** *** 505,511 **** command on the box, so Cyclonus was still the enactor, but the box was the object that was actually doing the @emit, and was thus the executor. ! See also: ENACTOR, SUBSTITUTION & EXITS An exit is a one-way link that takes you from its source room to its destination room. To open an exit from a room, you must control that room. --- 510,516 ---- command on the box, so Cyclonus was still the enactor, but the box was the object that was actually doing the @emit, and was thus the executor. ! See also: ENACTOR, SUBSTITUTION & EXITS An exit is a one-way link that takes you from its source room to its destination room. To open an exit from a room, you must control that room. *************** *** 536,542 **** will be evaluated for the dbref # of the destination room when the exit is used. ! For example: @open South ;s;south @link s=variable &destination s=[switch(rand(3),0,#100,1,#101,2,#102)] --- 541,547 ---- will be evaluated for the dbref # of the destination room when the exit is used. ! For example: @open South ;s;south @link s=variable &destination s=[switch(rand(3),0,#100,1,#101,2,#102)] *************** *** 547,553 **** Anyone can create variable exits, but the destinations must be to places that the exit can normally @link to. ! See also: @link, @open, link_ok, CLOUDY, TRANSPARENT, @firstexit & FAILURE FAILURE --- 552,558 ---- Anyone can create variable exits, but the destinations must be to places that the exit can normally @link to. ! See also: @link, @open, link_ok, CLOUDY, TRANSPARENT, @firstexit & FAILURE FAILURE *************** *** 564,570 **** (@efail/@oefail/@aefail), and for failing to leave an object (@lfail/@lefail/@alfail). ! See also: @lock, @fail, @efail, @lfail & GENDER & SEX Gender on a MUSH is entirely up to you. You can set yourself (or any --- 569,575 ---- (@efail/@oefail/@aefail), and for failing to leave an object (@lfail/@lefail/@alfail). ! See also: @lock, @fail, @efail, @lfail & GENDER & SEX Gender on a MUSH is entirely up to you. You can set yourself (or any *************** *** 574,580 **** pronoun substitution by the MUSH. The SEX attribute is visual to anyone who wants to see it. ! See also: @sex, SUBSTITUTION & GLOBALS & GLOBAL COMMANDS A command is "global" if it can be used anywhere in the world of the --- 579,585 ---- pronoun substitution by the MUSH. The SEX attribute is visual to anyone who wants to see it. ! See also: @sex, SUBSTITUTION & GLOBALS & GLOBAL COMMANDS A command is "global" if it can be used anywhere in the world of the *************** *** 584,590 **** MUSH, but you can usually find MUSH-specific help on them by typing "+help". ! See also: MASTER ROOM, USER-DEFINED COMMANDS, EVALUATION & HERE The word 'here' refers to the room you are in. For example, to rename the room you're in (if you control it), you could enter --- 589,595 ---- MUSH, but you can usually find MUSH-specific help on them by typing "+help". ! See also: MASTER ROOM, USER-DEFINED COMMANDS, EVALUATION & HERE The word 'here' refers to the room you are in. For example, to rename the room you're in (if you control it), you could enter *************** *** 607,613 **** You can set the drop-to in a room to home by doing: @link =home ! See also: DROP-TOS, @link, STICKY, LINK_OK, FIXED, home, EXITS & INTERIORS Here's a quick description of how to make things that can be entered: --- 612,618 ---- You can set the drop-to in a room to home by doing: @link =home ! See also: DROP-TOS, @link, STICKY, LINK_OK, FIXED, EXITS & INTERIORS Here's a quick description of how to make things that can be entered: *************** *** 636,647 **** @infilter car=* has arrived.,* has left.,* climbs out of the car., * climbs into the car. ! (The filters will keep people on the outside from seeing the 'o' messages and ! people on the inside from seeing the 'ox' messages which is a good thing.) ! ! See also: enter, leave, @prefix, @filter, AUDIBLE, @listen ! & LAST ! & LASTLOGOUT LAST and LASTLOGOUT These attributes show the last times you connected and disconnected from --- 641,652 ---- @infilter car=* has arrived.,* has left.,* climbs out of the car., * climbs into the car. ! (The filters will keep people on the outside from seeing the 'o' ! messages and people on the inside from seeing the 'ox' messages which ! is a good thing.) ! ! See also: enter, leave, @prefix, @filter, AUDIBLE, @listen ! & LAST & LASTLOGOUT LAST and LASTLOGOUT These attributes show the last times you connected and disconnected from *************** *** 660,666 **** objects or yourself to that room if it is set ABODE, and can set the destination of exits to that room if it is LINK_OK. ! See also: LINK_OK, ABODE, @link & LISTENING There are two basic ways to trigger action on the MUSH. The basic way --- 665,671 ---- objects or yourself to that room if it is set ABODE, and can set the destination of exits to that room if it is LINK_OK. ! See also: LINK_OK, ABODE, @link & LISTENING There are two basic ways to trigger action on the MUSH. The basic way *************** *** 715,721 **** Listen patterns are checked after the object's normal @listen attribute. ! See also: @listen, @ahear, @amhear, @aahear, MONITOR, USER-DEFINED COMMANDS, LISTEN_PARENT & LISTS --- 720,726 ---- Listen patterns are checked after the object's normal @listen attribute. ! See also: @listen, @ahear, @amhear, @aahear, MONITOR, USER-DEFINED COMMANDS, LISTEN_PARENT & LISTS *************** *** 734,740 **** is made up of similar items (so the fourth list in the example is NOT a typical one). ! See also: STRINGS, List Functions & LOOPING Looping in an object can have its good parts and its bad parts. The good part is when you activate part of a program multiple times --- 739,745 ---- is made up of similar items (so the fourth list in the example is NOT a typical one). ! See also: STRINGS, List Functions & LOOPING Looping in an object can have its good parts and its bad parts. The good part is when you activate part of a program multiple times *************** *** 748,754 **** machine that isn't @halt'd will drain your pennies while you are away from the mush! ! See also: @ps, HALT, COSTS, @trigger & MASTER ROOM The Master Room enables global commands and exits. Exits in the Master --- 753,759 ---- machine that isn't @halt'd will drain your pennies while you are away from the mush! ! See also: @ps, HALT, COSTS, @trigger & MASTER ROOM The Master Room enables global commands and exits. Exits in the Master *************** *** 759,765 **** a global command that you would like to see enabled for the MUSH, speak to a wizard. ! See also: EVALUATION, GLOBAL COMMANDS & ME The word 'me' refers to yourself. Some things to do when starting out: --- 764,770 ---- a global command that you would like to see enabled for the MUSH, speak to a wizard. ! See also: EVALUATION, GLOBAL COMMANDS & ME The word 'me' refers to yourself. Some things to do when starting out: *************** *** 768,774 **** 3) lock yourself: @lock me==me 4) set your gender: @sex me= ! See also: help newbie, help @lock, help @describe, help @sex & MONEY The MUSH has a built-in money system, which gives a starting amount of money to new players and hands out a daily allowance thereafter. --- 773,779 ---- 3) lock yourself: @lock me==me 4) set your gender: @sex me= ! See also: help newbie, help @lock, help @describe, help @sex & MONEY The MUSH has a built-in money system, which gives a starting amount of money to new players and hands out a daily allowance thereafter. *************** *** 784,790 **** pays the object by giving it the right number of pennies, the attributes are triggered. ! See also: COSTS, give, @cost, @pay, @opay, @apay & MUSHCODE & SOFTCODE --- 789,795 ---- pays the object by giving it the right number of pennies, the attributes are triggered. ! See also: COSTS, give, @cost, @pay, @opay, @apay & MUSHCODE & SOFTCODE *************** *** 835,841 **** All attributes can be used in attribute locks and can be 'owned' independent of object ownership. ! See also: ATTRIBUTES, ATTRIB-OWNERSHIP, Attribute Functions & PARENT & PARENTS & OBJECT PARENTS --- 840,846 ---- All attributes can be used in attribute locks and can be 'owned' independent of object ownership. ! See also: ATTRIBUTES, ATTRIB-OWNERSHIP, Attribute Functions & PARENT & PARENTS & OBJECT PARENTS *************** *** 881,888 **** name, but by the attribute name. If two attributes are in "conflict", the child's attribute is used. ! See also: @parent, $-COMMANDS, ATTRIBUTES ! For example: > &TEST #10=$test:@emit I'm the parent > &TEST #11=$check:@emit I'm the child --- 886,892 ---- name, but by the attribute name. If two attributes are in "conflict", the child's attribute is used. ! For example: > &TEST #10=$test:@emit I'm the parent > &TEST #11=$check:@emit I'm the child *************** *** 923,928 **** --- 927,934 ---- parent does not change, so unless you're putting data into the parent that you want to make impossible to read, it's safe to allow the purchasers of your object to @chown their copy. + + See also: @parent, $-COMMANDS, ATTRIBUTES & POWERS LIST Powers can be granted only by wizards, using the @power command. Powers cannot be granted to guest characters or players who are set *************** *** 961,967 **** tport_anywhere Can @teleport to anywhere. unkillable Can not be killed ! See also: @power & PUPPETS A thing is turned into a puppet by setting the PUPPET flag on it. A puppet object is an extension of its owner and relays everything --- 967,973 ---- tport_anywhere Can @teleport to anywhere. unkillable Can not be killed ! See also: @power & PUPPETS A thing is turned into a puppet by setting the PUPPET flag on it. A puppet object is an extension of its owner and relays everything *************** *** 999,1005 **** #18 :waves hello Punch> Punch waves hello ! See also: PUPPET, @force, DBREF & QUEUE QUEUE --- 1005,1011 ---- #18 :waves hello Punch> Punch waves hello ! See also: PUPPET, @force, DBREF & QUEUE QUEUE *************** *** 1016,1022 **** (wizards, you, and your objects) or unless you are VISUAL. It tracks how many active commands you have in the queue. ! See also: @ps, LOOPING & REGEXP & REGEXPS (This help text is largely from TinyMUSH 2.2.4, with permission) --- 1022,1028 ---- (wizards, you, and your objects) or unless you are VISUAL. It tracks how many active commands you have in the queue. ! See also: @ps, LOOPING & REGEXP & REGEXPS (This help text is largely from TinyMUSH 2.2.4, with permission) *************** *** 1274,1287 **** Please see help setq() for more information about the setq registers. ! See also: SUBSTITUTIONS, @trigger, USER-DEFINED COMMANDS, setq() & RQUOTA RQUOTA This attribute tracks remaining building quota if it is implemented. It is settable in-game only by a wizard, and is only visible to wizards. ! See also: @quota, @squota & SEMAPHORES The most complicated thing about semaphores is their name. Before you try to use semaphores, you should first be familiar with the "@wait" command. --- 1280,1293 ---- Please see help setq() for more information about the setq registers. ! See also: SUBSTITUTIONS, @trigger, USER-DEFINED COMMANDS, setq() & RQUOTA RQUOTA This attribute tracks remaining building quota if it is implemented. It is settable in-game only by a wizard, and is only visible to wizards. ! See also: @quota, @squota & SEMAPHORES The most complicated thing about semaphores is their name. Before you try to use semaphores, you should first be familiar with the "@wait" command. *************** *** 1341,1347 **** [ 30 seconds passes. ] Wizard waits 30 seconds. ! See also: @wait, @drain, @notify (continued in help semaphores4) & SEMAPHORES4 Semaphores can be used to enforce mutual exclusion - to prevent --- 1347,1353 ---- [ 30 seconds passes. ] Wizard waits 30 seconds. ! See also: @wait, @drain, @notify (continued in help semaphores4) & SEMAPHORES4 Semaphores can be used to enforce mutual exclusion - to prevent *************** *** 1426,1439 **** want to know who is doing it, you can set yourself NOSPOOF and you will be notified who is making the @emits. ! See also: @emit, @pemit, @remit, @oemit, and NOSPOOF. & STACK For those unfamiliar with the term stack, it refers to a programming data structure that follows a LIFO (Last-In-First-Out) principle. The stack in MUSH holds the ten REGISTERS, which can be accessed via the V-function (v(0) through v(9)) or via %-substitution (%0 through %9). ! See also: REGISTERS & STRINGS A string is simply a bunch of characters. A word is a string that begins and ends with the space character. A sentence is a string made up of --- 1432,1445 ---- want to know who is doing it, you can set yourself NOSPOOF and you will be notified who is making the @emits. ! See also: @emit, @pemit, @remit, @oemit, and NOSPOOF. & STACK For those unfamiliar with the term stack, it refers to a programming data structure that follows a LIFO (Last-In-First-Out) principle. The stack in MUSH holds the ten REGISTERS, which can be accessed via the V-function (v(0) through v(9)) or via %-substitution (%0 through %9). ! See also: REGISTERS & STRINGS A string is simply a bunch of characters. A word is a string that begins and ends with the space character. A sentence is a string made up of *************** *** 1444,1450 **** Foozle 09blert bar baz foo. ! See also: string functions & % & SUBSTITUTIONS The % symbol is used in MUSH commands to indicate a substitution -- some --- 1450,1456 ---- Foozle 09blert bar baz foo. ! See also: string functions & % & SUBSTITUTIONS The % symbol is used in MUSH commands to indicate a substitution -- some *************** *** 1505,1511 **** %! = #11 %L = #13 ! See also: EVALUATION, ENACTOR, EXECUTOR, DBREFS, v() & SUCCESS A "success" normally occurs when you attempt to do something that is restricted by an @lock and you pass the @lock. (Note that if no lock --- 1511,1517 ---- %! = #11 %L = #13 ! See also: EVALUATION, ENACTOR, EXECUTOR, DBREFS, v() & SUCCESS A "success" normally occurs when you attempt to do something that is restricted by an @lock and you pass the @lock. (Note that if no lock *************** *** 1519,1525 **** more information. Many of these actions have standard attributes that you can set messages in for when someone succeeds. ! See also: FAILURE, @lock, VERBS, ATTRIBUTES, @success, @asuccess, @osuccess & SWITCHES SWITCHES --- 1525,1531 ---- more information. Many of these actions have standard attributes that you can set messages in for when someone succeeds. ! See also: FAILURE, @lock, VERBS, ATTRIBUTES, @success, @asuccess, @osuccess & SWITCHES SWITCHES *************** *** 1571,1577 **** commands. Can send @mail as themselves. You can have $-commands and ^-patterns on things. Things can carry, be carried, and can follow. ! See also: EXITS, USER-DEFINED COMMANDS, LISTENING, GLOBALS & $-COMMANDS & MACROS & USER-DEFINED COMMANDS --- 1577,1583 ---- commands. Can send @mail as themselves. You can have $-commands and ^-patterns on things. Things can carry, be carried, and can follow. ! See also: EXITS, USER-DEFINED COMMANDS, LISTENING, GLOBALS & $-COMMANDS & MACROS & USER-DEFINED COMMANDS *************** *** 1613,1619 **** *BE SURE TO @LOCK/USE ME==ME IF YOU SET MACROS ON YOURSELF!* ! See also: STACK, SUBSTITUTIONS, @lock & VERBS For most verbs there are three forms: Verb (what the Enactor sees), Overb (what others in the area see) and Averb (the action to be --- 1619,1625 ---- *BE SURE TO @LOCK/USE ME==ME IF YOU SET MACROS ON YOURSELF!* ! See also: STACK, SUBSTITUTIONS, @lock & VERBS For most verbs there are three forms: Verb (what the Enactor sees), Overb (what others in the area see) and Averb (the action to be *************** *** 1678,1684 **** A backslash (\) can be used to escape * and ? if you want to match a literal asterisk or question mark. ! See also: USER-DEFINED COMMANDS, REGEXP & ZONE MASTER ROOMS & ZMR --- 1684,1690 ---- A backslash (\) can be used to escape * and ? if you want to match a literal asterisk or question mark. ! See also: USER-DEFINED COMMANDS, REGEXP & ZONE MASTER ROOMS & ZMR *************** *** 1691,1697 **** restricted commands that can go on a separate use-locked object from general ones. ! See also: ZONES, MASTER ROOM, EVALUATION & ZONE MASTERS & ZMP & SHARED PLAYERS --- 1697,1703 ---- restricted commands that can go on a separate use-locked object from general ones. ! See also: ZONES, MASTER ROOM, EVALUATION & ZONE MASTERS & ZMP & SHARED PLAYERS *************** *** 1746,1752 **** statements about ZMOs also apply to zone master rooms; for details, see the help topic ZONE MASTER ROOMS. ! See "help ZONES2" for more. & ZONES2 $commands on a ZMO are treated as global within that zone. The game attempts to match $commands for the ZMO of the player's --- 1752,1758 ---- statements about ZMOs also apply to zone master rooms; for details, see the help topic ZONE MASTER ROOMS. ! See "help ZONES2" for more. & ZONES2 $commands on a ZMO are treated as global within that zone. The game attempts to match $commands for the ZMO of the player's *************** *** 1818,1820 **** --- 1824,1833 ---- when the function is called, so restricting @pemit also restricts pemit(). However, a function's restrictions are not checked when a command is called, to allow disabling side-effect functions. + + Some functions (Like name()) have non-side-effect and side-effect versions + depending on how many arguments they're called with. The side-effect + version can be disabled while keeping the safe non-side-effect form with + the 'nosidefx' restriction. This can also be used to disable pure side-effect + functions. + *** 1_7_5.313/game/txt/hlp/pennfunc.hlp Thu, 19 Sep 2002 22:15:07 -0500 dunemush (pennmush/16_pennfunc.h 1.2.1.50.1.1.1.1.1.2.1.7.1.8.1.1.1.1.1.1.1.1.1.1.1.1.1.3.1.1.1.1.1.1.1.1.1.1.1.1.1.2 600) --- 1_7_5.363(w)/game/txt/hlp/pennfunc.hlp Wed, 30 Oct 2002 21:53:28 -0600 dunemush (pennmush/16_pennfunc.h 1.2.1.50.1.1.1.1.1.2.1.7.1.8.1.1.1.1.1.1.1.1.1.1.1.1.1.3.1.1.1.1.1.1.1.1.1.1.1.1.1.7 600) *************** *** 204,212 **** ifelse() lcstr() left() lit() ljust() merge() mid() ord() pos() regedit() regmatch() repeat() reverse() right() rjust() ! scramble() secure() space() spellnum() squish() ! strcat() strinsert() stripaccent() stripansi() strlen() ! switch() trim() ucstr() wrap() See also: STRINGS & Time functions --- 204,213 ---- ifelse() lcstr() left() lit() ljust() merge() mid() ord() pos() regedit() regmatch() repeat() reverse() right() rjust() ! scramble() secure() sha1() space() spellnum() ! squish() strcat() strinsert() stripaccent() stripansi() ! strlen() strmatch() switch() trim() ucstr() ! wrap() See also: STRINGS & Time functions *************** *** 1863,1874 **** lock([/][, ]) lock() returns the text string equivalent of the lock on an object that ! you control. You can also provide an "enter", "use", "tport", or "page" switch after the object, if you want to check something other than the regular lock. If a new value is specified, it will attempt to change the lock before reporting it. This is a side-effect function and may not be enabled on some MUSHes. & LOG() log([, ]) --- 1864,1877 ---- lock([/][, ]) lock() returns the text string equivalent of the lock on an object that ! you control. You can also provide a locktype (e.g. "enter", "use", etc.) switch after the object, if you want to check something other than the regular lock. If a new value is specified, it will attempt to change the lock before reporting it. This is a side-effect function and may not be enabled on some MUSHes. + + See also: @lock, locktypes & LOG() log([, ]) *************** *** 2044,2050 **** the user-defined function of the first argument performed on it; the element is passed to the function as %0, and its position in as %1. is used as the element delimiter; ! if it is not specified, a space is used. Examples: --- 2047,2054 ---- the user-defined function of the first argument performed on it; the element is passed to the function as %0, and its position in as %1. is used as the element delimiter; ! if it is not specified, a space is used. The resulting output is ! delimited by , if given, or else by the delimiter Examples: *************** *** 2073,2085 **** See also: element(), grab() & MATCHALL() ! Function: matchall(,[,]) This function works identically to the match() function, save that it returns all matches, not just the first: It returns the index numbers of ! all elements in the list which match . If none match, an ! empty string is returned. ! Examples: > say matchall(This is a test of a test,test) --- 2077,2090 ---- See also: element(), grab() & MATCHALL() ! Function: matchall(,[,[,]]) This function works identically to the match() function, save that it returns all matches, not just the first: It returns the index numbers of ! all elements in the list which match . If none match, ! an empty string is returned. The resulting output is delimited by ! , if given, or else by the delimiter ! Examples: > say matchall(This is a test of a test,test) *************** *** 2858,2863 **** --- 2863,2873 ---- You say, "1.0 1.000 1.1" > say setunion(1.1 1.0, 1.000, %b, f) You say, "1.0 1.1" + & SHA1() + sha1() + + Returns the SHA-1 cryptographic hash of the string. See RFC 3174 + for more information. & SHL() shl(,) *************** *** 3302,3309 **** Monday, the 17th day of July. & TIMEFMT2 All escape codes start with a $. To get a literal $, use $$. ! Any unrecognized codes or other text will be returned unchanged. ! Some servers might support more codes than the ones listed below. $a - Abbreviated weekday name $p - AM/PM ($P may also work) $A - Full weekday name $S - Seconds after the minute --- 3312,3319 ---- Monday, the 17th day of July. & TIMEFMT2 All escape codes start with a $. To get a literal $, use $$. ! Invalid codes will return #-1 INVALID ESCAPE CODE. Other text will be ! passed through unchanged. $a - Abbreviated weekday name $p - AM/PM ($P may also work) $A - Full weekday name $S - Seconds after the minute *** 1_7_5.313/game/txt/hlp/penncmd.hlp Sun, 15 Sep 2002 15:53:06 -0500 dunemush (pennmush/18_penncmd.hl 1.2.1.1.1.47.1.1.1.1.1.3.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.5 600) --- 1_7_5.363(w)/game/txt/hlp/penncmd.hlp Wed, 30 Oct 2002 14:46:34 -0600 dunemush (pennmush/18_penncmd.hl 1.2.1.1.1.47.1.1.1.1.1.3.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.9 600) *************** *** 67,73 **** @allhalt @allquota @boot @chownall @chzoneall @comment @dbck @disable @dump @enable ! @hide @kick @log @motd @newpassword @pcreate @poll @poor @power @purge @quota @readcache @rejectmotd @shutdown @sitelock @squota @uptime @wall --- 67,73 ---- @allhalt @allquota @boot @chownall @chzoneall @comment @dbck @disable @dump @enable ! @hide @hook @kick @log @motd @newpassword @pcreate @poll @poor @power @purge @quota @readcache @rejectmotd @shutdown @sitelock @squota @uptime @wall *************** *** 1412,1417 **** --- 1412,1448 ---- reset. See also: enter, @enter, ENTER_OK, @describe, look + & @hook + @hook/ [=, ] + + @hook tells the command parser to evaluate given attributes at certain points + in command evaluation. The possible points, indicated by the proper switch: + + @hook/before: The attribute is evaluated before the command itself is run. + @hook/after: The attribute is evaluated after the command is run. + + In all cases, %# is the dbref of the object doing the command, and all + hooks share the same set of q-registers. The results of the evaluated + attribute is thrown away like it was wrapped in a call of null(). Also, + in cases where a command and function do the same thing (e.g., @pemit and + pemit()), only the command gets the hooks. + + Leaving out the object and attribute clears an existing hook. Wizards can + see existing hooks with @command. + + See HELP @HOOK2 for an example. + & @hook2 + An example of @hook: + + > &top_line #3=pemit(%#, What follows is a the results of a look) + > &bottom_line #3=pemit(%#, You're done looking.) + > @hook/before look=#3, top_line + > @hook/after look=#3, bottom_line + > look + What follows is the results of a look + Room Zero + You are in Room Zero. It's very dark here. + You're done looking. & @idle @idle = *************** *** 1550,1559 **** to work. If there's no DESTINATION attribute, the EXITTO attribute is also tried. LINK_OK objects can also be used as semaphores, and any object can be @parented to them. ! See also: EXITS, @open, @dig, DROP-TO, HOME & @listen & @listen @listen = --- 1581,1593 ---- to work. If there's no DESTINATION attribute, the EXITTO attribute is also tried. + If the destination is "home", those who travel through the exit will + be sent to their homes. + LINK_OK objects can also be used as semaphores, and any object can be @parented to them. ! See also: EXITS, @open, @dig, DROP-TO, HOME & @listen @listen = *************** *** 1765,1784 **** (continued in help @lock9) & @lock9 ! You can also test for set flags in a lock directly, without using an ! evaluation lock, with this format: ! @lock =flag^ ! Object types can also be checked, like so: ! @lock =type^ ! These locks act like the object the lock is on does a hasflag(%#, ) ! or hastype(%#, ), succeeding if the flag is set. For example, - @lock/use Admin Commands=flag^wizard|flag^royalty See also: locktypes, @clock --- 1799,1819 ---- (continued in help @lock9) & @lock9 ! You can also test for set flags, powers, or object types in a lock directly, ! without using an evaluation lock, with these formats: ! @lock =flag^ ! @lock =type^ ! @lock =power^ ! These locks act like the object the lock is on does a hasflag(%#, ), ! hastype(%#, ), or haspower(%#, ) succeeding if the flag is set. ! You can test for channel membership with: ! @lock =channel^ For example, @lock/use Admin Commands=flag^wizard|flag^royalty See also: locktypes, @clock *************** *** 2558,2563 **** --- 2593,2599 ---- The first form sets (or unsets) a flag on . See 'help flags'. Ex: @set me=VISUAL + Flags may be specified by full name (recommended) or by flag character. The second form sets a pre-defined attribute on Ex: @fail Heavy Box=You can't pick that up. *************** *** 2805,2810 **** --- 2841,2849 ---- Teleportation triggers the @oxtport/@tport/@otport/@atport attributes, unless is an exit or the /silent switch is given. + As a special case, using "home" as the teleports the object + to its home. + See also: JUMP_OK, NO_TEL, @oxtport, @tport, @otport, @atport, @lock & @tport @tport [=] *** 1_7_5.313/game/txt/hlp/index.hlp Thu, 29 Aug 2002 23:08:19 -0500 dunemush (pennmush/20_index.hlp 1.1.1.1.1.1.1.1.1.2.1.1.2.2.2.2.1.1 660) --- 1_7_5.363(w)/game/txt/hlp/index.hlp Wed, 30 Oct 2002 14:47:11 -0600 dunemush (pennmush/20_index.hlp 1.1.1.1.1.1.1.1.1.2.1.1.2.2.2.2.1.1.1.4 660) *************** *** 76,140 **** 1.7.5p5 1.7.5p6 1.7.5p6 1.7.5p7 1.7.5p7 1.7.5p8 1.7.5p8 1.7.5p9 1.7.5p9 ! 1.7.5p10 1.7.5p10 : ! ; @-attributes @-building ! @-general @-wizard @@ ! @@() @aahear @aclone For more, see Entries-5 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-5 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! @aconnect @adeath @adescribe ! @adestroy @adisconnect @adrop ! @aefail @aenter @afailure ! @afollow @agive @ahear ! @aidescribe @aleave @alfail ! @alias @allhalt @allquota ! @amhear @amove @apayment ! @areceive @asuccess @atport ! @atrchown @atrlock @attribute ! @aufail @aunfollow @ause ! @away @azenter @azleave ! @boot @break @cemit ! @channel @channel2 @channel3 ! @channel4 @channel5 @charges ! @chat @chown @chownall ! @chzone @chzone2 @chzoneall For more, see Entries-6 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-6 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! @clock @clock2 @clone ! @command @comment @config ! @config attribs @config chat @config cmds ! @config cosmetic @config cosmetic2 @config costs ! @config db @config dump @config funcs ! @config limits @config limits2 @config log ! @config net @config parameters @config tiny ! @conformat @cost @cpattr ! @create @dbck @death ! @decompile @decompile2 @decompile3 ! @describe @destroy @destroy2 ! @dig @dig2 @disable ! @doing @dolist @drain ! @drop @dump @ealias ! @edit @efail @elock ! @emit @enable @enter For more, see Entries-7 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-7 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! @entrances @eunlock @exitformat ! @failure @filter @filter2 ! @find @firstexit @follow ! @force @force2 @forwardlist ! @function @function2 @function3 ! @function4 @gedit @give ! @grep2 @grep @halt ! @haven @hide @idescribe @idle @infilter @inprefix @kick @lalias @leave @lemit @lfail @link --- 76,141 ---- 1.7.5p5 1.7.5p6 1.7.5p6 1.7.5p7 1.7.5p7 1.7.5p8 1.7.5p8 1.7.5p9 1.7.5p9 ! 1.7.5p10 1.7.5p10 1.7.5p11 ! : ; @-attributes ! @-building @-general @-wizard ! @@ @@() @aahear For more, see Entries-5 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-5 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! @aclone @aconnect @adeath ! @adescribe @adestroy @adisconnect ! @adrop @aefail @aenter ! @afailure @afollow @agive ! @ahear @aidescribe @aleave ! @alfail @alias @allhalt ! @allquota @amhear @amove ! @apayment @areceive @asuccess ! @atport @atrchown @atrlock ! @attribute @aufail @aunfollow ! @ause @away @azenter ! @azleave @boot @break ! @cemit @channel @channel2 ! @channel3 @channel4 @channel5 ! @charges @chat @chown ! @chownall @chzone @chzone2 For more, see Entries-6 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-6 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! @chzoneall @clock @clock2 ! @clone @command @comment ! @config @config attribs @config chat ! @config cmds @config cosmetic @config cosmetic2 ! @config costs @config db @config dump ! @config funcs @config limits @config limits2 ! @config log @config net @config parameters ! @config tiny @conformat @cost ! @cpattr @create @dbck ! @death @decompile @decompile2 ! @decompile3 @describe @destroy ! @destroy2 @dig @dig2 ! @disable @doing @dolist ! @drain @drop @dump ! @ealias @edit @efail ! @elock @emit @enable For more, see Entries-7 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-7 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! @enter @entrances @eunlock ! @exitformat @failure @filter ! @filter2 @find @firstexit ! @follow @force @force2 ! @forwardlist @function @function2 ! @function3 @function4 @gedit ! @give @grep2 @grep ! @halt @haven @hide ! @hook @hook2 @idescribe @idle @infilter @inprefix @kick @lalias @leave @lemit @lfail @link *************** *** 142,153 **** @listmotd @lock @lock2 @lock3 @lock4 @lock5 @lock6 @lock7 @lock8 - @lock9 @log @logwipe For more, see Entries-8 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-8 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- @lset @map2 @mail @malias @malias2 @malias3 @malias4 @malias5 @map --- 143,154 ---- @listmotd @lock @lock2 @lock3 @lock4 @lock5 @lock6 @lock7 @lock8 For more, see Entries-8 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-8 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + @lock9 @log @logwipe @lset @map2 @mail @malias @malias2 @malias3 @malias4 @malias5 @map *************** *** 163,174 **** @otport @oufail @ounfollow @ouse @oxenter @oxleave @oxmove @oxtport @ozenter - @ozleave @parent @password For more, see Entries-9 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-9 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- @payment @pcreate @pemit @pemit2 @poll @poor @power @prefix @ps --- 164,175 ---- @otport @oufail @ounfollow @ouse @oxenter @oxleave @oxmove @oxtport @ozenter For more, see Entries-9 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-9 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + @ozleave @parent @password @payment @pcreate @pemit @pemit2 @poll @poor @power @prefix @ps *************** *** 184,195 **** @sweep @switch @switch2 @teleport @tport @trigger @trigger2 @ufail @ulock - @undestroy @unfollow @unlink For more, see Entries-10 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-10 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- @unlock @unrecycle @uptime @uptime2 @use @uunlock @verb @verb2 @verb3 --- 185,196 ---- @sweep @switch @switch2 @teleport @tport @trigger @trigger2 @ufail @ulock For more, see Entries-10 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-10 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + @undestroy @unfollow @unlink @unlock @unrecycle @uptime @uptime2 @use @uunlock @verb @verb2 @verb3 *************** *** 205,302 **** accent3 accent4 acos() action lists action2 add() after() ahelp alphamax() - alphamin() and() andflags() For more, see Entries-11 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-11 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- anews ansi ansi() aposs() art() asin() ! atan() atrlock() attrcnt() ! attrib-ownership attribute flags attribute functions ! attribute list attributes attributes list ! attributes2 attributes3 attributes4 ! audible audible2 band() ! beep() before() being killed ! bitwise functions bnand() bnot() ! boolean functions boolean values boolean2 ! boolean3 bor() bound() ! brackets() brief builder ! bxor() cand() capstr() ! case() caseall() cat() ! cd ceil() cemit() ! center() cflags() ch For more, see Entries-12 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-12 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! changes channel functions channel-list ! channels() chat checkpass() ! chown_ok chr() clients ! clock() clone() cloudy ! code color commands ! communication functions comp() comsys ! con() config() conn() ! connected control controls() ! convsecs() convtime() convutcsecs() ! copyright copyrite cor() ! cos() costs create() ! credits ctime() ctitle() ! cv cwho() dark ! dark2 database dbref # ! dbref functions dbref number dbref2 ! dbrefs debug debug2 For more, see Entries-13 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-13 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! dec() decrypt() default() ! delete() desert destroy_ok ! die() dig() dismiss ! dist2d() dist3d() div() ! doing doing() drop ! drop-tos e() edefault() ! edit() element() elements() ! elist() elock() emit() ! enactor encrypt() endtag() ! enter enter_ok entrances() ! eq() escape() etimefmt() ! etimefmt2 eval() evaluation order ! evaluation2 events examine ! executor exit() exits ! exits2 exp() extract() ! failure fdiv() filter() For more, see Entries-14 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-14 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! filterbool() findable() first() ! fixed flag list flags ! flags list flags() flags2 ! flip() floating floating point functions ! floor() floordiv() fmod() ! fold() fold2 folderstats() ! follow followers() following() ! foreach() foreach2 fullname() ! function list functions functions() ! functions2 gagged gender ! get get() get_eval() ! give global commands globals ! go going goto ! grab() graball() grep() ! grepi() gt() gte() ! halt hasattr() hasattrp() For more, see Entries-15 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-15 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! hasattrpval() hasattrval() hasflag() ! haspower() hastype() haven here hidden() home home() homes html html functions html() i18n --- 206,304 ---- accent3 accent4 acos() action lists action2 add() after() ahelp alphamax() For more, see Entries-11 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-11 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + alphamin() and() andflags() anews ansi ansi() aposs() art() asin() ! atan() atan2() atrlock() ! attrcnt() attrib-ownership attribute flags ! attribute functions attribute list attributes ! attributes list attributes2 attributes3 ! attributes4 audible audible2 ! band() beep() before() ! being killed bitwise functions bnand() ! bnot() boolean functions boolean values ! boolean2 boolean3 bor() ! bound() brackets() brief ! builder bxor() cand() ! capstr() case() caseall() ! cat() cd ceil() For more, see Entries-12 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-12 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! cemit() center() cflags() ! ch changes channel functions ! channel-list channels() chat ! checkpass() chown_ok chr() ! clients clock() clone() ! cloudy code color ! commands communication functions comp() ! comsys con() config() ! conn() connected control ! controls() convsecs() convtime() ! convutcsecs() copyright copyrite ! cor() cos() costs ! create() credits ctime() ! ctitle() ctu() cv ! cwho() dark dark2 ! database dbref # dbref functions For more, see Entries-13 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-13 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! dbref number dbref2 dbrefs ! debug debug2 dec() ! decrypt() default() delete() ! desert destroy_ok die() ! dig() dismiss dist2d() ! dist3d() div() doing ! doing() drop drop-tos ! e() edefault() edit() ! element() elements() elist() ! elock() emit() enactor ! encrypt() endtag() enter ! enter_ok entrances() eq() ! escape() etimefmt() etimefmt2 ! eval() evaluation order evaluation2 ! events examine executor ! exit() exits exits2 For more, see Entries-14 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-14 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! exp() extract() failure ! fdiv() filter() filterbool() ! findable() first() fixed ! flag list flags flags list ! flags() flags2 flip() ! floating floating point functions floor() ! floordiv() fmod() fold() ! fold2 folderstats() follow ! followers() following() foreach() ! foreach2 fullname() function list ! functions functions() functions2 ! gagged gender get ! get() get_eval() give ! global commands globals go ! going goto grab() ! graball() grep() grepi() For more, see Entries-15 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-15 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! gt() gte() halt ! hasattr() hasattrp() hasattrpval() ! hasattrval() hasflag() haspower() ! hastype() haven help here hidden() home home() homes html html functions html() i18n *************** *** 309,347 **** inventory isdaylight() isdbref() isint() isnum() isword() itemize() items() iter() - iter2 itext() judge - jump_ok jury_ok kill For more, see Entries-16 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-16 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! last last() lastip ! lastlogout lastsite lattr() ! lcon() lcstr() ldelete() ! leave left() lemit() ! lexits() license light ! link() link_ok linking ! list functions list() listen_parent ! listening listening2 listening3 ! lists lit() ljust() ! lmath() ln() lnum() ! loc() locale localize() ! locate() locate2 lock list ! lock types lock types2 lock() ! locking locklist locks ! locktypes locktypes2 log() ! logout look look2 For more, see Entries-17 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-17 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! looping lparent() lplayers() ! lsearch() lsearch2 lsearchr() ! lstats() lt() lte() ! lvcon() lvexits() lvplayers() ! lwho() macros macros2 mail functions mail() mail-admin mail-folders mail-other mail-reading mail-sending maildstats() mailfrom() --- 311,349 ---- inventory isdaylight() isdbref() isint() isnum() isword() itemize() items() iter() For more, see Entries-16 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-16 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! iter2 itext() judge ! jump_ok jury_ok kill ! last & lastlogout last() lastip ! lastsite lattr() lcon() ! lcstr() ldelete() leave ! left() lemit() lexits() ! license light link() ! link_ok linking list functions ! list() listen_parent listening ! listening2 listening3 lists ! lit() ljust() lmath() ! ln() lnum() loc() ! locale localize() locate() ! locate2 lock list lock types ! lock types2 lock() locking ! locklist locks locktypes For more, see Entries-17 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-17 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! locktypes2 log() logout ! look look2 looping ! lparent() lplayers() lsearch() ! lsearch2 lsearchr() lstats() ! lt() lte() lvcon() ! lvexits() lvplayers() lwho() ! macros macros2 mail mail functions mail() mail-admin mail-folders mail-other mail-reading mail-sending maildstats() mailfrom() *************** *** 351,363 **** matching math functions max() me mean() median() member() merge() mid() - min() mix() mix2 - mod() modulo() modulus() For more, see Entries-18 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-18 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- money money() monitor mortal move mtime() mudname() mul() munge() --- 353,365 ---- matching math functions max() me mean() median() member() merge() mid() For more, see Entries-18 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-18 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + min() mix() mix2 + mod() modulo() modulus() money money() monitor mortal move mtime() mudname() mul() munge() *************** *** 372,384 **** nor() nospoof not() nowarn nspemit() null() num() obj() object parents - objeval() objmem() oemit() - on-vacation opaque open() For more, see Entries-19 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-19 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- or() ord() orflags() owner() page page2 paranoid parent parent() --- 374,386 ---- nor() nospoof not() nowarn nspemit() null() num() obj() object parents For more, see Entries-19 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-19 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + objeval() objmem() oemit() + on-vacation opaque open() or() ord() orflags() owner() page page2 paranoid parent parent() *************** *** 393,405 **** pueblo pueblo features pueblo() puppet puppets puppets2 queue quiet quit - quota() r() r-function - rand() read regedit() For more, see Entries-20 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-20 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- regeditall() regeditalli() regediti() regexp regexp classes regexp classes2 regexp examples regexp syntax regexp syntax2 --- 395,407 ---- pueblo pueblo features pueblo() puppet puppets puppets2 queue quiet quit For more, see Entries-20 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-20 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + quota() r() r-function + rand() read regedit() regeditall() regeditalli() regediti() regexp regexp classes regexp classes2 regexp examples regexp syntax regexp syntax2 *************** *** 414,426 **** restarts() restarttime() restrict restrict2 restrict3 reverse() revwords() right() rjust() - rloc() rnum() room - room() round() royalty For more, see Entries-21 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-21 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- rquota rules s() s-function safe say score scramble() search() --- 416,428 ---- restarts() restarttime() restrict restrict2 restrict3 reverse() revwords() right() rjust() For more, see Entries-21 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-21 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + rloc() rnum() room + room() round() royalty rquota rules s() s-function safe say score scramble() search() *************** *** 431,501 **** setdiff() setinter() setq() setq2 setq3 setr() setting-attributes setunion() sex ! shared shared players shared players2 ! shl() shr() shuffle() ! sign() sin() slay ! softcode sort() sortby() ! soundex() soundex2 soundlike() ! soundslike() space() spellnum() For more, see Entries-22 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-22 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! splice() spoofing sqrt() ! squish() stack starttime() ! stats() stddev() step2 ! step() sticky strcat() ! string functions strings strinsert() ! stripaccents() stripansi() strlen() ! strmatch() sub() subj() ! substitutions substitutions2 substitutions3 ! substitutions4 success suspect ! switch wildcards switch() switch2 ! switchall() switches t() ! table() tag() tagwrap() ! take tan() teach ! tel() tel_ok temple ! terse textfile() think ! time functions time() timefmt() For more, see Entries-23 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-23 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! timefmt2 timestring() topics ! topics2 translation transparent ! transparent2 trim() trunc() ! trust trust2 type() ! types of objects types2 u() ! u2 u3 ucstr() ! udefault() ufun() ufun2 ! ufun3 uldefault() ulocal() ! ulocal2 unfindable unfollow ! uninspected unregistered use ! user-defined commands user-defined2 utctime() ! utility functions v() v-function ! vadd() val() valid() ! vdim() vdot() verbose ! verbs version() visible() ! visual vmag() vmax() For more, see Entries-24 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-24 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! vmin() vmul() vrml ! vsub() vunit() warnings ! warnings list warnings list2 where() ! whisper whisper2 who ! wildcards wipe() with ! wizard wordpos() words() ! wrap() xget() xor() ! z_tel zemit() zfun() ! zmo zmp zmr ! zone zone master objects zone master rooms ! zone masters zone objects zone() ! zones zones2 & &Entries -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- --- 433,503 ---- setdiff() setinter() setq() setq2 setq3 setr() setting-attributes setunion() sex ! sha1() shared shared players ! shared players2 shl() shr() ! shuffle() sign() sin() ! slay softcode sort() For more, see Entries-22 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-22 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! sortby() soundex() soundex2 ! soundlike() soundslike() space() ! spellnum() splice() spoofing ! sqrt() squish() stack ! starttime() stats() stddev() ! step2 step() sticky ! strcat() string functions strings ! strinsert() stripaccents() stripansi() ! strlen() strmatch() sub() ! subj() substitutions substitutions2 ! substitutions3 substitutions4 success ! suspect switch wildcards switch() ! switch2 switchall() switches ! t() table() tag() ! tagwrap() take tan() ! teach tel() tel_ok For more, see Entries-23 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-23 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! temple terse textfile() ! think time functions time() ! timefmt() timefmt2 timestring() ! topics topics2 translation ! transparent transparent2 trim() ! trunc() trust trust2 ! type() types of objects types2 ! u() u2 u3 ! ucstr() udefault() ufun() ! ufun2 ufun3 uldefault() ! ulocal() ulocal2 unfindable ! unfollow uninspected unregistered ! use user-defined commands user-defined2 ! utctime() utility functions v() ! v-function vadd() val() ! valid() vdim() vdot() For more, see Entries-24 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-24 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! verbose verbs version() ! visible() visual vmag() ! vmax() vmin() vmul() ! vrml vsub() vunit() ! warnings warnings list warnings list2 ! where() whisper whisper2 ! who wildcards wipe() ! with wizard wordpos() ! words() wrap() xget() ! xor() z_tel zemit() ! zfun() zmo zmp ! zmr zone zone master objects ! zone master rooms zone masters zone objects ! zone() zones zones2 & &Entries -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- *** 1_7_5.313/game/txt/index-files.pl Thu, 29 Aug 2002 23:08:19 -0500 dunemush (pennmush/28_index-file 1.6 600) --- 1_7_5.363(w)/game/txt/index-files.pl Tue, 08 Oct 2002 10:21:11 -0500 dunemush (pennmush/28_index-file 1.7 600) *************** *** 38,45 **** } if ($longest) { # Add the longest one ! @set = sort { length($set[$b]) <=> length($set[$a]) } @set; ! @aset = sort { length($aset[$b]) <=> length($aset[$a]) } @aset; push(@entries,$set[0]) if $set[0]; push(@aentries,$aset[0]) if $aset[0]; } --- 38,45 ---- } if ($longest) { # Add the longest one ! @set = sort { length($b) <=> length($a) } @set; ! @aset = sort { length($b) <=> length($a) } @aset; push(@entries,$set[0]) if $set[0]; push(@aentries,$aset[0]) if $aset[0]; } *** 1_7_5.313/game/mushcnf.dst Wed, 28 Aug 2002 09:50:52 -0500 dunemush (pennmush/41_mushcnf.ds 1.1.1.19.1.1.1.2.1.1.1.7 600) --- 1_7_5.363(w)/game/mushcnf.dst Wed, 30 Oct 2002 23:31:46 -0600 dunemush (pennmush/41_mushcnf.ds 1.1.1.19.1.1.1.2.1.1.1.8 600) *************** *** 579,584 **** --- 579,593 ---- # on its length being 2. newline_one_char yes + + # Should object names be restricted to just ascii characters, or can + # non-ascii (Accented letters, for example) be used as well if the + # mush'es locale permits? Not reccomended except for + # non-english-language games, as people with tend to have problems + # typing in those extra characters. @nameaccent is the preferred way to + # get fancy names. + only_ascii_in_names yes + ### ### Default flags for newly created stuff ### *** 1_7_5.313/src/shs.c Thu, 30 May 2002 12:14:33 -0500 dunemush (pennmush/b/18_shs.c 1.5 660) --- 1_7_5.363(w)/src/shs.c Thu, 31 Oct 2002 14:50:24 -0600 dunemush (pennmush/b/18_shs.c 1.6 660) *************** *** 23,29 **** --- 23,33 ---- #include "copyrite.h" #include "config.h" + #ifdef I_STRING #include + #else + #include + #endif #include "shs.h" *** 1_7_5.313/src/cmdlocal.dst Mon, 18 Jun 2001 10:36:58 -0500 dunemush (pennmush/b/21_cmdlocal.d 1.8 660) --- 1_7_5.363(w)/src/cmdlocal.dst Thu, 31 Oct 2002 14:50:22 -0600 dunemush (pennmush/b/21_cmdlocal.d 1.9 660) *************** *** 59,65 **** /* Called during the command init sequence. ! * This is where you'd put calls to add_command to insert a local * command into the command hash table. Any command you add here * will be auto-aliased for you. */ --- 59,65 ---- /* Called during the command init sequence. ! * This is where you'd put calls to command_add to insert a local * command into the command hash table. Any command you add here * will be auto-aliased for you. */ *** 1_7_5.313/src/SWITCHES Sat, 23 Feb 2002 14:37:05 -0600 dunemush (pennmush/b/22_SWITCHES 1.12.1.2 600) --- 1_7_5.363(w)/src/SWITCHES Wed, 30 Oct 2002 14:26:22 -0600 dunemush (pennmush/b/22_SWITCHES 1.12.1.3 600) *************** *** 1,9 **** --- 1,11 ---- ACCESS ADD + AFTER ALL ANY ATTRIBS BAN + BEFORE BLIND BRIEF CHECK *** 1_7_5.313/src/switchinc.c Thu, 19 Sep 2002 22:15:07 -0500 dunemush (pennmush/b/32_switchinc. 1.3.1.2.1.6.1.18.1.2.1.2.2.5.1.4.2.4.1.1.1.2.1.5.1.2.1.5.2.1.1.19 660) --- 1_7_5.363(w)/src/switchinc.c Thu, 31 Oct 2002 14:50:25 -0600 dunemush (pennmush/b/32_switchinc. 1.3.1.2.1.6.1.18.1.2.1.2.2.5.1.4.2.4.1.1.1.2.1.5.1.2.1.5.2.1.1.25 660) *************** *** 2,11 **** --- 2,13 ---- SWITCH_VALUE switch_list[] = { {"ACCESS", SWITCH_ACCESS}, {"ADD", SWITCH_ADD}, + {"AFTER", SWITCH_AFTER}, {"ALL", SWITCH_ALL}, {"ANY", SWITCH_ANY}, {"ATTRIBS", SWITCH_ATTRIBS}, {"BAN", SWITCH_BAN}, + {"BEFORE", SWITCH_BEFORE}, {"BLIND", SWITCH_BLIND}, {"BRIEF", SWITCH_BRIEF}, {"CHECK", SWITCH_CHECK}, *************** *** 130,134 **** {"WIZARD", SWITCH_WIZARD}, {"YES", SWITCH_YES}, {"ZONE", SWITCH_ZONE}, ! {NULL, 0} }; --- 132,136 ---- {"WIZARD", SWITCH_WIZARD}, {"YES", SWITCH_YES}, {"ZONE", SWITCH_ZONE}, ! {NULL, 0} }; *** 1_7_5.313/src/strutil.c Thu, 19 Sep 2002 22:15:07 -0500 dunemush (pennmush/b/33_strutil.c 1.28.1.3.1.3.1.7.2.1.1.2.1.1.1.1.1.1.1.9 660) --- 1_7_5.363(w)/src/strutil.c Thu, 31 Oct 2002 14:50:25 -0600 dunemush (pennmush/b/33_strutil.c 1.28.1.3.1.3.1.7.2.1.1.2.1.1.1.1.1.1.1.15 660) *************** *** 1336,1341 **** --- 1336,1343 ---- static int is_ansi_code(const char *s); static int is_start_html_code(const char *s) __attribute__ ((__unused__)); static int is_end_html_code(const char *s); + #define is_end_ansi_code(s) (!strncmp((s),ANSI_NORMAL,strlen(ANSI_NORMAL))) + static int is_ansi_code(const char *s) *************** *** 1373,1380 **** safe_ansi_string(ansi_string * as, size_t start, size_t len, char *buff, char **bp) { ! int p; int in_ansi = 0; if (!as) return 1; --- 1375,1383 ---- safe_ansi_string(ansi_string * as, size_t start, size_t len, char *buff, char **bp) { ! int p, q; int in_ansi = 0; + int in_html = 0; if (!as) return 1; *************** *** 1384,1432 **** if (start > as->len || len == 0 || as->len == 0) return safe_str("", buff, bp); ! /* Find the starting codes */ ! if (as->codes[start] == NULL) { ! for (p = start - 1; p >= 0; p--) { ! if (as->codes[p]) { ! if (!is_end_html_code(as->codes[p])) { ! if (strcmp(as->codes[p], ANSI_NORMAL) != 0) { ! if (safe_str(as->codes[p], buff, bp)) ! return 1; ! in_ansi = 1; ! } ! } ! break; ! } } } ! /* Copy the text */ for (p = (int) start; p < (int) (start + len) && p < (int) as->len; p++) { if (as->codes[p]) { if (safe_str(as->codes[p], buff, bp)) return 1; ! if (strcmp(ANSI_NORMAL, as->codes[p]) == 0) in_ans