This is 1.7.7p40-1.8.0p0 patch. After applyig this patch to PennMUSH 1.7.7p40, you will have version 1.8.0p0 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.0p0.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 In this patch: Minor Changes (since last 1.7.7): * The LFAIL/OLFAIL/ALFAIL messages are activated whenever a @lock/leave is checked and failed, not just when a 'leave' command fails. (So they work for failed attempts to leave rooms by exits/@tel). Suggested by Zith@Lovarii. Fixes (since last 1.7.7): * Help for grab() now references graball(). Report by Sketch@M*U*S*H. * Reference to 'ducats' in code replaced by appropriate plural currency unit. Report by Kinumi@ShoujoAi. Prereq: 1.7.7p40 *** 1_7_7.1249/Patchlevel Wed, 01 Dec 2004 20:21:44 -0600 dunemush (pennmush/5_Patchlevel 1.17.1.11.1.42 600) --- 1_8_0.7(w)/Patchlevel Tue, 21 Dec 2004 10:09:27 -0600 dunemush (pennmush/5_Patchlevel 1.17.1.11.1.43 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.0p0 *** 1_7_7.1249/README Mon, 11 Nov 2002 20:39:30 -0600 dunemush (pennmush/4_README 1.13 600) --- 1_8_0.7(w)/README Tue, 21 Dec 2004 10:09:46 -0600 dunemush (pennmush/4_README 1.14 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. *** 1_7_7.1249/FAQ Mon, 11 Nov 2002 20:39:30 -0600 dunemush (pennmush/6_FAQ 1.4 600) --- 1_8_0.7(w)/FAQ Tue, 21 Dec 2004 10:08:39 -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.1249/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_0.7(w)/game/txt/hlp/pennfunc.hlp Tue, 21 Dec 2004 10:14:47 -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.25 600) *************** *** 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() --- 1495,1502 ---- 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() *** 1_7_7.1249/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_0.7(w)/game/txt/hlp/index.hlp Mon, 27 Dec 2004 14:32:20 -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.1249/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_0.7(w)/src/wiz.c Thu, 30 Dec 2004 21:27:57 -0600 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 660) *************** *** 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, absroom) && !Tel_Anywhere(player)) { notify(player, T("Teleports are not allowed in this room.")); return; } /* Now check the Z_TEL status of the victim's room. * Just like NO_TEL above, except that if the room (or its * Zone Master Room, if any, is Z_TEL, --- 484,503 ---- * player. */ /* now check to see if the absolute room is set NO_TEL */ ! if (NoTel(absroom) && !controls(player, absroom) && !Tel_Anywhere(player)) { notify(player, T("Teleports are not allowed in this room.")); return; } + + /* Check leave lock on room, if necessary */ + if (!controls(player, absroom) && !Tel_Anywhere(player) && + !eval_lock(player, absroom, Leave_Lock)) { + fail_lock(player, absroom, Leave_Lock, + T("Teleports are not allowed in this room."), NOTHING); + return; + } + /* Now check the Z_TEL status of the victim's room. * Just like NO_TEL above, except that if the room (or its * Zone Master Room, if any, is Z_TEL, *** 1_7_7.1249/src/move.c Sun, 08 Aug 2004 21:26:04 -0500 dunemush (pennmush/b/51_move.c 1.1.1.18.1.5.1.13.1.3.1.9.1.1.1.1.1.2.1.1.1.1.1.33 660) --- 1_8_0.7(w)/src/move.c Thu, 30 Dec 2004 21:27:54 -0600 dunemush (pennmush/b/51_move.c 1.1.1.18.1.5.1.13.1.3.1.9.1.1.1.1.1.2.1.1.1.1.1.33.1.1 660) *************** *** 400,406 **** /* we got one */ /* check to see if we're allowed to pass */ if (!eval_lock(player, Location(player), Leave_Lock)) { ! notify(player, T("You can't go that way.")); return; } --- 400,407 ---- /* we got one */ /* check to see if we're allowed to pass */ if (!eval_lock(player, Location(player), Leave_Lock)) { ! fail_lock(player, Location(player), Leave_Lock, ! T("You can't go that way."), NOTHING); return; } *** 1_7_7.1249/src/look.c Thu, 09 Sep 2004 16:30:52 -0500 dunemush (pennmush/c/4_look.c 1.21.1.2.1.9.1.1.1.1.1.45 660) --- 1_8_0.7(w)/src/look.c Thu, 30 Dec 2004 21:27:54 -0600 dunemush (pennmush/c/4_look.c 1.21.1.2.1.9.1.1.1.1.1.46 660) *************** *** 955,961 **** T("You have %d %s."), Pennies(player), Pennies(player) == 1 ? MONEY : MONIES); if (Moneybags(player)) ! notify(player, T("You may give unlimited ducats.")); } } --- 955,961 ---- T("You have %d %s."), Pennies(player), Pennies(player) == 1 ? MONEY : MONIES); if (Moneybags(player)) ! notify_format(player, T("You may give unlimited %s"), MONIES); } } *** 1_7_7.1249/hdrs/version.h Wed, 01 Dec 2004 20:21:44 -0600 dunemush (pennmush/c/47_version.h 1.32.1.2.1.7.1.9.1.1.1.17.1.44 660) --- 1_8_0.7(w)/hdrs/version.h Thu, 30 Dec 2004 21:27:58 -0600 dunemush (pennmush/c/47_version.h 1.32.1.2.1.7.1.9.1.1.1.17.1.45 660) *************** *** 1,4 **** ! #define VERSION "1.7.7" ! #define PATCHLEVEL "40" ! #define PATCHDATE "[12/01/2004]" ! #define NUMVERSION 001007007040 --- 1,4 ---- ! #define VERSION "1.8.0" ! #define PATCHLEVEL "0" ! #define PATCHDATE "[01/01/2005]" ! #define NUMVERSION 001008008000 *** 1_7_7.1249/MANIFEST Wed, 03 Nov 2004 14:14:40 -0600 dunemush (pennmush/d/34_MANIFEST 1.21.1.2.1.7.1.3.1.30 600) --- 1_8_0.7(w)/MANIFEST Tue, 21 Dec 2004 10:22:47 -0600 dunemush (pennmush/d/34_MANIFEST 1.21.1.2.1.7.1.3.1.31 600) *************** *** 1,4 **** --- 1,5 ---- Patchlevel + CHANGES.180 CHANGES.177 CHANGES.176 MANIFEST *** 1_7_7.1249/INSTALL Thu, 13 May 2004 11:53:18 -0500 dunemush (pennmush/g/20_INSTALL 1.7 600) --- 1_8_0.7(w)/INSTALL Tue, 21 Dec 2004 10:09:21 -0600 dunemush (pennmush/g/20_INSTALL 1.8 600) *************** *** 1,5 **** ============================================================================ ! Installation Guide to PennMUSH 1.7.x ============================================================================ This file explains how to install PennMUSH. It comes in three parts: A. Important background --- 1,5 ---- ============================================================================ ! Installation Guide to PennMUSH 1.8.x ============================================================================ This file explains how to install PennMUSH. It comes in three parts: A. Important background *** 1_7_7.1249/UPGRADING Thu, 13 May 2004 11:53:18 -0500 dunemush (pennmush/g/21_UPGRADING 1.4 600) --- 1_8_0.7(w)/UPGRADING Mon, 27 Dec 2004 15:52:10 -0600 dunemush (pennmush/g/21_UPGRADING 1.6 600) *************** *** 1,5 **** ============================================================================ ! Upgrading to PennMUSH 1.7.x ============================================================================ This file explains how to upgrade to a new version of PennMUSH. --- 1,5 ---- ============================================================================ ! Upgrading to PennMUSH 1.8.x ============================================================================ This file explains how to upgrade to a new version of PennMUSH. *************** *** 12,17 **** --- 12,20 ---- count as hacks, as they're easy to handle. C. You've hacked your server source code a lot. + There is also a list of upgrade "GOTCHAS" at the end of this file. + Please read them. + The PennMUSH developers actually only support situation A, but we'll give some useful tips for B and C here, too. *************** *** 29,44 **** This is the easiest way to upgrade your source code if you're keeping up with patches as they come out, or if you're upgrading ! patchlevels within a release (e.g., within 1.7.6). To upgrade with patch files, get all the patch files for higher patchlevels than your current version. For example, if you're running ! 1.7.6p0 and the latest version is 1.7.6p4, you need patches 1-4. These files are stored at http://ftp.pennmush.org/Source and usually ! named things like 1.7.6-patch02 (the patch from 1.7.6p1 to 1.7.6p2) ! or, in some cases, 1.7.4p20-1.7.6p0.patch (the patch from 1.7.4p20 to ! 1.7.6p0). Each patch file contains instructions at the top explaining how to apply it. FOLLOW THESE! Don't assume they're all the same. --- 32,47 ---- This is the easiest way to upgrade your source code if you're keeping up with patches as they come out, or if you're upgrading ! patchlevels within a release (e.g., within 1.8.0). To upgrade with patch files, get all the patch files for higher patchlevels than your current version. For example, if you're running ! 1.8.0p0 and the latest version is 1.8.0p4, you need patches 1-4. These files are stored at http://ftp.pennmush.org/Source and usually ! named things like 1.8.0-patch02 (the patch from 1.8.0p1 to 1.8.0p2) ! or, in some cases, 1.7.6p16-1.8.0p0.patch (the patch from 1.7.6p16 to ! 1.8.0p0). Each patch file contains instructions at the top explaining how to apply it. FOLLOW THESE! Don't assume they're all the same. *************** *** 51,57 **** A.2. Building a new distribution When you're upgrading across release and no patchlevel is provided ! to make the upgrade (e.g. from 1.7.4p3 to 1.7.7p0), it's often easier to simply build a new distribution following the INSTALL instructions, but with your old configuration stuff. --- 54,60 ---- A.2. Building a new distribution When you're upgrading across release and no patchlevel is provided ! to make the upgrade (e.g. from 1.7.4p3 to 1.8.0p0), it's often easier to simply build a new distribution following the INSTALL instructions, but with your old configuration stuff. *************** *** 141,153 **** A better approach is probably that described in the Guide for Gods, and involves creating a set of patches from the distributed old ! version of pennmush (e.g. 1.7.2p32) to your hacked version of pennmush ! (e.g. 1.7.2p32 with hacks), and then applying those patches to the new ! version of PennMUSH (e.g. 1.7.6p0) to create a hacked version thereof. If some patch hunks fail, you'll have to apply them manually. Probably the best approach is to keep all multiple versions of the code (old distributed, old hacked, new distributed, new hacked) under a source code control system like prcs that can merge changes between versions. See the Guide for Gods. --- 144,221 ---- A better approach is probably that described in the Guide for Gods, and involves creating a set of patches from the distributed old ! version of pennmush (e.g. 1.7.4p16) to your hacked version of pennmush ! (e.g. 1.7.4p16 with hacks), and then applying those patches to the new ! version of PennMUSH (e.g. 1.8.0p0) to create a hacked version thereof. If some patch hunks fail, you'll have to apply them manually. Probably the best approach is to keep all multiple versions of the code (old distributed, old hacked, new distributed, new hacked) under a source code control system like prcs that can merge changes between versions. See the Guide for Gods. + + ============================================================================ + + IMPORTANT NOTES FOR THOSE UPGRADING TO 1.8.0 FROM 1.7.6: + + * Softcode gotchas: + + * Wizards (other than God) and royalty are no longer treated as No_Pay + unless the No_Pay power is explicitly set on them, although they + can still give (themselves or others) as many pennies as they wish. + This helps stop runaway wizards in the queue (they'll run out of cash + like anyone else). To get the old behavior back, @power your admin + No_Pay. You probably want to @power any globals that use search(), + children(), mail*stats(), etc, No_Pay as well. + * @desc can no longer be gotten remotely without privileges. + @desc on privileged objects can now be evaluated by mortals. + * @adisconnect is triggered on every disconnection, partial or full. + This mirrors the behavior of @aconnect. Use %1 (the number of + remaining connections) to distinguish between partial and full + disconnects in @adisconnect code. + * Players can no longer be set CHOWN_OK. If you have existing CHOWN_OK + players, you probably want to unset this from them, or the results + will be confusing (they'll continue to appear to have the flag, + even though it won't be testable or settable or clearable; this is + desired behavior). + * New HEAVY admin flag, prevents an object from being teleported + by a mortal between two containers they own. Admin without this + flag CAN be teleported. + + * Hardcode/db/startup gotchas: + * After each @startup is enqueued (during startup or @restart/all), + we immediately run up to 5 queue cycles. This allows, e.g., God's + @startup to up to five levels of @dol/@tr/@switch/etc and still have + the queued code run ahead of other startups. This requires that you + keep God's dbref as #1. + * netmush is now started with only a single argument - the path to + the configuration file. The error log file (typically game/netmush.log + is now configured in mush.cnf. + * CHAT_SYSTEM option removed. If you don't want to use the chat system, + use restrict.cnf to disable @channel, @chat, etc. + * USE_MAILER and MAIL_ALIAS options removed. If you don't want to + use the @mail or @malias systems, use restrict.cnf to disable + the associated commands. + * QUOTA, EMPTY_ATTRS, and FUNCTION_SIDE_EFFECTS options are now + runtime options, instead of compile-time. + * SINGLE_LOGFILE option removed, and log filenames are now + runtime options. You may now give the same name to multiple log + files and get a more fine-grained version of the same effect. + * src/Makefile is now autobuilt from src/Makefile.SH. IF you use + local hacks that require src/Makefile, this is likely to be a problem + for you. You'll want to start patching Makefile.SH instead. + * The new code can no longer read databases created by versions of Penn + before 1.7.5p0. If you need to do this, load it in 1.7.6, shutdown, + and use that database. + * PROFILING #define for use when profiling the code (surprise). This + just disables the CPU timer. + * help-like commands without arguments now use the command name + as the argument. E.g. 'news' now looks for topic 'news', instead of + 'help'. If not found, we fall back on help. + * Mail messages now track not only the dbref of the sender but the + sender's creation time, so messages from dbrefs that have been + nuked and recreated can be distinguished from messages from the + original sender. This modifies the maildb and make it not usable + with older versions. All existing @mail is grandfathered in, and + can't be tracked this way. *** 1_7_7.1249/I18N Mon, 03 May 2004 12:51:19 -0500 dunemush (pennmush/g/22_I18N 1.2 600) --- 1_8_0.7(w)/I18N Tue, 21 Dec 2004 10:08:58 -0600 dunemush (pennmush/g/22_I18N 1.3 600) *************** *** 1,5 **** ============================================================================ ! Internationalization in 17.x ============================================================================ PennMUSH 1.7.3 and later have extensive support for running in non-English --- 1,5 ---- ============================================================================ ! Internationalization in PennMUSH ============================================================================ PennMUSH 1.7.3 and later have extensive support for running in non-English *** 1_7_7.1249/game/txt/hlp/pennvOLD.hlp Wed, 03 Nov 2004 14:14:40 -0600 dunemush (pennmush/g/30_pennvOLD.h 1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.9.1.2.1.3 660) --- 1_8_0.7(w)/game/txt/hlp/pennvOLD.hlp Thu, 30 Dec 2004 21:27:58 -0600 dunemush (pennmush/g/30_pennvOLD.h 1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.9.1.2.1.4 660) *************** *** 4417,4422 **** --- 4417,4423 ---- For information on a specific patchlevel of one of the versions listed, type 'help p'. For example, 'help 1.7.2p3' + 1.8.0: 0 1.7.7: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 *** 1_7_7.1249/game/txt/hlp/pennv177.hlp Fri, 03 Dec 2004 17:50:18 -0600 dunemush (pennmush/g/34_pennv177.h 1.226.1.14.1.224 660) --- 1_8_0.7(w)/game/txt/hlp/pennv177.hlp Thu, 30 Dec 2004 21:27:58 -0600 dunemush (pennmush/g/34_pennv177.h 1.226.1.14.1.225 660) *************** *** 1,16 **** & 1.7.7p40 - & changes - 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' - lists the [initials] of developers and porters that are used in the list - of changes. - - Information about changes in prior releases can be found under - help topics named for each release (e.g. 'help 1.7.2p30'). - A list of the patchlevels associated with each release can - be read in 'help patchlevels'. - Version 1.7.7 patchlevel 40 December 1, 2004 Major Changes: --- 1,4 ---- *** 1_7_7.1249/CHANGES.180 Thu, 30 Dec 2004 21:28:02 -0600 dunemush () --- 1_8_0.7(w)/CHANGES.180 Mon, 27 Dec 2004 16:41:16 -0600 dunemush (pennmush/h/21_CHANGES.18 1.3 600) *************** *** 0 **** --- 1,84 ---- + + This is the most current changes file for PennMUSH. Please look it + over; each version contains new things which might significantly affect + the function of your server. Changes are reported in reverse + chronological order (most recent first) + + [TAP] is T. Alexander Popiel, a PennMUSH developer (aka Talek) + [SW] is Shawn Wagner, a PennMUSH developer (aka Raevnos) + [EEH] is Ervin Hearn III, a PennMUSH developer (aka Noltar) + [3] refers to code by (or inspired by) TinyMUSH 3.0 + [Rhost] refers to code by (or inspired by) RhostMUSH + + ========================================================================== + + Version 1.8.0 patchlevel 0 January 1, 2005 + + Major Changes (since 1.7.6): + * SQL support (MySQL server). + * SSL support. + * Attribute trees. + * Object ids uniquely identify an object across recycling dbrefs. + * Anonymous attributes via #lambda. + * Ancestor objects for each object type. + * Interactions (something like "realms" in mux2) control conditions + under which objects can see, hear, match, or establish the presence + of each other. See local.c. + * New flag/power internals, no more limits on number of flags, + flags can be added/removed at runtime. + * New game/chat db formats, more readable, extensible, and + better at detecting problems. + * New framework for performing lock failure activities in hardcode. + * Customized mush.cnf configuration parameters can be easily added. + * New chunk memory allocator does our own paging to disk, + so the resident memory footprint is much lower. + * Lock system rewrite. #true and #false atoms for locks. + * minimal.db is no more. If you start up the server and there's no + db to be found, it creates a new minimal database in memory. + * New commands: @command/alias, buy, @boot/silent, @assert, huh_command, + @decomp/prefix, @edit/first, ex/parent, empty, @nscemit, @function, + @nsemit, @nsoemit, @nslemit, @nsremit, @nszemit, ], @command/add, + @command/del, warn_on_missing, @switch/regexp, @*emit/spoof, + @tel/inside, @hook/ignore, @hook/override, @chan/recall, with/room, + IDLE, @sitelock/check, SCREENWIDTH, SCREENHEIGHT, ex/all + * New functions: zwho, zmwho, l/lv/n/nv/x/xvthings, malias, locks, llocks, + lset, lockflags, llockflags, lattrp, nattr/p, xattr/p, mailsend, + x/xv/n/nv/exits/players/things, nsemit/cemit/remit/lemit/oemit/zemit, + andlflags, andlpowers, orlflags, orlpower, andpowers, orpowers, + align, sent, recv, scan, valid, allof, firstof, tr, vcross, hostname, + ipaddr, cmds, reswitch*, digest, cowner, baseconv, randword, + trimtiny, trimpenn, terminfo, lports, strreplace, fraction, root, + children, accname, lpos, width, height + * New behaviors: @adisconnect, No_Pay, @name, @lock/speech, examine, + @cemit, give, @cost, SUSPECT, @startup, escape(), time(), merge(), + @set, move, @name, etimefmt(), insert(), PUPPET, help, rand, DEBUG, + TERSE, powers(), @config/set, @function/restrict, %~, @lock/leave, + tel(), @descformat, @idescformat, @aconnect + * @lock/interact can prevent other players from transmitting any + normal sound to you (that is, you won't hear them speak, pose, + emit, etc., like gagging them in a client). + * New flags: HEAVY, ORPHAN, MISTRUST + * New powers: Debit, Can_NSPemit + * New attribute flags: NO_NAME, NO_SPACE, DEBUG, NEARBY, PUBLIC, VEILED + * New channel flags: Notitles, Nonames, Nocemit + * You can log setting/resetting of flags/powers, as well as individual + commands or function calls. + * Rolling activity log dumped on panic dumps or visible with @uptime. + * A new test harness for developing regression test suites in perl + for PennMUSH is now included; few test suites are. If you can figure + out how to use this, write some tests for us! + * More and better telnet negotiation. + * Many internal improvements. Many old compile-time options removed + or replaced by run-time options. Source code commenting using + doxygen. Improved internationalization. + * New config directives: unconnected_idle_timeout, max_guests, + max_global_fns, read_remote_desc, default_home + Minor Changes (since last 1.7.7): + * The LFAIL/OLFAIL/ALFAIL messages are activated whenever a @lock/leave + is checked and failed, not just when a 'leave' command fails. + (So they work for failed attempts to leave rooms by exits/@tel). + Suggested by Zith@Lovarii. + Fixes (since last 1.7.7): + * Help for grab() now references graball(). Report by Sketch@M*U*S*H. + * Reference to 'ducats' in code replaced by appropriate plural + currency unit. Report by Kinumi@ShoujoAi.