Changeset 463
- Timestamp:
- 08/16/06 01:09:41 (2 years ago)
- Files:
-
- 1.7.7/CHANGES.177 (modified) (2 diffs)
- 1.7.7/Configure (modified) (5 diffs)
- 1.7.7/INSTALL (modified) (1 diff)
- 1.7.7/MANIFEST (modified) (4 diffs)
- 1.7.7/Makefile.SH (modified) (5 diffs)
- 1.7.7/Patchlevel (modified) (1 diff)
- 1.7.7/README.SQL (added)
- 1.7.7/README.SSL (modified) (1 diff)
- 1.7.7/UPGRADING (modified) (1 diff)
- 1.7.7/config_h.SH (modified) (1 diff)
- 1.7.7/game/README (modified) (2 diffs)
- 1.7.7/game/mushcnf.dst (modified) (2 diffs)
- 1.7.7/game/restart (modified) (5 diffs)
- 1.7.7/game/txt/hlp/pennattr.hlp (modified) (3 diffs)
- 1.7.7/game/txt/hlp/penncmd.hlp (modified) (8 diffs)
- 1.7.7/game/txt/hlp/pennconf.hlp (modified) (1 diff)
- 1.7.7/game/txt/hlp/pennflag.hlp (modified) (3 diffs)
- 1.7.7/game/txt/hlp/pennfunc.hlp (modified) (4 diffs)
- 1.7.7/game/txt/hlp/penntop.hlp (modified) (4 diffs)
- 1.7.7/game/txt/hlp/pennv177.hlp (modified) (3 diffs)
- 1.7.7/game/txt/hlp/pennvOLD.hlp (modified) (1 diff)
- 1.7.7/hdrs/attrib.h (modified) (2 diffs)
- 1.7.7/hdrs/bufferq.h (added)
- 1.7.7/hdrs/command.h (modified) (1 diff)
- 1.7.7/hdrs/compile.h (added)
- 1.7.7/hdrs/conf.h (modified) (6 diffs)
- 1.7.7/hdrs/dbdefs.h (modified) (4 diffs)
- 1.7.7/hdrs/extchat.h (modified) (3 diffs)
- 1.7.7/hdrs/externs.h (modified) (8 diffs)
- 1.7.7/hdrs/flags.h (modified) (1 diff)
- 1.7.7/hdrs/game.h (modified) (1 diff)
- 1.7.7/hdrs/lock.h (modified) (1 diff)
- 1.7.7/hdrs/log.h (modified) (2 diffs)
- 1.7.7/hdrs/mushdb.h (modified) (2 diffs)
- 1.7.7/hdrs/mushtype.h (modified) (1 diff)
- 1.7.7/hdrs/version.h (modified) (1 diff)
- 1.7.7/src/Makefile.SH (modified) (18 diffs)
- 1.7.7/src/attrib.c (modified) (29 diffs)
- 1.7.7/src/boolexp.c (modified) (6 diffs)
- 1.7.7/src/bsd.c (modified) (8 diffs)
- 1.7.7/src/bufferq.c (added)
- 1.7.7/src/chunk.c (modified) (7 diffs)
- 1.7.7/src/cmdlocal.dst (modified) (1 diff)
- 1.7.7/src/cmds.c (modified) (3 diffs)
- 1.7.7/src/command.c (modified) (5 diffs)
- 1.7.7/src/conf.c (modified) (4 diffs)
- 1.7.7/src/create.c (modified) (1 diff)
- 1.7.7/src/csrimalloc.c (modified) (1 diff)
- 1.7.7/src/db.c (modified) (1 diff)
- 1.7.7/src/extchat.c (modified) (15 diffs)
- 1.7.7/src/extmail.c (modified) (1 diff)
- 1.7.7/src/flaglocal.dst (modified) (1 diff)
- 1.7.7/src/flags.c (modified) (2 diffs)
- 1.7.7/src/function.c (modified) (3 diffs)
- 1.7.7/src/fundb.c (modified) (3 diffs)
- 1.7.7/src/funlocal.dst (modified) (1 diff)
- 1.7.7/src/funstr.c (modified) (3 diffs)
- 1.7.7/src/funtime.c (modified) (1 diff)
- 1.7.7/src/game.c (modified) (32 diffs)
- 1.7.7/src/help.c (modified) (1 diff)
- 1.7.7/src/ident.c (modified) (1 diff)
- 1.7.7/src/local.dst (modified) (1 diff)
- 1.7.7/src/lock.c (modified) (4 diffs)
- 1.7.7/src/log.c (modified) (4 diffs)
- 1.7.7/src/look.c (modified) (2 diffs)
- 1.7.7/src/malias.c (modified) (1 diff)
- 1.7.7/src/move.c (modified) (2 diffs)
- 1.7.7/src/mysocket.c (modified) (1 diff)
- 1.7.7/src/notify.c (modified) (3 diffs)
- 1.7.7/src/parse.c (modified) (2 diffs)
- 1.7.7/src/pcre.c (modified) (1 diff)
- 1.7.7/src/player.c (modified) (1 diff)
- 1.7.7/src/plyrlist.c (modified) (1 diff)
- 1.7.7/src/predicat.c (modified) (10 diffs)
- 1.7.7/src/ptab.c (modified) (1 diff)
- 1.7.7/src/rob.c (modified) (8 diffs)
- 1.7.7/src/set.c (modified) (1 diff)
- 1.7.7/src/sig.c (modified) (1 diff)
- 1.7.7/src/speech.c (modified) (2 diffs)
- 1.7.7/src/sql.c (added)
- 1.7.7/src/strtree.c (modified) (1 diff)
- 1.7.7/src/tables.c (modified) (2 diffs)
- 1.7.7/src/timer.c (modified) (2 diffs)
- 1.7.7/src/unparse.c (modified) (1 diff)
- 1.7.7/src/warnings.c (modified) (1 diff)
- 1.7.7/src/wiz.c (modified) (3 diffs)
- 1.7.7/test/testatree.pl (modified) (2 diffs)
- 1.7.7/utils/gentables.c (modified) (3 diffs)
- 1.7.7/win32/cmds.h (modified) (2 diffs)
- 1.7.7/win32/config.h (modified) (2 diffs)
- 1.7.7/win32/funs.h (modified) (1 diff)
- 1.7.7/win32/pennmush.dsp (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
1.7.7/CHANGES.177
r461 r463 19 19 ========================================================================== 20 20 21 Version 1.7.7 patchlevel 32 May 26, 2004 22 23 Major Changes: 24 * SQL support. PennMUSH can now operate as an SQL client and perform 25 queries against an SQL server. Currently only the MySQL server is 26 supported. This adds the @sql command, the sql() and sqlescape() 27 functions, and the Sql_Ok power. See README.SQL for some 28 additional information. Mostly based on patches by Hans Engelen. 29 * Creating a leaf attribute automatically creates associated branch 30 attributes if they are not already present. [TAP] 31 * When a $command matches on an object, but the object's use-lock or 32 command-lock prevents the command from being run, the object's 33 COMMAND_LOCK`FAILURE, COMMAND_LOCK`OFAILURE, and COMMAND_LOCK`AFAILURE 34 attributes will be triggered if the $command never successfully 35 matched, rather than returning a Huh? to the player. 36 * Exits and rooms may now run $commands. Rooms are treated as being 37 located in themselves for purposes of location checks. Exits are 38 treated as being located in their source room. Suggested by [TAP]. 39 Commands: 40 * 'empty <object>' attempts to get each item in <object> and put 41 it alongside <object> (in <object>'s location). 42 * 'give <object> to <player>' syntax added. 43 Minor Changes (user-visible): 44 * @COST attribute is now evaluated, so you can make costs depend 45 on who's paying, a selected item, etc. Suggested by Walker@M*U*S*H. 46 Also, the amount given is passed in as %0, so you can code 47 vendors that accept any amount. 48 * New OBJID^<objid> lock atom. 49 * The server now maintains a rolling log of activity (commands issued, 50 evaluations parsed, and locks evaluated), that is dumped to the log 51 file on panic, or can be seen by God with @uptime. This aids 52 debugging code that causes a "clean" panic rather than a crash. 53 Suggested by Intrevis@M*U*S*H. 54 * When checking a use/command/listen-lock on an object with patterns 55 that get matched, we only check the lock once and cache the result, 56 to prevent multiple lock evaluations if multiple patterns match. [TAP] 57 * @chan/recall now shows nospoof tags for @cemit'd lines. 58 Suggested by Sholevi@M*U*S*H. 59 * SUSPECT flag can now be applied to any type of object. 60 Suggested by Oriens@Alexandria. 61 Minor Changes (internals): 62 * fun_escape() and fun_secure() use the same list of special characters, 63 rather than each having their own copy. [SW] 64 * Buffer queue code used by @chan/buffer and the activity log refactored 65 into src/bufferq.c and hdrs/bufferq.h. 66 * Added mush_panicf(), with printf()-style format and arguments. [SW] 67 Fixes: 68 * @scan correctly shows attributes on parents again. Report by 69 Wayne@PDX. 70 * @shutdown/panic and @shutdown/paranoid work again. [SW] 71 * A panic DB could be created before the database files were actually read, 72 causing problems on the next restart. [SW] 73 * Win32 and Debian installer portability fixes. [EEH] 74 * Code cleanup around errno. [SW] 75 * The locate() function now respects visibility and interactions. 76 Report by Jules@M*U*S*H. 77 78 21 79 Version 1.7.7 patchlevel 31 May 11, 2004 22 80 81 Minor Changes: 82 * netmush is now started with only a single argument - the path to 83 the configuration file. The error log file (typically game/netmush.log) 84 is now configured in mush.cnf. Suggested by Vadiv@M*U*S*H. 85 * The restart script now bases its decision about whether the mush 86 is already running on the full path to the configuration file, 87 which means you can leave mush.cnf named mush.cnf without fear 88 of restart problems when multiple mushes are using the same 89 host. This also facilitates make update. Suggested by Vadiv@M*U*S*H. 90 * The GAMEDIR environment variable can be passed to 'make update' 91 to cause it to update *.cnf files in directories other than 92 game/ (using the template *.dst files in game/). 93 E.g.: make GAMEDIR=/home/othermush/game update 94 Commands: 95 * @nscemit. Suggested by Mystery8@ST:AW. 96 Functions: 97 * nscemit(). Suggested by Mystery8@ST:AW. 23 98 Flags: 24 99 * New HEAVY admin flag, prevents an object from being teleported … … 26 101 flag can now be teleported. 27 102 Fixes: 103 * Help fixes by Anri@AkaneaMUSH and Intrevis@M*U*S*H. 28 104 * mix() now treats empty lists as empty, instead of containing a single 29 105 null element. Report by Luke@M*U*S*H. 1.7.7/Configure
r457 r463 21 21 # $Id: Head.U 1.1 Thu, 20 Jul 2000 17:42:54 -0500 dunemush $ 22 22 # 23 # Generated on Mon Sep 30 23:26:16 CDT 2002[metaconfig 3.0 PL70]23 # Generated on Mon May 24 11:39:50 CDT 2004 [metaconfig 3.0 PL70] 24 24 25 25 cat >/tmp/c1$$ <<EOF … … 417 417 installdir='' 418 418 libc='' 419 d_mysql='' 420 libmysqlclient='' 419 421 glibpth='' 420 422 libpth='' … … 4782 4784 eval $inlibc 4783 4785 4786 : see if we should include -lmysqlclient 4787 echo " " 4788 4789 d_mysql="$undef" 4790 4791 if $test "x$no_mysql" = "x"; then 4792 4793 libmysqlclient="-lmysqlclient" 4794 4795 $cat > test_mysql.c <<EOM 4796 #include <stdio.h> 4797 #include <stdlib.h> 4798 #include <mysql/mysql.h> 4799 #include <mysql/errmsg.h> 4800 4801 int main(int argc, char **argv) { 4802 printf("Your mysql is version %s\n",mysql_get_client_info()); 4803 exit(0); 4804 } 4805 EOM 4806 4807 if $cc $ccflags $ldflags -o test_mysql test_mysql.c $libs $libmysqlclient >/dev/null 2>&1 ; 4808 then 4809 echo 'You have mysql...' >&4 4810 version=`./test_mysql` 4811 if $test $? -eq 0; then 4812 echo "$version" >&4 4813 d_mysql="$define" 4814 else 4815 echo "...but my test program didn't run correctly." >&4 4816 libmysqlclient='' 4817 fi 4818 else 4819 echo "You don't seem to have mysql." >&4 4820 libmysqlclient='' 4821 fi 4822 $rm -f test_mysql* core 4823 4824 else 4825 4826 echo "Skipping mysql tests." >&4 4827 libmysqlclient='' 4828 4829 fi 4830 4784 4831 : check for a new-style definitions 4785 4832 echo " " … … 6930 6977 d_memset='$d_memset' 6931 6978 d_mymalloc='$d_mymalloc' 6979 d_mysql='$d_mysql' 6932 6980 d_newstyle='$d_newstyle' 6933 6981 d_oldsock='$d_oldsock' … … 7056 7104 libc='$libc' 7057 7105 libcrypto='$libcrypto' 7106 libmysqlclient='$libmysqlclient' 7058 7107 libpth='$libpth' 7059 7108 libs='$libs' 1.7.7/INSTALL
r453 r463 162 162 game subdirectory for each MUSH (run it once per MUSH you plan to run). 163 163 Files in these subdirectories will already be customized in many ways, 164 so what follows may be slightly different. :) 164 so what follows may be slightly different. :) This is probably broken. 165 165 166 166 7. Read game/README and follow those instructions. 167 168 On cygwin systems, you will likely have to edit the game/restart169 script and explicitly set GAMEDIR (to /usr/src/pennmush/game)170 167 171 168 A final thing you may want to think about is compiling announce.c or 1.7.7/MANIFEST
r459 r463 13 13 hdrs/attrib.h 14 14 hdrs/boolexp.h 15 hdrs/bufferq.h 15 16 hdrs/command.h 17 hdrs/compile.h 16 18 hdrs/chunk.h 17 19 hdrs/htab.h … … 54 56 src/boolexp.c 55 57 src/bsd.c 58 src/bufferq.c 56 59 src/chunk.c 57 60 src/cmds.c … … 110 113 src/sig.c 111 114 src/speech.c 115 src/sql.c 112 116 src/switchinc.c 113 117 src/strdup.c … … 213 217 README 214 218 README.SSL 219 README.SQL 215 220 INSTALL 216 221 UPGRADING 1.7.7/Makefile.SH
r457 r463 50 50 CCFLAGS=$optimize -I.. -I../hdrs $ccflags $warnings 51 51 LDFLAGS=$ldflags 52 CLIBS=$libs $cryptlib $libssl $libcrypto 52 CLIBS=$libs $cryptlib $libssl $libcrypto $libmysqlclient 53 53 INSTALL=$install 54 54 INSTALLDIR=$installdir … … 90 90 autogen: hdrs/cmds.h hdrs/funs.h hdrs/switches.h 91 91 92 hdrs/cmds.h: src/cmds.c src/command.c src/cque.c src/help.c src/set.c Patchlevel92 hdrs/cmds.h: src/cmds.c src/command.c src/cque.c src/help.c src/set.c src/sql.c Patchlevel 93 93 (cd utils; sh mkcmds.sh commands) 94 94 … … 99 99 (cd utils; sh mkcmds.sh switches) 100 100 101 hdrs/funs.h: src/fun*.c src/bsd.c src/conf.c src/extmail.c src/help.c src/wiz.c Patchlevel101 hdrs/funs.h: src/fun*.c src/bsd.c src/conf.c src/extmail.c src/help.c src/wiz.c src/sql.c Patchlevel 102 102 (cd utils; sh mkcmds.sh functions) 103 103 … … 165 165 -@$perl utils/customize.pl 166 166 167 # The default place to find the runtime files is in this directory, 168 # but it can be overridden with env variables so people can use 169 # other game directories. 170 GAMEDIR=game 171 167 172 update-conf: game/mushcnf.dst game/aliascnf.dst game/restrictcnf.dst game/namescnf.dst 168 173 -@$touch game/mushcnf.dst 169 -@$perl utils/update-cnf.pl game/mush.cnf game/mushcnf.dst174 -@$perl utils/update-cnf.pl \$(GAMEDIR)/mush.cnf game/mushcnf.dst 170 175 -@$touch game/aliascnf.dst 171 -@$perl utils/update-cnf.pl game/alias.cnf game/aliascnf.dst176 -@$perl utils/update-cnf.pl \$(GAMEDIR)/alias.cnf game/aliascnf.dst 172 177 -@$touch game/restrictcnf.dst 173 -@$perl utils/update-cnf.pl game/restrict.cnf game/restrictcnf.dst174 -@if [ ! -f game/names.cnf ]; then \$(CP) game/namescnf.dst game/names.cnf; fi175 176 game/alias.cnf: game/aliascnf.dst178 -@$perl utils/update-cnf.pl \$(GAMEDIR)/restrict.cnf game/restrictcnf.dst 179 -@if [ ! -f \$(GAMEDIR)/names.cnf ]; then \$(CP) game/namescnf.dst \$(GAMEDIR)/names.cnf; fi 180 181 \$(GAMEDIR)/alias.cnf: game/aliascnf.dst 177 182 -@$touch game/aliascnf.dst 178 -@$perl utils/update-cnf.pl game/alias.cnf game/aliascnf.dst179 180 game/restrict.cnf: game/restrictcnf.dst183 -@$perl utils/update-cnf.pl \$(GAMEDIR)/alias.cnf game/aliascnf.dst 184 185 \$(GAMEDIR)/restrict.cnf: game/restrictcnf.dst 181 186 -@$touch game/restrictcnf.dst 182 -@$perl utils/update-cnf.pl game/restrict.cnf game/restrictcnf.dst183 184 game/names.cnf: game/namescnf.dst187 -@$perl utils/update-cnf.pl \$(GAMEDIR)/restrict.cnf game/restrictcnf.dst 188 189 \$(GAMEDIR)/names.cnf: game/namescnf.dst 185 190 if [ ! -f game/names.cnf ]; then \ 186 \$(CP) game/namescnf.dst game/names.cnf \191 \$(CP) game/namescnf.dst \$(GAMEDIR)/names.cnf \ 187 192 fi 188 193 189 game/mush.cnf: game/mushcnf.dst194 \$(GAMEDIR)/mush.cnf: game/mushcnf.dst 190 195 -@$touch game/mushcnf.dst 191 -@$perl utils/update-cnf.pl game/mush.cnf game/mushcnf.dst196 -@$perl utils/update-cnf.pl \$(GAMEDIR)/mush.cnf game/mushcnf.dst 192 197 193 198 update: update-hdr update-conf … … 291 296 (cd game/txt; make clean compose.sh) 292 297 $(INSTALLDIR) $(DEB_INSTALL) 298 $(INSTALLDIR) $(DEB_BIN) 293 299 $(CP) -R game/* $(DEB_INSTALL) 294 300 -rm -f $(DEB_INSTALL)/netmush $(DEB_INSTALL)/info_slave 1.7.7/Patchlevel
r461 r463 1 1 Do not edit this file. It is maintained by the official PennMUSH patches. 2 This is PennMUSH 1.7.7p3 12 This is PennMUSH 1.7.7p32 1.7.7/README.SSL
r433 r463 1 1 Use SSL with PennMUSH 2 Revised: 11 Augu est 20032 Revised: 11 August 2003 3 3 4 4 1.7.7/UPGRADING
r455 r463 77 77 If you've modified the restart script, you'll have to decide if 78 78 your modified script is still appropriate, or modify the distributed 79 game/restart script again as you like it. 79 game/restart script again as you like it. The latter is encouraged. 80 80 81 81 You can also copy your old game/access.cnf, game/sitelock.cnf, and 1.7.7/config_h.SH
r451 r463 834 834 #$i_stdarg I_STDARG /**/ 835 835 836 /* HAS_MYSQL: 837 * Defined if mysql client libraries are available. 838 */ 839 #$d_mysql HAS_MYSQL /**/ 840 836 841 /* HAS_OPENSSL: 837 842 * Defined if openssl 0.9.6+ is available. 1.7.7/game/README
r439 r463 12 12 13 13 WIN32: 14 Under win32 using the Microsoft compiler, DO NOT rename mush.cnf.15 Also, ignore the restart script. In the configuration file, turn off16 disk database compression; it is not supported.17 Then go to the game directory and run PennMUSH.exe.Poof, you're done.14 Under win32 using the Microsoft compiler, ignore the restart script. 15 In the configuration file, turn off disk database compression; it is 16 not supported. Then go to the game directory and run PennMUSH.exe. 17 Poof, you're done. 18 18 19 19 UNIX: 20 On Unix or similar systems, you should link it to <your MUSH name>.cnf 21 (if you don't have links, rename it to <your MUSH name>.cnf). 22 Then edit the restart script. Change CONF_FILE to the new name of the 23 configuration file. The restart script is written for sh, and assumes 24 a fairly standard Berkeley UNIX setup. If you're on a HP-UX or SysV 25 machine, for example, you may need to change the restart script a bit 26 (the ps options, for example). Then run it. 20 Edit the restart script. Change GAMEDIR to the path to the directory 21 containing mush.cnf. Read about the optional settings in that file. 22 The restart script is written for sh, and assumes a fairly standard 23 Berkeley UNIX setup. If you're on a HP-UX or SysV machine, for example, 24 you may need to change the restart script a bit (the ps options, 25 for example). Then run it. 27 26 28 27 You should now be ready to start the game. This distribution can … … 40 39 41 40 The logfiles in the "log" directory generally contain useful 42 information. You will probably want to read your mainlogfile (defined43 in the restart script) every time, since errors and other important44 messages getprinted to that logfile.41 information. You will probably want to read your error logfile (defined 42 in mush.cnf) every time, since errors and other important messages get 43 printed to that logfile. 45 44 46 45 ============================================================================ 1.7.7/game/mushcnf.dst
r459 r463 475 475 ### 476 476 477 # Filename to log important messages (startups, errors, shutdowns) 478 error_log log/netmush.log 479 477 480 # Filename to log connections to 478 481 connect_log log/connect.log … … 538 541 539 542 ### 543 ### SQL connectivity 544 ### 545 546 # What SQL server platform should we use? Options include: 547 # mysql, disabled (the default) 548 sql_platform disabled 549 550 # What's the SQL hostname? Use '127.0.0.1' for a TCP connection 551 # to the local host, and 'localhost' for a domain socket connection. 552 sql_host 127.0.0.1 553 554 # What's the SQL database? You have to set this to a database that 555 # you create. 556 sql_database mush 557 558 # What username to access the database? 559 sql_username mush 560 561 # What password for that user? Change this! 562 sql_password mush 563 564 ### 540 565 ### Options affecting commands and functions 541 566 ### (See also restrict_command to restrict command use) 1.7.7/game/restart
r459 r463 1 1 #!/bin/sh 2 2 # 3 # usage: restart 4 # 5 # REQUIRED: You must set this to the path to your game directory. 6 # E.g.: /home/mush/game 7 GAMEDIR= 3 8 4 # usage: restart 5 6 #-- options 7 8 # If this doesn't work, you can set GAMEDIR to the directory this 9 # script lives in by hand. 10 GAMEDIR=`which $0 | sed 's/\/[^\/]*$//'` 11 12 # The config file 13 CONF_FILE=mush.cnf 14 15 # The error log file 16 LOG=log/netmush.log 9 # OPTIONAL things that you may want to tweak. 17 10 18 11 # Uncomment the line below to attempt to allow crashes to produce … … 20 13 # to debug them. 21 14 #ulimit -c unlimited 22 23 if [ ! -d $GAMEDIR ]; then24 echo "GAMEDIR doesn't appear to be a directory. It's: $GAMEDIR"25 exit 126 fi27 28 cd $GAMEDIR29 echo Running from `pwd`30 31 if [ ! -f $CONF_FILE ]; then32 echo "CONF_FILE doesn't exist. It's: $CONF_FILE"33 echo "Create $CONF_FILE from $GAMEDIR/mushcnf.dst"34 exit 135 fi36 15 37 16 # Internationalization stuff … … 50 29 #TZ=:EST5EDT 51 30 #export TZ 31 32 33 # The config file. Best to keep this as is. If you must change 34 # the name, make it a link to mush.cnf. 35 CONF_FILE=mush.cnf 36 37 ####################################################################### 38 39 if [ -z $GAMEDIR ]; then 40 echo "You must set GAMEDIR in the restart script." 41 exit 1 42 fi 43 44 if [ ! -d $GAMEDIR ]; then 45 echo "GAMEDIR doesn't appear to be a directory. It's: $GAMEDIR" 46 exit 1 47 fi 48 49 cd $GAMEDIR 50 echo Running from `pwd` 51 52 if [ ! -f $CONF_FILE ]; then 53 echo "CONF_FILE doesn't exist. It's: $CONF_FILE" 54 echo "Create $CONF_FILE from $GAMEDIR/mushcnf.dst" 55 exit 1 56 fi 52 57 53 58 # If netmush isn't here, they probably didn't make install … … 81 86 # Prevent double-starting things. You may need to provide a pathname for 82 87 # some of the commands. System V flavors need "ps -f" instead of "ps uwx". 83 mush=`ps uw x | grep "$CONF_FILE" | grep -v grep | wc -l`88 mush=`ps uwwx | grep " $GAMEDIR/$CONF_FILE" | grep -v grep | wc -l` 84 89 85 90 86 91 if [ $mush -gt 0 ]; then 87 echo Mush already active or some other process is using $ CONF_FILE.92 echo Mush already active or some other process is using $GAMEDIR/$CONF_FILE. 88 93 exit 0 89 94 fi … … 135 140 export DATEMSK 136 141 137 LC_ALL=$LANG LANG=$LANG ./netmush $ CONF_FILE $LOG&142 LC_ALL=$LANG LANG=$LANG ./netmush $GAMEDIR/$CONF_FILE & 1.7.7/game/txt/hlp/pennattr.hlp
r441 r463 19 19 A branch attribute is an attribute that has other branches or leaves 20 20 beneath it; a leaf attribute is one that does not. Any attribute may 21 act as a branch. Branch attributes must exist in order to create any22 leaf attributes from them.21 act as a branch. If you try to create an unsupported leaf, branch 22 attributes will be created as needed to support it. 23 23 24 24 See help attribute trees2 for more information and examples. … … 76 76 child has its own overriding attribute. However, children that wish 77 77 to override a leaf attribute must also have their own (overriding) 78 copy of all branches leading to that leaf. So this doesn't work:78 copy of all branches leading to that leaf. This means that when you do: 79 79 80 80 &BRANCH parent = a branch 81 81 &BRANCH`LEAF parent = a leaf 82 &BRANCH`LEAF child = a new leaf <--- No good until you add child/BRANCH 82 &BRANCH`LEAF child = a new leaf 83 84 In this case, a new BRANCH attribute will be created on the child, 85 so '-[get(child/BRANCH)]-' will return '--'. This may not be what 86 you actually want. 83 87 84 88 If a branch on the parent is set no_inherit, it will not be inherited, … … 90 94 access to inherited parent data. 91 95 92 1.7.7/game/txt/hlp/penncmd.hlp
r461 r463 72 72 @motd @newpassword @pcreate @poll @poor 73 73 @power @purge @quota @readcache @rejectmotd 74 @shutdown @sitelock @squota @uptime @wall 75 @wizmotd @wizwall cd ch cv 74 @shutdown @sitelock @sql @squota @uptime 75 @wall @wizmotd @wizwall cd ch 76 cv 76 77 77 78 & ] … … 713 714 714 715 This sets the number of pennies that need to be given to an object to 715 trigger its @pay/@opay/@apay attributes. 716 trigger its @pay/@opay/@apay attributes. It is evaluated, so you 717 may use functions as well as simple integers; the amount given by 718 the player is passed as %0. 716 719 717 720 Example: … … 723 726 > Your exit has been created. 724 727 (The exit will also have been opened by the machine.) 728 729 @cost charity=%0 730 @pay charity=Thanks for your donation of %0. 725 731 726 732 See also: give, MONEY, @pay, money() … … 2000 2006 @lock/use Admin Commands=flag^wizard|flag^royalty 2001 2007 2002 You can test for the current IP address or hostname of the owner 2003 of the object (who must be connected to pass this test) with: 2004 @lock <object>=ip^<ip address> 2005 @lock <object>=hostname^<hostname> 2006 2007 You may use wildcards (*, ?) in these patterns. Note that hostname 2008 tests are insecure; players who control their reverse DNS can spoof 2009 any hostname. 2010 2011 See also: locktypes, @clock 2008 You can test for an object id, instead of a dbref, with: 2009 2010 @lock <object>=objid^<object id> 2011 2012 See also: locktypes, @clock, objid() 2012 2013 & locktypes 2013 2014 & locklist … … 2589 2590 See also: MONEY 2590 2591 & @power 2592 @power/list [<power name pattern>] 2593 @power <power> 2591 2594 @power <object>=[!]<power> 2592 2595 2593 This is a wizard-only command which allows the granting of special 2594 privileges to objects of any type. 2595 2596 A list of powers is given in "help powers list". 2596 This is a wizard-only command which manipuates powers, special privileges 2597 that can be granted to objects. See also "help powers". 2598 2599 @power/list lists the defined powers. A list of standard powers with 2600 explanations is given in "help powers list". 2601 2602 When given a power name as an argument, @power displays information 2603 about a power. 2604 2605 @power <object>=[!]<power> sets (or clears) the given power on an 2606 object. 2607 2608 God can add, delete, and otherwise manipulate power definitions. 2609 See help @power2 for these commands. 2610 & @power2 2611 @power/add <power name>=[<letter>], [<type(s)>], [<setperms>], [<unsetperms>] 2612 @power/delete <power name> 2613 @power/alias <power name>=<alias> 2614 @power/letter <power name>[=<letter>] 2615 @power/restrict <power name>=[<setperms>], [<unsetperms>] 2616 @power/type <power name>=<type(s)> 2617 @power/enable <power name> 2618 @power/disable <powername> 2619 2620 These commands manipulate power definitions. Only God may use them. 2621 /disable disables a power, making it invisible and unusable 2622 /enable re-enables a disabled power 2623 /alias adds a new alias for an existing power 2624 /letter changes or removes a single-letter alias for an existing power. 2625 /restrict changes power permissions (see help @power3) 2626 /type changes power type(s) (see help @power3) 2627 /delete deletes a power completely, removing it from all objects 2628 in the database and the removing it permanently from the 2629 power table. It requires the exact power name or alias to be used. 2630 Be very very careful with this. 2631 2632 See help @power3 for information on @power/add 2633 & @power3 2634 @power/add is used to add a new power with the given name. Arguments 2635 other than the power name are optional: 2636 2637 <letter> gives the power's one-letter abbreviation, which must 2638 not conflict with the one-letter abbreviation of another power that 2639 could be applied to the same object type(s). It defaults to none, which 2640 means it won't appear in a list of power characters but can still be 2641 tested for with haspower(), andlpowers(), and orlpowers(). 2642 <type> specifies the space-separated list of types to which the power 2643 applies, and may be 'any' or one or more of 'room', 'thing', 'player', 2644 or 'exit'. It defaults to 'any'. 2645 <setperms> specifies the space-separated list of permissions for who can 2646 set and/or see the power. See 'help power permissions' for details. 2647 It defaults to 'any' 2648 <unsetperms> specifies the space-separated list of permissions for who 2649 can clear the power on an object they control. It defaults to 2650 whatever <setperms> is given, or 'any'. 2651 2652 Powers added with @power/add are saved with the database when it 2653 is dumped, and do not need to be re-added at startup. They are 2654 treated exactly as any other power in the server. 2597 2655 & @prefix 2598 2656 @prefix <object> = <message> … … 2971 3029 if their host-pattern matches <string> exactly. 2972 3030 3031 & @sql 3032 @sql <query> 3033 3034 This command issues and SQL query if the MUSH supports SQL and 3035 can connect to an SQL server. You must be WIZARD or have the 3036 Sql_Ok power to use @sql. 3037 3038 Generally, the sql() function is more useful for coding, as it 3039 delimits its return values, but @sql is handy for INSERT-type 3040 queries and quick checks. If you pass arbitrary data to @sql, 3041 be sure you call sqlescape() on it (see the example in help sql()). 3042 3043 Example: @sql SHOW TABLES 3044 3045 See also: sql(), sqlescape() 2973 3046 & @squota 2974 3047 @squota <victim> [= [+|-] <amount>] … … 3611 3684 3612 3685 See also: follow, unfollow, dismiss, followers(), following() 3686 & empty 3687 empty <object> 3688 3689 The empty command attempts to move all the contents of <object> 3690 to <object>'s location. You must either be holding <object> 3691 (in which case the command is like getting <object>'s <item> 3692 for each item) or be in the same location as <object> (in which 3693 case the command is like getting <object>'s <item> and dropping it). 3694 3695 The empty command assumes that all <object>'s items pass through the 3696 hands of the player running the command. Therefore, the same kinds of 3697 locks and messages that are applied in a possessive get (and, possibly, 3698 a drop) are applied to each item in <object>. It is therefore possible 3699 to fail to empty an object for many reasons, even when you could do so 3700 using "extraphysical" methods (teleporting items, forcing the object 3701 to drop them, or forcing the items to leave the object.) 3702 3703 See also: get, drop 3613 3704 & get 3614 3705 & take … … 3624 3715 & give 3625 3716 give[/silent] <player>=<number> 3717 give[/silent] <number> to <player> 3626 3718 give <player>=<object> 3719 give <object> to <player> 3627 3720 3628 3721 Gives player the specified <number> of pennies or <object>. You can't give 1.7.7/game/txt/hlp/pennconf.hlp
r459 r463 218 218 guests=<boolean>: Are guest logins allowed? 219 219 pueblo=<boolean>: Is Pueblo support turned on? 220 sql_platform=<string>: What kind of SQL server are we using? 221 ("mysql" or "disabled") 222 sql_host=<string>: What is the hostname or ip address of the SQL server 220 223 & @config tiny 221 224 Options that help control compability with TinyMUSH servers. 1.7.7/game/txt/hlp/pennflag.hlp
r461 r463 57 57 ? - Unregistered ^ - Listen_Parent ~ - Noaccents 58 58 " - NoSpoof 59 --------------------------------------------------------------------- 59 ----------------------------------------------------------------------- 60 60 Some flags may not be enabled on some MUSHes. @flag/list will show 61 61 which are available. … … 578 578 Flag: ROYALTY (all types) 579 579 580 If this flag is set on any type of object, then that object will 581 be able to @tel and examine as if it was a wizard. Royalty players 582 do not need money, nor are they affected by quotas or restricted 583 building. Royalty is not able to change things like a wizard could. 584 Only wizards may set it on players, although players who are ROYALTY 585 may set their objects ROYALTY. 580 If this flag is set on any type of object, then that object will be 581 able to @tel and examine as if it was a wizard. Royalty players are 582 not affected by quotas or restricted building. Royalty is not able to 583 change things like a wizard could. Only wizards may set it on players, 584 although players who are ROYALTY may set their objects ROYALTY. 586 585 & SAFE 587 586 Flag: SAFE (all types) … … 602 601 (See DROP-TOs). This flag is meaningless for exits. 603 602 & SUSPECT 604 Flag: SUSPECT ( players)603 Flag: SUSPECT (all types) 605 604 606 605 This flag is only settable by wizards. Players with this flag have 607 606 their connects, disconnects, name changes, and kills reported to 608 all connected wizards. A ll their actions are also logged to the MUSH609 log files.607 all connected wizards. Actions by any object with this flag are 608 also logged to the MUSH log files. 610 609 & TEMPLE 611 610 The TEMPLE flag is no longer available in PennMUSH. Please see help 1.7.7/game/txt/hlp/pennfunc.hlp
r457 r463 52 52 Math functions: number manipulation, generic or integers only (ADD, DIV) 53 53 Regular expression functions: Regular expressions (REGMATCH, REGEDIT) 54 SQL functions: Access SQL databases (SQL, SQLESCAPE) 54 55 String functions: string manipulation (ESCAPE, FLIP) 55 56 Time functions: Formatting and display of time (TIME, CONVSECS) … … 181 182 vmax() vmin() vmul() vsub() vunit() 182 183 & Regular expression functions 183 Th isfunctions take a regular expression (regexp, or re) and match184 These functions take a regular expression (regexp, or re) and match 184 185 it against assorted things. 185 186 … … 190 191 191 192 See also: string functions, regexp 193 & SQL functions 194 These functions perform queries or other operations on an SQL 195 database to which the MUSH is connected, if SQL support is 196 available and enabled. 197 198 sql() sqlescape() 199 192 200 & String functions 193 201 String functions take at least one string and return a transformed … … 3374 3382 You say, "foo moof baz" 3375 3383 3384 & SQL() 3385 sql(<query string>,[<row delimiter>[,<field delimiter>]) 3386 3387 Performs an SQL query if the MUSH is configured to connect to an 3388 SQL database server. This function requires a WIZARD flag or 3389 the Sql_Ok power. 3390 3391 By default, SELECT queries will return their data space-separated. 3392 Usually, it's more useful to specify a character to delimit 3393 rows returned (and sometimes another character to delimit the 3394 fields/columns returned, if they may contain spaces). 3395 3396 <query string> is evaluated, so it's useful to either read it from 3397 another attribute with u() or use lit() to protect commas. If 3398 you will be interpolating user-provided values into the query, 3399 be careful to escape them with sqlescape(), like this: 3400 3401 &SEL_GETID obj = SELECT id FROM mytable WHERE name = '[sqlescape(%0)]' 3402 &DOIT obj = $do *: ... [setq(0,u(SEL_GETID,%0))] ... 3403 3404 See also: sqlescape(), @sql 3405 3406 & SQLESCAPE() 3407 sqlescape(<string>) 3408 3409 This function performs SQL-server-implemented escaping of strings. 3410 It's important to escape arbitrary data before passing it to the 3411 sql() function or @sql command to prevent SQL injection attacks. 3412 3413 Example: 3414 > think sqlescape(You don't say) 3415 You don\'t say 3416 3417 When used in an SQL query, the results of an sqlescape() function 3418 should be enclosed in single quotes. 3419 3420 You must be a WIZARD or have the Sql_Ok power to use this function. 3421 3422 See also: sql(), @sql 3423 3376 3424
