This is 1.7.7p40-1.8.1p0 patch. After applyig this patch to PennMUSH 1.7.7p40, you will have version 1.8.1p0. But if you don't have any good reason not to, it's better to start with a fresh 1.8.1p0 tarball. To apply this patch, save it to a file in your top-level MUSH directory, and do the following: patch -p1 < 1.7.7p40-1.8.1p0.patch make clean 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. On the off chance they appear not to be, simply rm them and re-run make. Then @shutdown and restart your MUSH. - Alan/Javelin *** 1_7_7.1250/Patchlevel Wed, 01 Dec 2004 20:21:44 -0600 dunemush (pennmush/5_Patchlevel 1.17.1.11.1.42 600) --- 1_8_1.108(w)/Patchlevel Sat, 01 Jan 2005 10:41:47 -0600 dunemush (pennmush/5_Patchlevel 1.17.1.11.1.44 600) *************** *** 1,2 **** Do not edit this file. It is maintained by the official PennMUSH patches. ! This is PennMUSH 1.7.7p40 --- 1,2 ---- Do not edit this file. It is maintained by the official PennMUSH patches. ! This is PennMUSH 1.8.1p0 *** 1_7_7.1250/README Mon, 11 Nov 2002 20:39:30 -0600 dunemush (pennmush/4_README 1.13 600) --- 1_8_1.108(w)/README Wed, 02 Feb 2005 09:20:26 -0600 dunemush (pennmush/4_README 1.15 600) *************** *** 1,5 **** ============================================================================ ! User's Guide to PennMUSH 1.7.x ============================================================================ Some of this Guide was written by Amberyl, and is used with permission. --- 1,5 ---- ============================================================================ ! User's Guide to PennMUSH 1.8.x ============================================================================ Some of this Guide was written by Amberyl, and is used with permission. *************** *** 76,84 **** In August of 1997, Ralph Melton left the PennMUSH development team, and Thorvald Natvig joined as a new member. Many thanks go to Ralph who contributed much time, code, and good cheer to PennMUSH. ! ! Javelin, in conjunction with Talek (T. Alexander Popiel) and Thorvald ! Natvig, are the current PennMUSH development team. A MUSH manual should be available at ftp.digex.net, ftp.math.okstate.edu, primerd.prime.com, or from wherever you got this code from. The manual --- 76,90 ---- In August of 1997, Ralph Melton left the PennMUSH development team, and Thorvald Natvig joined as a new member. Many thanks go to Ralph who contributed much time, code, and good cheer to PennMUSH. ! Since that time, the development team has gained and lost members. ! The current membership is usually listed at the top of the ! latest CHANGES. file. ! ! In November 2002, with the release of PennMUSH 1.7.6, PennMUSH ! began using the Artistic License (see the COPYRITE file), ! an open source/free software license. This license was ! simultaneously adopted by TinyMUSH (2.2.5, 3.x) and TinyMUX to ! facilitate code sharing and widen use. A MUSH manual should be available at ftp.digex.net, ftp.math.okstate.edu, primerd.prime.com, or from wherever you got this code from. The manual *************** *** 87,93 **** If you are planning on modifying the source code to PennMUSH, you'll probably want Javelin's Guide for PennMUSH Gods, which should be available where you got this code, or, in hypertext, as ! http://pennmush.org/~alansz/guide.html Enjoy! --- 93,100 ---- If you are planning on modifying the source code to PennMUSH, you'll probably want Javelin's Guide for PennMUSH Gods, which should be available where you got this code, or, in hypertext, as ! http://pennmush.org/~alansz/guide.html. More recent versions ! may be available at http://community.pennmush.org. Enjoy! *** 1_7_7.1250/FAQ Mon, 11 Nov 2002 20:39:30 -0600 dunemush (pennmush/6_FAQ 1.4 600) --- 1_8_1.108(w)/FAQ Tue, 21 Dec 2004 10:14:22 -0600 dunemush (pennmush/6_FAQ 1.5 600) *************** *** 37,43 **** advanced to 1.7.0. Currently, the active development team is Javelin, Talek, and Raevnos. ! The stable version is 1.7.6, and the development version is 1.7.7. 1. How do I ask for help with a problem? --- 37,43 ---- advanced to 1.7.0. Currently, the active development team is Javelin, Talek, and Raevnos. ! The stable version is 1.8.0, and the development version is 1.8.1. 1. How do I ask for help with a problem? *** 1_7_7.1250/game/txt/hlp/penntop.hlp Wed, 01 Dec 2004 20:21:44 -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.12.1.1.1.1.1.8.1.11.1.1.1.3 600) --- 1_8_1.108(w)/game/txt/hlp/penntop.hlp Mon, 30 May 2005 16:51:59 -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.12.1.1.1.1.1.8.1.11.1.1.1.3.2.2 600) *************** *** 547,553 **** order of possible commands: Special game commands: WHO, QUIT, etc. - "home" command Single-token commands: ", :, ;, + Exits in the room @-commands --- 547,552 ---- *************** *** 1049,1056 **** no_quota Has an unlimited quota open_anywhere Can @open a link from any room. pemit_all Can @pemit to HAVEN/ulocked players. - poll Can use @poll command. player_create Can use @pcreate command. queue Has queue limit equal to the size of the database. quota Can use @quota commands on other players. search Can do @search, @stats, and @entrances on anything. --- 1048,1056 ---- no_quota Has an unlimited quota open_anywhere Can @open a link from any room. pemit_all Can @pemit to HAVEN/ulocked players. player_create Can use @pcreate command. + poll Can use @poll command. + pueblo_send Can use xch_cmd and send pueblo tags queue Has queue limit equal to the size of the database. quota Can use @quota commands on other players. search Can do @search, @stats, and @entrances on anything. *************** *** 1574,1579 **** --- 1574,1580 ---- (continued in help SUBSTITUTIONS2) & SUBSTITUTIONS2 + & %2 If the ENACTOR's gender is set, you can use these substitutions to get the right pronoun for him/her: %s = subjective pronoun: he, she, it, they *************** *** 1590,1595 **** --- 1591,1597 ---- (continued in help substitutions3) & SUBSTITUTIONS3 + & %3 Other substitutions: %0-%9 = the contents of the REGISTERS 0-9, respectively %@ = the caller's dbref number. Initially same as %#, changes when *************** *** 1598,1607 **** --- 1600,1611 ---- %L = the dbref of the ENACTOR's location. %c = text of the last command, _before_ evaluation. %? = The current function invocation and depth counts. + %+ = The number of arguments passed to the current function. %qN = the equivalent of r(N), a register set by a setq() function. (continued in help substitutions4) & SUBSTITUTIONS4 + & %4 Example: @sex me=male *************** *** 1940,1945 **** --- 1944,1951 ---- to @command or @function. noparse Function arguments are not evaluated. Only applies to @functions. + localize %q-registers are saved/restored when evaluating, as if + the @function were wrapped in localize(). Commands can also use the 'noplayer' restriction, which stops player objects from using the command, as well as any generic *** 1_7_7.1250/game/txt/hlp/pennmail.hlp Mon, 05 Apr 2004 00:46:42 -0500 dunemush (pennmush/15_pennmail.h 1.11 600) --- 1_8_1.108(w)/game/txt/hlp/pennmail.hlp Fri, 25 Feb 2005 16:26:31 -0600 dunemush (pennmush/15_pennmail.h 1.14 600) *************** *** 23,30 **** Message #'s, in which case you send to the sender of that message. An alias name (see help @malias) ! See also the following topics: mail-sending mail-reading ! mail-folders mail-other mail-admin @malias & mail-reading @mail --- 23,31 ---- Message #'s, in which case you send to the sender of that message. An alias name (see help @malias) ! See also the following topics: mail-sending mail-reading ! mail-folders mail-forward mail-other mail-admin ! @malias & mail-reading @mail *************** *** 208,210 **** --- 209,317 ---- number of aliases and members of aliases in use. @malias/chown is a wizard-only command that changes the owner of an alias. @malias/nuke is a God-only command that destroys all aliases. + & Mail functions + Mail functions work with @mail. + + folderstats() mail() maildstats() mailfrom() mailfstats() + mailsend() mailstats() mailstatus() mailsubject() mailtime() + malias() + + & FOLDERSTATS() + folderstats() + folderstats(folder#) + folderstats(player) + folderstats(player,folder#) + + FOLDERSTATS() returns the number of read, unread, and cleared messages + in a specific folder, or, if none is given, the player's current + folder. Only Wizards may use forms which get other players' mail + information. + & MAIL() + mail() + mail() + mail([:]) + mail(, [:]) + + Without arguments, mail() returns the number of messages in + all the player's mail folders. With a player name argument, + mail() returns the number of read, unread, and cleared messages + has in all folders. Only Wizards can use this on other players. + + When given numeric arguments, mail() returns the text of the + corresponding message in the current folder. The message number + may also be prefaced by the folder number and a colon, to indicate + a message in a different folder. + + Example: + > think mail(3:2) + (text of the second message in the player's third folder) + + & MAILFROM() + & MAILTIME() + & MAILSTATUS() + & MAILSUBJECT() + mailfrom([,] [:]) + mailtime([,] [:]) + mailstatus([,] [:]) + mailsubject([,] [:]) + + mailfrom() returns the dbref number of the sender of a mail message. + mailtime() is similar, but returns the time the mail was sent. + mailsubject() is similar, but returns the subject of the message. + mailstatus() returns the mail's status characters (as per + @mail/list) + + & MAILSTATS() + & MAILDSTATS() + & MAILFSTATS() + mailstats([]) + maildstats([]) + mailfstats([]) + + mail*stats() functions return data like @mail/*stats does. You + either must use this on yourself, or you must be a wizard. The + information will be joined together as a space separated list of + numbers. + + Example: + > think mailstats(One) + <# sent> <# received> + > think mailfstats(One) + <# sent> <# sent unread> <# sent cleared> <# sent bytes> <# received> + <# received unread> <# received cleared> <# received bytes> + & MAILSEND() + mailsend(,[/]) + + This function sends a message to a player, just like @mail/send. + It returns nothing if successful, or an error message. + & MALIAS() + malias([]) + malias() + malias([,]) + + With no arguments, malias() returns the list of all malias names + which are visible to the player. With two arguments, returns the list + of dbrefs that are members of the given malias, delimited by + . + + With one argument, the behavior is ambiguous. If the argument + matches a malias, returns the list of dbrefs that are memebrs of + the malias, space-delimited. If not, it's treated as a no-argument + case with a delimiter. + & mail-forward + & @mailforwardlist + @mailforwardlist me = + @lock/mailforward me = + + By setting a @mailforwardlist attribute, a player can direct that + @mail they receive should be delivered to the specified list + of dbrefs of other players. The list may include the player's own + dbref, in which case the player will receive a copy of the message, + or omit it, in which case the message will be delivered to those listed + but the player will not receive a copy. + + To deliver messages to other players this way, you must control them + (i.e. you're delivering to yourself or you're a wizard) or + pass their @lock/mailforward. An empty @lock/mailforward disallows + forwarding to you, and is the default. + *** 1_7_7.1250/game/txt/hlp/pennfunc.hlp Fri, 03 Dec 2004 17:50:18 -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.9.1.1.1.1.1.3.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.24 600) --- 1_8_1.108(w)/game/txt/hlp/pennfunc.hlp Thu, 02 Jun 2005 17:07:33 -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.9.1.1.1.1.1.3.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.26.1.1.1.2 600) *************** *** 95,105 **** nor() not() or() t() xor() See also: BOOLEAN VALUES, @config - & Channel functions - Channel functions work with the channel system. - - cflags() channels() clock() cowner() ctitle() - cwho() & Communication functions Communication functions are side-effect functions that send a message to an object or objects. --- 95,100 ---- *************** *** 131,152 **** & Information functions Information functions return values related to objects or the game. ! andflags() andlflags() config() controls() ctime() ! elock() findable() flags() fullname() hasattr() ! hasattrp() hasflag() haspower() hastype() iname() ! lflags() lock() lstats() money() mtime() ! mudname() name() nattr() nearby() objid() ! objmem() orflags() orlflags() playermem() poll() ! powers() quota() restarts() type() version() ! visible() ! ! & Mail functions ! Mail functions work with @mail. ! ! folderstats() mail() maildstats() mailfrom() mailfstats() ! mailsend() mailstats() mailstatus() mailsubject() mailtime() ! malias() ! & List functions List functions take at least one list of elements and return transformed lists or one or more members of those lists. Most of these functions --- 126,140 ---- & Information functions Information functions return values related to objects or the game. ! alias() andflags() andlflags() config() controls() ! ctime() elock() findable() flags() fullalias() ! fullname() hasattr() hasattrp() hasflag() haspower() ! hastype() iname() lflags() lock() lstats() ! money() mtime() mudname() name() nattr() ! nearby() objid() objmem() orflags() orlflags() ! playermem() poll() powers() quota() restarts() ! type() version() visible() ! & List functions List functions take at least one list of elements and return transformed lists or one or more members of those lists. Most of these functions *************** *** 227,240 **** & Utility functions These functions don't quite fit into any other category. ! allof() ansi() atrlock() beep() checkpass() ! clone() create() die() dig() firstof() ! functions() isdbref() isint() isnum() isword() ! localize() link() list() lnum() null() ! objeval() open() pcreate() r-function rand() ! s-function scan() set() setq() setr() ! soundex() soundslike() tel() textfile() valid() ! wipe() @@() & @@() & NULL() --- 215,228 ---- & Utility functions These functions don't quite fit into any other category. ! allof() ansi() atrlock() attrib_set() beep() ! checkpass() clone() create() die() dig() ! firstof() functions() isdbref() isint() isnum() ! isword() localize() link() list() lnum() ! null() objeval() open() pcreate() r-function ! rand() s-function scan() set() setq() ! setr() soundex() soundslike() tel() textfile() ! valid() wipe() @@() & @@() & NULL() *************** *** 525,530 **** --- 513,535 ---- When given a second argument of "on" (or "off"), attempts to lock (unlock) the specified attribute, as per @atrlock. + & ATTRIB_SET() + attrib_set(/[, ]) + + Sets or clears an attribute. With a value, it sets the attribute, + without one, it clears the attribute. This is an easier-to-read + replacement for the old set(, :) notation, + and a less destructive replacement for wipe() that won't destroy + entire attribute trees in one shot. + + If there is a second argument, then attrib_set() will create an + attribute, even if the second argument is empty (in which case + attrib_set() will create an empty attribute). This means that + attrib_set(me/foo,%0) will _always_ create an attribute. + + Of course, if the empty_attrs configuration option is turned off, + then the above paragraph doesn't apply. See @config attribs. + & BAND() band(,,...) *************** *** 614,674 **** Returns the least integral value greater than or equal to . See also: floor(), bound(), round(), trunc() - & CEMIT() - cemit(, [, ]) - - Sends a message to all players listening to the given chat channel. - See help @cemit for details. - - If the third argument is a true value, the channel name will be - prepended to the message, behaving like @cemit/noisy. & CENTER() ! center(,[,]) This function will center within a field characters wide, ! using characters for padding on either end of the string for ! centering. If is not specified, a space will be used. Example: > say center(X,5,-) You say, "--X--" ! > say center(.NEAT.,15) ! You say, " .NEAT. " ! ! & CFLAGS() ! cflags() ! cflags(,) ! ! With one argument, cflags() returns a list of flags set on the ! given channel, represented as a string of characters. See ! 'help channel-list' for the list of flags (they appear in the ! "Access" column). You must be able to see the channel to use this ! function. - With two arguments, cflags() returns a list of flags for that - object on that channel, currently a string consisting of zero - or more of "G" (gagging), "Q" (muted), and "H" (hidden). - You must be able to see that channel and to examine the object - to use this function. If the object is not on the channel, an - error is returned. - & CHANNELS() - channels([]) - channels() - channels([,]) - - With no arguments, channels() returns the list of all channel names - which are visible to the player. With two arguments, returns the list - of channel names to which the object is listening, delimited by - . - - With one argument, the behavior is ambiguous. If the argument - matches an object, returns the list of names to which the object - is listening, space-delimited. If not, it's treated as a no-argument - case with a delimiter. - - If you don't have permission to examine the object, you only see - those channels to which the object belong for which you have - permission to join (or are joined to). & CHECKPASS() checkpass(,) --- 619,646 ---- Returns the least integral value greater than or equal to . See also: floor(), bound(), round(), trunc() & CENTER() ! center(,[,[,]]) This function will center within a field characters wide, ! using the string for padding on the left side of the string, ! and for padding on the right side. defaults ! to the mirror-image of if not specified. defaults to ! a space if neither nor are specified. ! ! If divides into uneven portions, the left side ! will be one character shorter than the right side. Example: > say center(X,5,-) You say, "--X--" ! > say center(X,5,-=) ! You say, "-=X=-" ! > say center(.NEAT.,15,-,=) ! You say, "----.NEAT.=====" ! > say center(hello,16,12345) ! You say, "12345hello543215" & CHECKPASS() checkpass(,) *************** *** 691,706 **** 65 > think chr(65) A - & CLOCK() - clock([/][, ]) - - With one argument, returns the value of a lock on a channel, if you - own the channel or are See_All. If no locktype is given, "JOIN" - is assumed. - With two arguments, sets the lock if you would be able to do so via - @clock. - - See also: @clock & CLONE() clone() --- 663,668 ---- *************** *** 854,863 **** You say, "0" See HELP CTU() for more on the angle type. - & COWNER() - cowner() - - Returns the dbref of the owner of a channel. & PCREATE() pcreate(,) --- 816,821 ---- *************** *** 877,888 **** If creation times are enabled, this function will return the date and time that the object was created, if the player is able to examine the object. - & CTITLE() - ctitle(,) - - Returns @chan/title on . You must either - be able to examine the object, or it must visible be on a channel - which you are allowed to join. & CTU() ctu(, , ) --- 835,840 ---- *************** *** 897,907 **** Example: > say 90 degrees is [ctu(90, d, r)] radians You say, "90 degrees is 1.570796 radians" - & CWHO() - cwho() - - This returns a list of connected dbrefs who are on . - When used by mortals, hidden/DARK players do not appear on the list. & DEC() dec() dec() --- 849,854 ---- *************** *** 921,926 **** --- 868,883 ---- Note especially the last example, which will trip you up if you use floating point numbers with dec() and expect it to work like sub(). See also: inc() + & DECOMPOSE() + decompose() + + decompose() works like escape() with the additional caveat that it inserts + parse-able characters to recreate exactly after one parsing. It + takes care of multiple spaces, '%r's, and '%t's. + + Someday, perhaps, it will also escape ansi() in a nice way. + + See also: @decompile2 & DECRYPT() decrypt(, ) *************** *** 1222,1231 **** Returns e to the power of . & EXTRACT() ! extract(,,[,]) This function returns elements of a list, counting ! from the element. For example: think extract(This is a test string,3,2) --- 1179,1191 ---- Returns e to the power of . & EXTRACT() ! extract([,[,[,]]]) This function returns elements of a list, counting ! from the element. If is not specified, the ! default is 1, so extract(list,3) acts like elements(list,3). ! If is not specified, the default is the 1, so ! extract(list) acts like first(list). For example: think extract(This is a test string,3,2) *************** *** 1383,1398 **** You say, "15" See also: anonymous attributes - & FOLDERSTATS() - folderstats() - folderstats(folder#) - folderstats(player) - folderstats(player,folder#) - - FOLDERSTATS() returns the number of read, unread, and cleared messages - in a specific folder, or, if none is given, the player's current - folder. Only Wizards may use forms which get other players' mail - information. & FOLLOWERS() followers() --- 1343,1348 ---- *************** *** 1495,1501 **** extract(list, match(list, pattern, delimiter), 1, delimiter) or the regular expression variation thereof. ! See also: match(), extract(), element(), elements(), index(), regmatch() & GRABALL() & REGRABALL() & REGRABALLI() --- 1445,1452 ---- extract(list, match(list, pattern, delimiter), 1, delimiter) or the regular expression variation thereof. ! See also: match(), extract(), element(), elements(), index(), regmatch(), ! graball() & GRABALL() & REGRABALL() & REGRABALLI() *************** *** 2238,2245 **** & SEARCH() & LSEARCHR() & CHILDREN() ! lsearch([, [, [, [, ]]]]) ! lsearchr([, [, [, [, ]]]]) children() This function is similar to the @search command, except it returns --- 2189,2196 ---- & SEARCH() & LSEARCHR() & CHILDREN() ! lsearch([, ,...]) ! lsearchr([, ,...]) children() This function is similar to the @search command, except it returns *************** *** 2247,2258 **** costs 100 pennies to perform. The function must have at least three arguments. Wizards can specify "all" or for the field; mortals must use "me". If you do not want to restrict ! something, use "none" for and/or . and ! restrict the search to that range of db#'s and are specified as ! dbrefs ("#2") with the #. The possible es and s are the same as those accepted ! by @search. See 'help @search' for information about them. children() is exactly the same as lsearch(,parent,), using "all" for See_All/Search_All players and "me" for others. --- 2198,2209 ---- costs 100 pennies to perform. The function must have at least three arguments. Wizards can specify "all" or for the field; mortals must use "me". If you do not want to restrict ! something, use "none" for and/or . The possible es and s are the same as those accepted ! by @search. lsearch() can accept multiple class/restriction pairs, and ! applies them in a boolean "AND" fashion, returning only dbrefs that ! fulfill all restrictions. See 'help @search' for information about them. children() is exactly the same as lsearch(,parent,), using "all" for See_All/Search_All players and "me" for others. *************** *** 2275,2282 **** Examples: ! lsearch(all, flags, Wc) <-- lists all connected wizards. lsearch(me, type, room) <-- lists all rooms owned by me. lsearch(me, type, room, 100, 200) <-- same, but only w/db# 100-200 lsearch(all, eplayer, \[eq(money(##),100)\]) <-- lists all players with 100 coins. --- 2226,2234 ---- Examples: ! lsearch(all, flags, Wc) <-- lists all connected wizards. lsearch(me, type, room) <-- lists all rooms owned by me. + lsearch(me, type, room, flag, W) <-- lists Wizard rooms owned by me. lsearch(me, type, room, 100, 200) <-- same, but only w/db# 100-200 lsearch(all, eplayer, \[eq(money(##),100)\]) <-- lists all players with 100 coins. *************** *** 2343,2421 **** 's point of view. See also: mwho(), nwho(), xwho() - & MAIL() - mail() - mail() - mail([:]) - mail(, [:]) - - Without arguments, mail() returns the number of messages in - all the player's mail folders. With a player name argument, - mail() returns the number of read, unread, and cleared messages - has in all folders. Only Wizards can use this on other players. - - When given numeric arguments, mail() returns the text of the - corresponding message in the current folder. The message number - may also be prefaced by the folder number and a colon, to indicate - a message in a different folder. - - Example: - > think mail(3:2) - (text of the second message in the player's third folder) - - & MAILFROM() - & MAILTIME() - & MAILSTATUS() - & MAILSUBJECT() - mailfrom([,] [:]) - mailtime([,] [:]) - mailstatus([,] [:]) - mailsubject([,] [:]) - - mailfrom() returns the dbref number of the sender of a mail message. - mailtime() is similar, but returns the time the mail was sent. - mailsubject() is similar, but returns the subject of the message. - mailstatus() returns the mail's status characters (as per - @mail/list) - - & MAILSTATS() - & MAILDSTATS() - & MAILFSTATS() - mailstats([]) - maildstats([]) - mailfstats([]) - - mail*stats() functions return data like @mail/*stats does. You - either must use this on yourself, or you must be a wizard. The - information will be joined together as a space separated list of - numbers. - - Example: - > think mailstats(One) - <# sent> <# received> - > think mailfstats(One) - <# sent> <# sent unread> <# sent cleared> <# sent bytes> <# received> - <# received unread> <# received cleared> <# received bytes> - & MAILSEND() - mailsend(,[/]) - - This function sends a message to a player, just like @mail/send. - It returns nothing if successful, or an error message. - & MALIAS() - malias([]) - malias() - malias([,]) - - With no arguments, malias() returns the list of all malias names - which are visible to the player. With two arguments, returns the list - of dbrefs that are members of the given malias, delimited by - . - - With one argument, the behavior is ambiguous. If the argument - matches a malias, returns the list of dbrefs that are memebrs of - the malias, space-delimited. If not, it's treated as a no-argument - case with a delimiter. - & MAP() map([/],[,][, ]) --- 2295,2300 ---- *************** *** 2670,2675 **** --- 2549,2577 ---- non-hidden players. It's exactly the same as lwho() used by a mortal, and is suitable for use on privileged global objects who need an unprivileged who-list. + & ALIAS() + alias([,]) + + Alias returns the alias of . If multiple aliases are set, + alias returns the first component of the alias. + + If function side effects are allowed, this function, given two arguments, + acts just like @alias =. + + Related functions: FULLALIAS() + + & FULLALIAS() + fullalias() + + fullalias() returns the alias of . It is identical to + alias() except when multiple aliases are set, fullalias() returns the + complete alias list. + + >"[fullalias(Noltar)] + You say, "$;No;Nol;Noli;Nolt" + + Related functions: ALIAS() + & NAME() name([,]) name([, ]) *************** *** 3295,3303 **** flags, set attributes, and many other things. The two arguments to the function are the same as the arguments that would appear on either side of the '=' in @set. This function returns nothing. ! ! Note that you can't clear an attribute with set(), though ! you can make it an empty attribute. Use wipe() to clear attributes. & SETDIFF() setdiff(, [, ][, ][, ]) --- 3197,3206 ---- flags, set attributes, and many other things. The two arguments to the function are the same as the arguments that would appear on either side of the '=' in @set. This function returns nothing. ! ! The attribute setting ability of set() is deprecated. You should ! use attrib_set() instead; it's easier to read, and allows you to ! clear attributes, too. & SETDIFF() setdiff(, [, ][, ][, ]) *************** *** 3329,3387 **** & SETQ() & SETR() ! setq(,) ! setr(,) The setq() and setr() functions are used to copy strings into local registers. setq() returns a null string; it is a purely "side effect" ! function. setr() returns the value stored. ! ! There are thirty-six local registers, numbered 0 through 9 and A through Z. ! They are cleared at the start of each new queue cycle (i.e. whenever ! a new command is evaluated). They are most useful for storing ! complex function evaluations which are used repeatedly within a ! single command. ! ! Registers set via setq() or setr() can be accessed via the r() function, or via the %qN percent-substitution. ! See "help SETQ2" for examples of its use. ! & SETQ2 ! The setq() function is probably best used at the start of the string being manipulated, such as in the following example: ! ! &TEST object=[strlen(%0)] ! &CMD object=$test *:"[setq(0,u(TEST,%0))]Test. %0 has length [r(0)]. ! test Foo ! > Object says, "Test. Foo has length 3." ! ! In this case, it is a waste to use setq(), since we only use the function ! result once, but if TEST was a complex function being used multiple times ! within the same command, it would be much more efficient to use the local ! register, since TEST would then only be evaluated once. ! ! setq() can thus be used to improve the readability of MUSH code, as well ! as to cut down the amount of time needed to do complex evaluations. ! See "help SETQ3" for scoping rules of setq(). ! & SETQ3 The registers set by setq() can be used in later commands in the same thread. That is, the registers are set to null on all $-commands, ! ^-commands, A-attribute triggers, etc., but are then retained from ! that point forward through the execution of all your code. Code ! branches like @wait and @switch retain the register values from the ! time of the branch, so the code: ! say setr(a,foo); @wait 0=say %qa; say setr(a,bar) ! produces the following when executed by an object: ! ! Object says "foo" ! Object says "bar" ! Object says "foo" & SETUNION() setunion(, [, ][, ][, ]) --- 3232,3290 ---- & SETQ() & SETR() ! setq(,[,,,...]) ! setr(,[,,,...]) The setq() and setr() functions are used to copy strings into local registers. setq() returns a null string; it is a purely "side effect" ! function. setr() returns the value stored. Multiple registers can be ! assigned with a single setq() or setr(), with additional pairs of ! registers and values in the function's arguments. In this case, ! setr() returns the value stored in the first register listed. ! ! There are thirty-six local registers, numbered 0 through 9 and A ! through Z. They are cleared at the start of each new queue cycle ! (i.e. whenever a new command is evaluated). They are most useful for ! storing complex function evaluations which are used repeatedly within ! a single command. ! ! Registers set via setq() or setr() can be accessed via the r() function, or via the %qN percent-substitution. ! See "help SETQ2" for examples of its use. ! & SETQ2 ! The setq() function is probably best used at the start of the string being manipulated, such as in the following example: ! ! &TEST object=[strlen(%0)] &CMD object=$test ! *:"[setq(0,u(TEST,%0))]Test. %0 has length [r(0)]. test Foo > ! Object says, "Test. Foo has length 3." ! ! In this case, it is a waste to use setq(), since we only use the ! function result once, but if TEST was a complex function being used ! multiple times within the same command, it would be much more efficient ! to use the local register, since TEST would then only be evaluated once. ! ! setq() can thus be used to improve the readability of MUSH code, as ! well as to cut down the amount of time needed to do complex evaluations. ! See "help SETQ3" for scoping rules of setq(). ! & SETQ3 The registers set by setq() can be used in later commands in the same thread. That is, the registers are set to null on all $-commands, ! ^-commands, A-attribute triggers, etc., but are then retained from that ! point forward through the execution of all your code. Code branches ! like @wait and @switch retain the register values from the time of ! the branch, so the code: ! say setr(a,foo); @wait 0=say %qa; say setr(a,bar) ! produces the following when executed by an object: ! ! Object says "foo" Object says "bar" Object says "foo" & SETUNION() setunion(, [, ][, ][, ]) *************** *** 3735,3741 **** strmatch(Foo bar baz,*Foo) will return 0. strmatch(Foo bar baz,*o*a*) will return 1. & STRREPLACE() ! strreplace(string, start, length, text) Returns string with the characters starting at replaced by . As with other string functions, the first character is at --- 3638,3644 ---- strmatch(Foo bar baz,*Foo) will return 0. strmatch(Foo bar baz,*o*a*) will return 1. & STRREPLACE() ! strreplace(, , , ) Returns string with the characters starting at replaced by . As with other string functions, the first character is at *************** *** 4173,4183 **** attribute, %# refers to the original enactor and not the 'calling' object; 'me' refers to the object that supplied the attribute. ! However, unlike the u() function, the global registers r(0)-r(9) and ! r(A)-r(Z) (%q0-%q9, %qa-%qz) are preserved in their initial state. This ! means that functions "below" the level of the u() can reset global ! registers for temporary calculations, without needing to worry about ! "clobbering" the original values. This makes ulocal() particularly useful for global or shared code which calls arbitrary u() functions, where global register values need to be --- 4076,4087 ---- attribute, %# refers to the original enactor and not the 'calling' object; 'me' refers to the object that supplied the attribute. ! However, unlike the u() function, the evaluated attribute receives ! only a temporary copy of the global registers r(0)-r(9) and ! r(A)-r(Z) (%q0-%q9, %qa-%qz). This means that functions "below" the ! level of the ulocal() can reset global registers for temporary ! calculations, without needing to worry about "clobbering" the original ! values (which are restored when ulocal() returns). This makes ulocal() particularly useful for global or shared code which calls arbitrary u() functions, where global register values need to be *************** *** 4397,4403 **** & WIPE() wipe(/) ! This function is equivalent to @wipe. It returns nothing. & WORDPOS() wordpos(, [, ]) --- 4301,4309 ---- & WIPE() wipe(/) ! This function is equivalent to @wipe. It returns nothing. Like ! @wipe, this function will destroy entire attribute trees; for ! more judicious deletion, use attrib_set(). & WORDPOS() wordpos(, [, ]) *** 1_7_7.1250/game/txt/hlp/pennflag.hlp Mon, 31 May 2004 08:41:25 -0500 dunemush (pennmush/17_pennflag.h 1.1.1.1.1.2.1.1.1.2.1.1.1.2.1.1.2.1.2.1.1.1.1.2.1.4.1.2.2.17 600) --- 1_8_1.108(w)/game/txt/hlp/pennflag.hlp Wed, 02 Feb 2005 13:45:00 -0600 dunemush (pennmush/17_pennflag.h 1.1.1.1.1.2.1.1.1.2.1.1.1.2.1.1.2.1.2.1.1.1.1.2.1.4.1.2.2.18 600) *************** *** 123,128 **** --- 123,149 ---- messages and broadcast them to other rooms) to be eliminated. The message is propagated only to the next room and no farther, so there is no danger of looping. + & TRACK_MONEY + Flag: TRACK_MONEY (players) + + By setting the TRACK_MONEY flag, a player can determine which + objects may be using their money. TRACK_MONEY reports all charges + to a player and their objects except the queue deposit. + + > @set me=TRACK_MONEY + > give Javelin=50 + You give 50 pennies to Javelin. + GAME: Walker spent 50 pennies! + > @create foo + GAME: Walker spent 10 pennies! + Created: Object #345. + > @for foo=@search + GAME: foo(#345) spent 100 pennies! + (search results) + > + GAME: Object Walker(#123) lost a Penny to queue loss. + + See also: no_pay & BUILDER BUILDER *** 1_7_7.1250/game/txt/hlp/penncmd.hlp Wed, 01 Dec 2004 10:07:15 -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.10.1.1.1.1.1.1.1.1.1.1.1.46 600) --- 1_8_1.108(w)/game/txt/hlp/penncmd.hlp Sun, 20 Mar 2005 14:07:46 -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.10.1.1.1.1.1.1.1.1.1.1.1.47.1.4 600) *************** *** 278,296 **** See also: leave, @lfail, @olfail, ACTION LISTS & @alias ! @alias = ! @alias is a special attribute. When a player sets an @alias, he is ! effectively giving himself a secondary name; he can be paged by his ! @alias, and matched with *, and all other game functions which ! look up player names will also accept the alias. The attribute is ! visible to all players. ! Aliases cannot be longer than the limit allowed for player names, cannot contain spaces, and must be unique -- no other player may have the same alias or name as any other player's alias or name. @alias has no effect on non-players. & @allhalt @allhalt --- 278,306 ---- See also: leave, @lfail, @olfail, ACTION LISTS & @alias ! @alias =;[;[;[...]]] ! @alias is a special attribute that lists a player's names; players ! can be paged by their aliases, matched with *, and all other game ! functions which look up player names will also accept an alias. ! The attribute is visible to all players. ! ! A list of aliases, separated by semicolons, may be provided. ! Players should include their usual @name in the alias list, because ! the @name command allows setting name to any alias in the list. ! The number of aliases allowed in the list may be limited by ! the game's administrators through the 'max_aliases' @config parameter. ! ! If the page_aliases config directive is on, the first alias in the ! list is returned along with the player's name. ! Each alias cannot be longer than the limit allowed for player names, cannot contain spaces, and must be unique -- no other player may have the same alias or name as any other player's alias or name. @alias has no effect on non-players. + + See also: @name, alias(), fullalias() & @allhalt @allhalt *************** *** 369,375 **** See also: @success, @osuccess, get, @lock, EXITS, ACTION LISTS & @attribute @attribute ! @attribute/access[/retroactive] = @attribute/delete @attribute/rename = --- 379,385 ---- See also: @success, @osuccess, get, @lock, EXITS, ACTION LISTS & @attribute @attribute ! @attribute/access[/retroactive] = @attribute/delete @attribute/rename = *************** *** 387,394 **** @attribute/access adds a new standard attribute into the table, associating it with the given space-separated list of flags. ! See 'help @set' for possible flags. ! If the /retroactive switch is added, the flags are set on every copy of the attribute that already exists in the database. @attribute/delete removes a standard attribute from the table. --- 397,405 ---- @attribute/access adds a new standard attribute into the table, associating it with the given space-separated list of flags. ! See 'help @set' for possible flags. A flag list of "none" removes ! all flag associations. ! If the /retroactive switch is added, the flags are assigned to every copy of the attribute that already exists in the database. @attribute/delete removes a standard attribute from the table. *************** *** 672,677 **** --- 683,701 ---- for example. More complex things are, obviously, possible. See also: @exitformat, @nameformat, @descformat + & @invformat + @invformat [=] + + Replaces the usual "You are carrying:" format when an object uses the + "inventory" command, by a player-specified format. This is evaluated + as if it were a description or other similar message on the object. + The objects carried are passed as a dbref list in %0. + + One could change the format to 'You've got: Object1 Object2 Object3' + through '@invformat me = You've got: [iter(%0,name(##))]', + for example. More complex things are, obviously, possible. + + See also: inventory & @descformat @descformat [=] *************** *** 852,857 **** --- 876,886 ---- @decompile/skipdefault Don't output commands to set attribute flags if those flags are the defaults for that attribute on that MUSH. + + If an attribute contains special characters, such as %r or %t, or + begins or ends with spaces, then the command sent will be an @set command + that has its special characters escaped, and with such %rs, %ts, and %bs + as to exactly duplicate the attribute as it is currently set. (continued in help @decompile3) & @decompile3 *************** *** 861,868 **** Supplying the /tf switch makes @decompile act exactly as if you typed: @decompile/prefix [/]=FugueEdit >%b ! You can use a string other than "FugueEdit > " by setting your ! TFPREFIX attribute. This is probably a good idea. The /tf switch is handy for grabbing code and placing it right into your input window. To do this: --- 890,900 ---- Supplying the /tf switch makes @decompile act exactly as if you typed: @decompile/prefix [/]=FugueEdit >%b ! You can use a string other than "FugueEdit > " by setting your TFPREFIX ! attribute. You are strongly urged to do so. Using @decompile/tf with ! the default prefix presents the opportunity for a malicious player ! to load your TinyFugue command line with a harmful command for you to ! execute inadvertantly. The /tf switch is handy for grabbing code and placing it right into your input window. To do this: *************** *** 1047,1053 **** i.e. sit down;sit;sit on chair & @edit & @gedit ! @edit / = , @edit / = $, @edit / = ^, --- 1079,1085 ---- i.e. sit down;sit;sit on chair & @edit & @gedit ! @edit[/first] / = , @edit / = $, @edit / = ^, *************** *** 1062,1067 **** --- 1094,1102 ---- If the text contains commas, percent signs, or similar special characters, it usually must be enclosed in curly braces. + + If the /first switch is used, only the first occurrence of + is replaced. See also ATTRIBUTES, edit() & @efail *************** *** 1381,1387 **** All other switches to this command are restricted to God: /disable disables a flag, making it invisible and unusable /enable re-enables a disabled flag ! /alias adds a new alias for an existing flag /letter changes or removes a single-letter alias for an existing flag. /restrict changes flag permissions (see help @flag2) /type changes flag type(s) (see help @flag2) --- 1416,1422 ---- All other switches to this command are restricted to God: /disable disables a flag, making it invisible and unusable /enable re-enables a disabled flag ! /alias adds a new alias for an existing flag; use ! to delete one. /letter changes or removes a single-letter alias for an existing flag. /restrict changes flag permissions (see help @flag2) /type changes flag type(s) (see help @flag2) *************** *** 1610,1615 **** --- 1645,1651 ---- See also: enter, @enter, ENTER_OK, @describe, look, @idescformat & @hook @hook/ [=, ] + @hook/list @hook tells the command parser to evaluate given attributes at certain points in command evaluation. The possible points, indicated by the proper switch: *************** *** 1635,1641 **** 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 --- 1671,1677 ---- the hooks. Leaving out the object and attribute clears an existing hook. Wizards can ! see existing hooks with @command or @hook/list. See HELP @HOOK2 for an example. & @hook2 *************** *** 2179,2190 **** names, the name should be enclosed in quotes: @name me = "James Bond" ! When changing a player's name to their alias, their current name and ! their alias are swapped. Changing the name of will cause object to execute its ONAME and ANAME. The old name will be passed at %0 to these; the new name will be passed as %1. & @newpassword @newpassword = --- 2215,2229 ---- names, the name should be enclosed in quotes: @name me = "James Bond" ! Players can change their name to any name not in use by another ! player; players may "reserve" a set of names for their use by ! setting them in their @alias. Changing the name of will cause object to execute its ONAME and ANAME. The old name will be passed at %0 to these; the new name will be passed as %1. + + See also: @alias & @newpassword @newpassword = *************** *** 2856,2861 **** --- 2895,2904 ---- See "help @search3" for more. & @search3 + If =MINDB, only objects with dbrefs of or + higher will be listed. If =MAXDB, only objects with dbrefs + of or lower will be listed. + For the class TYPE=PLAYER, and for PLAYER=, anyone may obtain information on any player. In all other cases, only wizards may obtain information about other players. This is computationally *************** *** 2868,2881 **** @search Joe eval=1,100,200 <-- list objects from #100-#200 owned by Joe. @search eval=gt(money(##),10) <-- list all objects owned by me worth more than 10 coins. ! ! If =POWERS, only objects with the given power are listed. Only ! one power may be specified. ! ! If =EVAL, only objects for which evaluates to a ! true boolean value will be listed. The token '##' in , which ! is a function, is replaced by each dbref sequentially. Classes EPLAYER, ! EROOM, EEXIT, and EOBJECT work like EVAL but are restricted to a single type. & @select @select =,[,,]...[,] This is similar to @switch, except it only executes the action --- 2911,2918 ---- @search Joe eval=1,100,200 <-- list objects from #100-#200 owned by Joe. @search eval=gt(money(##),10) <-- list all objects owned by me worth more than 10 coins. ! ! See also: lsearch, lsearchr & @select @select =,[,,]...[,] This is similar to @switch, except it only executes the action *************** *** 3816,3822 **** give to Gives player the specified of pennies or . You can't give ! someone pennies if their new total would be greater than 10000 pennies. (No reason to get greedy). The /silent switch suppresses the default message indicating how many pennies were given. Wizards may "give" a negative number of pennies. --- 3853,3859 ---- give to Gives player the specified of pennies or . You can't give ! someone pennies if their new total would be greater than 100000 pennies. (No reason to get greedy). The /silent switch suppresses the default message indicating how many pennies were given. Wizards may "give" a negative number of pennies. *************** *** 3871,3877 **** someone else's inventory. To be safe, @lock any objects that you do not want to lose. ! See also: score, take, drop, OPAQUE, @lock & kill kill [=] --- 3908,3914 ---- someone else's inventory. To be safe, @lock any objects that you do not want to lose. ! See also: score, take, drop, OPAQUE, @lock, @invformat & kill kill [=] *** 1_7_7.1250/game/txt/hlp/pennchat.hlp Thu, 19 Aug 2004 14:13:49 -0500 dunemush (pennmush/19_pennchat.h 1.2.1.4.1.9 600) --- 1_8_1.108(w)/game/txt/hlp/pennchat.hlp Fri, 25 Feb 2005 13:28:46 -0600 dunemush (pennmush/19_pennchat.h 1.2.1.4.1.12 600) *************** *** 137,143 **** * "notitles" - chantitles are not displayed in channel messages. * "nonames" - player names are not displayed in channel messages. * "nocemit" - @cemit is prohibited on the channel. ! Specifications may be combined, space-separated. Default is "player" @channel/delete removes a channel. You must own it or be Wizard. @channel/desc sets the channel's description, shown on @channel/what. --- 137,146 ---- * "notitles" - chantitles are not displayed in channel messages. * "nonames" - player names are not displayed in channel messages. * "nocemit" - @cemit is prohibited on the channel. ! * "interact" - Interaction rules (defined in local.c) are applied to ! the channel ! Specifications may be combined, space-separated. Default is determined ! by the 'channel_flags' @config option, or 'player' if not set. @channel/delete removes a channel. You must own it or be Wizard. @channel/desc sets the channel's description, shown on @channel/what. *************** *** 235,237 **** --- 238,312 ---- >@clock/join anotherchannel=@#10/anotherchanneljoin >@lock/user:onechanneljoin #10 = 1 >@lock/user:anotherchanneljoin #10 = isunfind/1 + & COWNER() + cowner() + + Returns the dbref of the owner of a channel. + & CTITLE() + ctitle(,) + + Returns @chan/title on . You must either + be able to examine the object, or it must visible be on a channel + which you are allowed to join. + & CWHO() + cwho() + + This returns a list of connected dbrefs who are on . + When used by mortals, hidden/DARK players do not appear on the list. + & CEMIT() + cemit(, [, ]) + + Sends a message to all players listening to the given chat channel. + See help @cemit for details. + + If the third argument is a true value, the channel name will be + prepended to the message, behaving like @cemit/noisy. + & CFLAGS() + cflags() + cflags(,) + + With one argument, cflags() returns a list of flags set on the + given channel, represented as a string of characters. See + 'help channel-list' for the list of flags (they appear in the + "Access" column). You must be able to see the channel to use this + function. + + With two arguments, cflags() returns a list of flags for that + object on that channel, currently a string consisting of zero + or more of "G" (gagging), "Q" (muted), and "H" (hidden). + You must be able to see that channel and to examine the object + to use this function. If the object is not on the channel, an + error is returned. + & CHANNELS() + channels([]) + channels() + channels([,]) + + With no arguments, channels() returns the list of all channel names + which are visible to the player. With two arguments, returns the list + of channel names to which the object is listening, delimited by + . + + With one argument, the behavior is ambiguous. If the argument + matches an object, returns the list of names to which the object + is listening, space-delimited. If not, it's treated as a no-argument + case with a delimiter. + + If you don't have permission to examine the object, you only see + those channels to which the object belong for which you have + permission to join (or are joined to). + & CLOCK() + clock([/][, ]) + + With one argument, returns the value of a lock on a channel, if you + own the channel or are See_All. If no locktype is given, "JOIN" + is assumed. + With two arguments, sets the lock if you would be able to do so via + @clock. + + See also: @clock + & Channel functions + Channel functions work with the channel system. + + cemit() cflags() channels() clock() cowner() + ctitle() cwho() *** 1_7_7.1250/game/txt/hlp/index.hlp Tue, 11 May 2004 16:07:54 -0500 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.2.1.2.3.1.1 660) --- 1_8_1.108(w)/game/txt/hlp/index.hlp Fri, 25 Feb 2005 15:05:52 -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.2.1.2.3.1.1.2.1 660) *************** *** 95,216 **** 1.7.7p22 1.7.7p23 1.7.7p24 1.7.7p25 1.7.7p26 1.7.7p27 1.7.7p28 1.7.7p29 1.7.7p30 ! 1.7.7p31 : ; ! @-attributes @-building @-general ! @-wizard @@ @@() ! @aahear @aclone @aconnect ! @adeath @adescribe @adestroy ! @adisconnect @adrop @aefail For more, see Entries-6 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-6 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! @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 @clock ! @clock2 @clone @command ! @command2 @command3 @comment For more, see Entries-7 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-7 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! @config @config attribs @config chat ! @config cmds @config cosmetic @config cosmetic2 ! @config costs @config db @config dump ! @config funcs @config limits @config limits2 ! @config limits3 @config log @config net ! @config parameters @config tiny @conformat ! @cost @cpattr @create ! @dbck @death @decompile ! @decompile2 @decompile3 @descformat ! @describe @destroy @destroy2 ! @dig @dig2 @disable ! @doing @dolist @drain ! @drop @dump @ealias ! @edit @efail @elock ! @emit @enable @enter ! @entrances @eunlock @exitformat For more, see Entries-8 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-8 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! @failure @filter @filter2 ! @find @firstexit @flag ! @flag2 @follow @force ! @force2 @forwardlist @function ! @function2 @function3 @function4 ! @gedit @give @grep2 ! @grep @halt @haven ! @hide @hook @hook2 ! @idescformat @idescribe @idle ! @infilter @inprefix @kick ! @lalias @leave @lemit ! @lfail @link @list ! @listen @listen2 @listmotd ! @lock @lock2 @lock3 ! @lock4 @lock5 @lock6 ! @lock7 @lock8 @lock9 For more, see Entries-9 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-9 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! @log @logwipe @lset ! @map2 @mail @malias ! @malias2 @malias3 @malias4 ! @malias5 @map @motd ! @move @mvattr @name ! @nameaccent @nameformat @newpassword ! @notify @nsemit @nslemit ! @nsoemit @nspemit @nsremit ! @nszemit @nuke @odeath ! @odescribe @odrop @oefail ! @oemit @oenter @ofailure ! @ofollow @ogive @oidescribe ! @oleave @olfail @omove ! @opayment @open @oreceive ! @osuccess @otport @oufail ! @ounfollow @ouse @oxenter For more, see Entries-10 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-10 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! @oxleave @oxmove @oxtport ! @ozenter @ozleave @parent ! @password @payment @pcreate ! @pemit @pemit2 @poll ! @poor @power @prefix ! @ps @purge @quota ! @readcache @receive @recycle ! @rejectmotd @remit @restart ! @runout @rwall @scan ! @search @search2 @search3 ! @select @set @sex ! @shutdown @sitelock @sitelock2 ! @sitelock3 @squota @startup ! @stats @success @sweep ! @switch @switch2 @teleport ! @tport @trigger @trigger2 For more, see Entries-11 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-11 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- @ufail @ulock @undestroy @unfollow @unlink @unlock @unrecycle @uptime @uptime2 --- 95,222 ---- 1.7.7p22 1.7.7p23 1.7.7p24 1.7.7p25 1.7.7p26 1.7.7p27 1.7.7p28 1.7.7p29 1.7.7p30 ! 1.7.7p31 1.7.7p32 1.7.7p33 ! 1.7.7p34 1.7.7p35 1.7.7p36 ! 1.7.7p37 1.7.7p38 1.7.7p39 ! 1.7.7p40 1.8.0p0 : ! ; @-attributes @-building ! @-general @-wizard @@ For more, see Entries-6 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-6 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! @@() @aahear @abuy ! @aclone @aconnect @adeath ! @adescribe @adestroy @adisconnect ! @adrop @aefail @aenter ! @afailure @afollow @agive ! @ahear @aidescribe @aleave ! @alfail @alias @allhalt ! @allquota @amhear @amove ! @apayment @areceive @assert @asuccess @atport @atrchown @atrlock @attribute @aufail @aunfollow @ause @away @azenter @azleave @boot ! @break @buy @cemit ! @channel @channel2 @channel3 ! @channel4 @channel5 @charges For more, see Entries-7 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-7 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! @chat @chown @chownall ! @chzone @chzone2 @chzoneall ! @clock @clock2 @clone ! @command @command2 @command3 ! @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 limits3 @config log ! @config net @config parameters @config tiny ! @conformat @cost @cpattr ! @create @dbck @death ! @decompile @decompile2 @decompile3 ! @descformat @describe @destroy ! @destroy2 @dig @dig2 ! @disable @doing @dolist For more, see Entries-8 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-8 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! @drain @drop @dump ! @ealias @edit @efail ! @elock @emit @enable ! @enter @entrances @eunlock ! @exitformat @failure @filter ! @filter2 @find @firstexit ! @flag @flag2 @follow ! @force @force2 @forwardlist ! @function @function2 @function3 ! @function4 @gedit @give ! @grep2 @grep @halt ! @haven @hide @hook ! @hook2 @idescformat @idescribe ! @idle @infilter @inprefix ! @kick @lalias @leave ! @lemit @lfail @link For more, see Entries-9 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-9 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! @list @listen @listen2 ! @listmotd @lock @lock2 ! @lock3 @lock4 @lock5 ! @lock6 @lock7 @lock8 ! @lock9 @log @logwipe ! @lset @map2 @mail ! @malias @malias2 @malias3 ! @malias4 @malias5 @map ! @motd @move @mvattr ! @name @nameaccent @nameformat ! @newpassword @notify @nsemit ! @nslemit @nsoemit @nspemit ! @nsremit @nszemit @nuke ! @obuy @odeath @odescribe ! @odrop @oefail @oemit ! @oenter @ofailure @ofollow For more, see Entries-10 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-10 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! @ogive @oidescribe @oleave ! @olfail @omove @opayment ! @open @oreceive @osuccess ! @otport @oufail @ounfollow ! @ouse @oxenter @oxleave ! @oxmove @oxtport @ozenter ! @ozleave @parent @password ! @payment @pcreate @pemit ! @pemit2 @poll @poor ! @power @power2 @power3 ! @prefix @pricelist @ps ! @purge @quota @readcache ! @receive @recycle @rejectmotd ! @remit @restart @runout ! @rwall @scan @search ! @search2 @search3 @select For more, see Entries-11 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-11 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + @set @sex @shutdown + @sitelock @sitelock2 @sitelock3 + @sql @squota @startup + @stats @success @sweep + @switch @switch2 @teleport + @tport @trigger @trigger2 @ufail @ulock @undestroy @unfollow @unlink @unlock @unrecycle @uptime @uptime2 *************** *** 221,237 **** @warnings2 @warnings3 @wcheck @whereis @wipe @wizmotd @wizwall @zemit @zenter @zleave \ ] ^ abode abs() accent() accent2 accent3 accent4 accname() acos() action lists action2 add() after() ahelp align() - - For more, see Entries-12 - -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - & Entries-12 - -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- align2 allof() alphamax() alphamin() ancestors and() andflags() andlflags() anews --- 227,243 ---- @warnings2 @warnings3 @wcheck @whereis @wipe @wizmotd @wizwall @zemit @zenter + + For more, see Entries-12 + -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + & Entries-12 + -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- @zleave \ ] ^ abode abs() accent() accent2 accent3 accent4 accname() acos() action lists action2 add() after() ahelp align() align2 allof() alphamax() alphamin() ancestors and() andflags() andlflags() anews *************** *** 241,393 **** atan() atan2() atrlock() attr trees attr trees2 attr trees3 attr trees4 attrcnt() attrib-ownership ! attribute flags attribute functions attribute list ! attribute trees attribute trees2 attribute trees3 ! attribute trees4 attributes attributes list ! attributes2 attributes3 attributes4 ! audible audible2 band() ! baseconv() beep() before() ! being killed bitwise functions bnand() For more, see Entries-13 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-13 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! bnot() boolean functions boolean values ! boolean2 boolean3 bor() ! bound() brackets() brief ! builder bxor() cand() capstr() case() caseall() cat() cd ceil() cemit() center() cflags() ! ch changes channel functions ! channel-list channels() chat ! checkpass() children() chown_ok ! chr() clients clock() ! clone() cloudy cmds() ! code color commands ! communication functions comp() comsys ! con() config() conn() ! connected connection functions contact For more, see Entries-14 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-14 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! control controls() convsecs() ! convtime() convutcsecs() copyright ! copyrite cor() cos() ! costs cowner() create() ! credits ctime() ctitle() ! ctu() cv cwho() ! dark dark2 database ! dbref # dbref functions dbref number ! dbref2 dbrefs debug ! debug2 dec() decrypt() ! default() delete() desert ! destroy_ok die() dig() ! digest() dismiss dist2d() ! dist3d() div() doing ! doing() download drop ! drop-tos dynhelp() e() For more, see Entries-15 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-15 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! edefault() edit() element() ! elements() elist() elock() ! emit() enactor encrypt() ! endtag() enter enter_ok ! entrances() eq() escape() ! etimefmt() etimefmt2 etimefmt3 ! eval() evaluation order evaluation2 ! events examine executor ! exit() exits exits2 ! exp() extract() failure ! fdiv() filter() filterbool() ! findable() first() firstof() ! fixed flag list flag permissions ! flags flags list flags() ! flags2 flip() floating ! floor() floordiv() fmod() For more, see Entries-16 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-16 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! fold() fold2 folderstats() ! follow followers() following() ! foreach() foreach2 fraction() ! fullname() function list functions ! functions() functions2 gagged ! gender get get() ! get_eval() give global commands ! globals go going ! goto grab() graball() ! grep() gt() gte() ! halt hasattr() hasattrp() ! hasattrpval() hasattrval() hasflag() ! haspower() hastype() haven ! heavy height() help ! here hidden() home ! home() homes host() For more, see Entries-17 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-17 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! hostname() html html functions ! html() i18n idle ! idle() idlesecs() if() ! ifelse() ilev() iname() ! inc() index index() ! info information functions inherit ! inherit2 insert() interiors ! interiors2 internationalization inum() ! inventory ipaddr() isdaylight() ! isdbref() isint() isnum() ! isword() itemize() items() ! iter() iter2 itext() ! judge jump_ok jury_ok ! kill lambda last & lastlogout ! last() lastip lastsite ! lattr() lcon() lcstr() For more, see Entries-18 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-18 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ldelete() leave left() lemit() lexits() lflags() 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 looping ! lparent() lplayers() lports() ! lpos() lsearch() lsearch2 For more, see Entries-19 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-19 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! 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() mailfstats() ! mailstats() mailstatus() mailsubject() ! mailtime() map() master room match() matchall() matching math functions max() me mean() median() member() --- 247,409 ---- atan() atan2() atrlock() attr trees attr trees2 attr trees3 attr trees4 attrcnt() attrib-ownership ! attribute flags attribute flags2 attribute functions For more, see Entries-13 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-13 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! attribute list attribute trees attribute trees2 ! attribute trees3 attribute trees4 attributes ! attributes list attributes2 attributes3 ! attributes4 attrpcnt() audible ! audible2 band() baseconv() ! beep() before() being killed ! bitwise functions bnand() bnot() ! boolean functions boolean values boolean2 ! boolean3 bor() bound() ! brackets() brief builder ! buy bxor() cand() capstr() case() caseall() cat() cd ceil() cemit() center() cflags() ! ch chan_usefirstmatch changes ! channel functions channel-list channels() For more, see Entries-14 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-14 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! chat checkpass() children() ! chown_ok chr() clients ! clock() clone() cloudy ! cmds() code color ! commands communication functions comp() ! comsys con() config() ! conn() connected connection functions ! contact control controls() ! convsecs() convtime() convutcsecs() ! copyright copyrite cor() ! cos() costs cowner() ! create() credits ctime() ! ctitle() ctu() cv ! cwho() dark dark2 ! database dbref # dbref functions ! dbref number dbref2 dbrefs For more, see Entries-15 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-15 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! debug debug2 dec() ! decrypt() default() delete() ! desert destroy_ok die() ! dig() digest() dismiss ! dist2d() dist3d() div() ! doing doing() download ! drop drop-tos dynhelp() ! e() edefault() edit() ! element() elements() elist() ! elock() emit() empty ! enactor encrypt() endtag() ! enter enter_ok entrances() ! eq() escape() etimefmt() ! etimefmt2 etimefmt3 eval() ! evaluation order evaluation2 events ! examine executor exit() For more, see Entries-16 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-16 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! exits exits2 exp() ! extract() failure fdiv() ! filter() filterbool() findable() ! first() firstof() fixed ! flag list flag permissions flags ! flags list flags() flags2 ! flip() floating floor() ! floordiv() fmod() fold() ! fold2 folderstats() follow ! followers() following() foreach() ! foreach2 fraction() fullname() ! function list functions functions() ! functions2 gagged gender ! get get() get_eval() ! give global commands globals ! go going goto For more, see Entries-17 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-17 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! grab() graball() grep() ! gt() gte() halt ! hasattr() hasattrp() hasattrpval() ! hasattrval() hasflag() haspower() ! hastype() haven heavy ! height() help here ! hidden() home home() ! homes host() hostname() ! html html functions html() ! i18n idle idle() ! idlesecs() if() ifelse() ! ilev() iname() inc() ! index index() info ! information functions inherit inherit2 ! insert() interiors interiors2 ! internationalization inum() inventory For more, see Entries-18 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-18 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + ipaddr() isdaylight() isdbref() + isint() isnum() isword() + itemize() items() iter() + iter2 itext() judge + jump_ok jury_ok kill + lambda last & lastlogout last() + lastip lastsite lattr() + lattrp() lcon() lcstr() ldelete() leave left() lemit() lexits() lflags() license light link() link_ok linking list functions list() listen_parent listening listening2 listening3 lists ! lit() ljust() llockflags() ! llocks() lmath() ln() For more, see Entries-19 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-19 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! lnum() loc() locale ! localize() locate() locate2 ! lock list lock types lock types2 ! lock() lockflags() locking ! locklist locks locks() ! locktypes locktypes2 log() ! logout look look2 ! looping lparent() lplayers() ! lports() lpos() lsearch() ! lsearch2 lsearchr() lset() ! lstats() lt() lte() ! lthings() lvcon() lvexits() ! lvplayers() lvthings() lwho() ! macros macros2 mail ! mail functions mail() mail-admin ! mail-folders mail-other mail-reading ! ! For more, see Entries-20 ! -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! & Entries-20 ! -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! mail-sending maildstats() mailfrom() ! mailfstats() mailsend() mailstats() ! mailstatus() mailsubject() mailtime() ! malias() map() master room match() matchall() matching math functions max() me mean() median() member() *************** *** 395,554 **** mistrust mix() mix2 mod() modulo() modulus() money money() monitor - - For more, see Entries-20 - -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - & Entries-20 - -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- mortal move mtime() mudname() mul() munge() munge2 munge3 mushcode mushcode2 mwho() myopic name() nand() nattr() - nearby() neq() new locks - newbie newbie2 newbie3 - news next() no_command - no_leave no_tel no_warn - noaccents noleave non-standard attributes - nor() nospoof not() - nowarn null() num() - obj() object parents objeval() - objid() objmem() oemit() - on-vacation opaque open() - or() ord() orflags() For more, see Entries-21 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-21 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! orlflags() orphan outputprefix ! outputsuffix owner() page ! page2 paranoid parent ! parent() parents parents2 ! parents3 parents4 parents5 ! parse() patchlevels pcreate() ! pemit() pi() pickrand() ! player playermem() pmatch() ! poll() ports() pos() ! pose pose2 poss() ! power() powers list powers list2 ! powers() powers2 pueblo ! pueblo features pueblo() puppet ! puppets puppets2 queue ! quiet quit quota() ! r() r-function rand() For more, see Entries-22 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-22 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! randword() read recv() ! regedit() regeditall() regeditalli() ! regediti() regexp regexp classes ! regexp classes2 regexp examples regexp syntax ! regexp syntax2 regexp syntax3 regexp syntax4 ! regexp syntax5 regexp syntax6 regexp syntax7 ! regexp syntax8 regexps regexps2 ! registers registers2 regmatch() ! regmatchi() regrab() regraball() ! regraballi() regrabi() regrep() ! regular expression functions remainder() ! remit() remove() repeat() ! replace() rest() restarts() ! restarttime() restrict restrict2 ! restrict3 reswitch() reswitchall() ! reswitchalli() reswitchi() reverse() For more, see Entries-23 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-23 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! revwords() right() rjust() ! rloc() rnum() room ! room() root() round() ! royalty rquota rules ! s() s-function safe ! say scan() score ! scramble() screenheight screenwidth ! search() search2 secs() ! secure() semaphores semaphores2 ! semaphores3 semaphores4 semaphores5 ! semaphores6 semipose sent() ! session set() setdiff() ! setinter() setq() setq2 ! setq3 setr() setting-attributes ! setunion() sex sha0() ! shared shared players shared players2 For more, see Entries-24 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-24 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! shl() shr() shuffle() ! sign() sin() slay ! softcode sort() sortby() ! soundex() soundex2 soundlike() ! soundslike() space() spellnum() ! splice() spoofing sqrt() ! squish() ssl() stack ! starttime() stats() stddev() ! step2 step() sticky ! strcat() string functions strings ! strinsert() stripaccents() stripansi() ! strlen() strmatch() strreplace() ! sub() subj() substitutions ! substitutions2 substitutions3 substitutions4 ! success suspect switch wildcards ! switch() switch2 switchall() For more, see Entries-25 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-25 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! switches t() table() ! tag() tagwrap() take ! tan() teach tel() ! tel_ok temple terminfo() ! terse textfile() think ! time functions time() timefmt() ! timefmt2 timestring() topics ! topics2 tr() translation ! transparent transparent2 trim() ! trunc() trust trust2 ! type() types of objects types2 ! u() u2 ucstr() ! udefault() ufun() ufun2 ! uldefault() ulocal() ulocal2 ! unfindable unfollow uninspected ! unregistered use user-defined commands For more, see Entries-26 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-26 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! user-defined2 utctime() utility functions ! v() v-function vadd() ! val() valid() vcross() ! vdim() vdot() verbose ! verbs version() visible() ! visual vmag() vmax() ! vmin() vmul() vrml ! vsub() vunit() warnings ! warnings list warnings list2 where() ! whisper whisper2 who ! width() wildcards wipe() ! with wizard wordpos() ! words() wrap() xget() ! xor() z_tel zemit() ! zfun() zmo zmp ! zmr zone zone master objects For more, see Entries-27 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-27 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- zone master rooms zone masters zone objects zone() zones zones2 & &Entries -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- --- 411,583 ---- mistrust mix() mix2 mod() modulo() modulus() money money() monitor mortal move mtime() mudname() mul() munge() munge2 munge3 mushcode mushcode2 mwho() myopic name() nand() nattr() For more, see Entries-21 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-21 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! nattrp() ncon() nearby() ! neq() new locks newbie ! newbie2 newbie3 news ! nexits() next() nmwho() ! no_command no_leave no_tel ! no_warn noaccents noleave ! non-standard attributes noname nor() ! nospace nospoof not() ! nowarn nplayers() nsemit() ! nslemit() nsoemit() nspemit() ! nsremit() nszemit() nthings() ! null() num() nvcon() ! nvexits() nvplayers() nvthings() ! nwho() obj() object parents ! objeval() objid() objmem() ! oemit() on-vacation opaque For more, see Entries-22 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-22 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! open() or() ord() ! orflags() orlflags() orphan ! outputprefix outputsuffix owner() ! page page2 paranoid ! parent parent() parents ! parents2 parents3 parents4 ! parents5 parse() patchlevels ! pcreate() pemit() pi() ! pickrand() player playermem() ! pmatch() poll() ports() ! pos() pose pose2 ! poss() power() powers list ! powers list2 powers() powers2 ! pueblo pueblo features pueblo() ! puppet puppets puppets2 ! queue quiet quit For more, see Entries-23 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-23 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! quota() r() r-function ! rand() randword() read ! recv() regedit() regeditall() ! regeditalli() regediti() regexp ! regexp classes regexp classes2 regexp examples ! regexp syntax regexp syntax2 regexp syntax3 ! regexp syntax4 regexp syntax5 regexp syntax6 ! regexp syntax7 regexp syntax8 regexps ! regexps2 registers registers2 ! regmatch() regmatchi() regrab() ! regraball() regraballi() regrabi() ! regrep() regular expression functions ! remainder() remit() remove() ! repeat() replace() rest() ! restarts() restarttime() restrict ! restrict2 restrict3 reswitch() For more, see Entries-24 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-24 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! reswitchall() reswitchalli() reswitchi() ! reverse() revwords() right() ! rjust() rloc() rnum() ! room room() root() ! round() royalty rquota ! rules s() s-function ! safe say scan() ! score scramble() screenheight ! screenwidth search() search2 ! secs() secure() semaphores ! semaphores2 semaphores3 semaphores4 ! semaphores5 semaphores6 semipose ! sent() session set() ! setdiff() setinter() setq() ! setq2 setq3 setr() ! setting-attributes setunion() sex For more, see Entries-25 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-25 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! sha0() shared shared players ! shared players2 shl() shr() ! shuffle() sign() sin() ! slay softcode sort() ! sortby() sorting soundex() ! soundex2 soundlike() soundslike() ! space() spellnum() splice() ! spoofing sql functions sql() ! sqlescape() sqrt() squish() ! ssl() stack starttime() ! stats() stddev() step2 ! step() sticky strcat() ! string functions strings strinsert() ! stripaccents() stripansi() strlen() ! strmatch() strreplace() sub() ! subj() substitutions substitutions2 For more, see Entries-26 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-26 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ! substitutions3 substitutions4 success ! suspect switch wildcards switch() ! switch2 switchall() switches ! t() table() tag() ! tagwrap() take tan() ! teach tel() tel_ok ! temple terminfo() terse ! textfile() think time functions ! time() timefmt() timefmt2 ! timestring() topics topics2 ! tr() translation transparent ! transparent2 trim() trunc() ! trust trust2 type() ! types of objects types2 u() ! u2 ucstr() udefault() ! ufun() ufun2 uldefault() For more, see Entries-27 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- & Entries-27 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + ulocal() ulocal2 unfindable + unfollow uninspected unregistered + use user-defined commands user-defined2 + utctime() utility functions v() + v-function vadd() val() + valid() vcross() vdim() + vdot() verbose verbs + version() visible() visual + vmag() vmax() vmin() + vmul() vrml vsub() + vunit() warnings warnings list + warnings list2 where() whisper + whisper2 who width() + wildcards wipe() with + wizard wordpos() words() + wrap() xattr() xattrp() + + For more, see Entries-28 + -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + & Entries-28 + -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + xcon() xexits() xget() + xmwho() xor() xplayers() + xthings() xvcon() xvexits() + xvplayers() xvthings() xwho() + z_tel zemit() zfun() + zmo zmp zmr + zmwho() zone zone master objects zone master rooms zone masters zone objects zone() zones zones2 + zwho() & &Entries -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- *** 1_7_7.1250/game/restart Thu, 13 May 2004 11:43:05 -0500 dunemush (pennmush/39_restart 1.1.1.1.1.1.1.2.1.1.1.1.1.2.1.2.2.1.2.2.1.1.1.1.1.4 700) --- 1_8_1.108(w)/game/restart Tue, 18 Jan 2005 13:24:32 -0600 dunemush (pennmush/39_restart 1.1.1.1.1.1.1.2.1.1.1.1.1.2.1.2.2.1.2.2.1.1.1.1.1.4.2.1 700) *************** *** 65,74 **** # # Read the cnf file and set some variables. # ! INDB=`egrep "^input_database" $CONF_FILE | sed "s/.*[ ][ ]*.*\/\(.*\)/\1/"` ! OUTDB=`egrep "^output_database" $CONF_FILE | sed "s/.*[ ][ ]*.*\/\(.*\)/\1/"` ! PANICDB=`egrep "^crash_database" $CONF_FILE | sed "s/.*[ ][ ]*.*\/\(.*\)/\1/"` ! PANICDIR=`egrep "^crash_database" $CONF_FILE | sed "s/.*[ ][ ]*\(.*\)\/.*/\1/"` COMPRESSOR="cat" SUFFIX="" --- 65,74 ---- # # Read the cnf file and set some variables. # ! INDB=`egrep "^input_database" $CONF_FILE | sed "s/.*[ ][ ]*.*\/\(.*\)/\1/" | sed 's/\r$//'` ! OUTDB=`egrep "^output_database" $CONF_FILE | sed "s/.*[ ][ ]*.*\/\(.*\)/\1/" | sed 's/\r$//'` ! PANICDB=`egrep "^crash_database" $CONF_FILE | sed "s/.*[ ][ ]*.*\/\(.*\)/\1/" | sed 's/\r$//'` ! PANICDIR=`egrep "^crash_database" $CONF_FILE | sed "s/.*[ ][ ]*\(.*\)\/.*/\1/" | sed 's/\r$//'` COMPRESSOR="cat" SUFFIX="" *************** *** 76,83 **** egrep -s "^compress_program[ ]*[A-Za-z0-9]" $CONF_FILE nocompress=$? if [ $nocompress -eq 0 ]; then ! COMPRESSOR=`egrep "^compress_program" $CONF_FILE | sed "s/[^ ]*[ ]*\(.*\)/\1/"` ! SUFFIX=`egrep "^compress_suffix" $CONF_FILE | sed "s/[^ ]*[ ]*\(.*\)/\1/"` fi --- 76,83 ---- egrep -s "^compress_program[ ]*[A-Za-z0-9]" $CONF_FILE nocompress=$? if [ $nocompress -eq 0 ]; then ! COMPRESSOR=`egrep "^compress_program" $CONF_FILE | sed "s/[^ ]*[ ]*\(.*\)/\1/" | sed 's/\r$//'` ! SUFFIX=`egrep "^compress_suffix" $CONF_FILE | sed "s/[^ ]*[ ]*\(.*\)/\1/" | sed 's/\r$//'` fi *** 1_7_7.1250/game/mushcnf.dst Tue, 23 Nov 2004 14:13:24 -0600 dunemush (pennmush/41_mushcnf.ds 1.1.1.19.1.1.1.2.1.1.1.8.1.1.1.1.1.34.1.1 600) --- 1_8_1.108(w)/game/mushcnf.dst Wed, 08 Jun 2005 18:17:00 -0500 dunemush (pennmush/41_mushcnf.ds 1.1.1.19.1.1.1.2.1.1.1.8.1.1.1.1.1.34.1.3 600) *************** *** 377,382 **** --- 377,387 ---- # actual maximum length you want. player_name_len 16 + # The maximum number of aliases a player may have simultaneously. + # Setting this to 0 disables aliases. To allow an unlimited number + # of aliases, set this to 4000 or so. + max_aliases 3 + # Limit the number of objects players can own. use_quota yes *************** *** 808,813 **** --- 813,824 ---- # See the explanation for rooms and no_command. thing_flags no_command + # -- Default flags for newly created channels + # + # For example, you might want: + # channel_flags player quiet open hide_ok + channel_flags player + ### ### Reserved command names, and command and function aliases are in ### alias.cnf *** 1_7_7.1250/src/wiz.c Tue, 24 Aug 2004 09:41:40 -0500 dunemush (pennmush/b/23_wiz.c 1.44.1.1.1.1.1.2.1.7.1.1.1.1.1.1.1.1.1.1.1.8.1.2.2.2.1.2.1.1.1.1.1.1.1.2.1.1.1.2.2.17.1.9.1.30.1.3.1.1 660) --- 1_8_1.108(w)/src/wiz.c Sat, 25 Jun 2005 13:08:57 -0500 dunemush (pennmush/b/23_wiz.c 1.44.1.1.1.1.1.2.1.7.1.1.1.1.1.1.1.1.1.1.1.8.1.2.2.2.1.2.1.1.1.1.1.1.1.2.1.1.1.2.2.17.1.9.1.30.1.3.1.2.1.1.1.4.1.2 660) *************** *** 59,70 **** #endif #endif static int tport_dest_ok(dbref player, dbref victim, dbref dest); static int tport_control_ok(dbref player, dbref victim, dbref loc); static int mem_usage(dbref thing); ! static int raw_search(dbref player, const char *owner, const char *class, ! const char *restriction, const char *start, ! const char *stop, dbref **result, PE_Info * pe_info); #ifdef INFO_SLAVE void kill_info_slave(void); --- 59,85 ---- #endif #endif + struct search_spec { + dbref owner; /**< Limit to this owner, if specified */ + int type; /**< Limit to this type */ + dbref parent; /**< Limit to children of this parent */ + dbref zone; /**< Limit to those in this zone */ + char flags[BUFFER_LEN]; /**< Limit to those with these flags */ + char lflags[BUFFER_LEN]; /**< Limit to those with these flags */ + char powers[BUFFER_LEN]; /**< Limit to those with these powers */ + char eval[BUFFER_LEN]; /**< Limit to those where this evals true */ + char name[BUFFER_LEN]; /**< Limit to those prefix-matching this name */ + dbref low; /**< Limit to dbrefs here or higher */ + dbref high; /**< Limit to dbrefs here or lower */ + }; + static int tport_dest_ok(dbref player, dbref victim, dbref dest); static int tport_control_ok(dbref player, dbref victim, dbref loc); static int mem_usage(dbref thing); ! static int raw_search(dbref player, const char *owner, int nargs, ! const char **args, dbref **result, PE_Info * pe_info); ! static int fill_search_spec(dbref player, const char *owner, int nargs, ! const char **args, struct search_spec *spec); #ifdef INFO_SLAVE void kill_info_slave(void); *************** *** 484,495 **** * player. */ /* now check to see if the absolute room is set NO_TEL */ ! if ((NoTel(absroom) || !eval_lock(player, absroom, Leave_Lock)) ! && !controls(player,