PennMUSH Community

Changeset 463

Show
Ignore:
Timestamp:
08/16/06 01:09:41 (2 years ago)
Author:
pennmush
Message:

PennMUSH 1.7.7p32 Archival

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • 1.7.7/CHANGES.177

    r461 r463  
    1919========================================================================== 
    2020 
     21Version 1.7.7 patchlevel 32                     May 26, 2004 
     22 
     23Major 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]. 
     39Commands: 
     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. 
     43Minor 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. 
     61Minor 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] 
     67Fixes:  
     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 
    2179Version 1.7.7 patchlevel 31                     May 11, 2004 
    2280 
     81Minor 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 
     94Commands: 
     95  * @nscemit. Suggested by Mystery8@ST:AW. 
     96Functions: 
     97  * nscemit(). Suggested by Mystery8@ST:AW. 
    2398Flags: 
    2499  * New HEAVY admin flag, prevents an object from being teleported 
     
    26101    flag can now be teleported. 
    27102Fixes: 
     103  * Help fixes by Anri@AkaneaMUSH and Intrevis@M*U*S*H. 
    28104  * mix() now treats empty lists as empty, instead of containing a single 
    29105    null element. Report by Luke@M*U*S*H. 
  • 1.7.7/Configure

    r457 r463  
    2121# $Id: Head.U 1.1 Thu, 20 Jul 2000 17:42:54 -0500 dunemush $ 
    2222# 
    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] 
    2424 
    2525cat >/tmp/c1$$ <<EOF 
     
    417417installdir='' 
    418418libc='' 
     419d_mysql='' 
     420libmysqlclient='' 
    419421glibpth='' 
    420422libpth='' 
     
    47824784eval $inlibc 
    47834785 
     4786: see if we should include -lmysqlclient 
     4787echo " " 
     4788 
     4789d_mysql="$undef" 
     4790 
     4791if $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 
     4801int main(int argc, char **argv) { 
     4802   printf("Your mysql is version %s\n",mysql_get_client_info()); 
     4803   exit(0); 
     4804} 
     4805EOM 
     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 
     4824else 
     4825 
     4826  echo "Skipping mysql tests." >&4 
     4827  libmysqlclient='' 
     4828 
     4829fi 
     4830 
    47844831: check for a new-style definitions 
    47854832echo " " 
     
    69306977d_memset='$d_memset' 
    69316978d_mymalloc='$d_mymalloc' 
     6979d_mysql='$d_mysql' 
    69326980d_newstyle='$d_newstyle' 
    69336981d_oldsock='$d_oldsock' 
     
    70567104libc='$libc' 
    70577105libcrypto='$libcrypto' 
     7106libmysqlclient='$libmysqlclient' 
    70587107libpth='$libpth' 
    70597108libs='$libs' 
  • 1.7.7/INSTALL

    r453 r463  
    162162game subdirectory for each MUSH (run it once per MUSH you plan to run). 
    163163Files in these subdirectories will already be customized in many ways, 
    164 so what follows may be slightly different. :) 
     164so what follows may be slightly different. :) This is probably broken. 
    165165 
    1661667. Read game/README and follow those instructions.  
    167  
    168    On cygwin systems, you will likely have to edit the game/restart 
    169    script and explicitly set GAMEDIR (to /usr/src/pennmush/game) 
    170167 
    171168A final thing you may want to think about is compiling announce.c or 
  • 1.7.7/MANIFEST

    r459 r463  
    1313hdrs/attrib.h 
    1414hdrs/boolexp.h 
     15hdrs/bufferq.h 
    1516hdrs/command.h 
     17hdrs/compile.h 
    1618hdrs/chunk.h 
    1719hdrs/htab.h 
     
    5456src/boolexp.c 
    5557src/bsd.c 
     58src/bufferq.c 
    5659src/chunk.c 
    5760src/cmds.c 
     
    110113src/sig.c 
    111114src/speech.c 
     115src/sql.c 
    112116src/switchinc.c 
    113117src/strdup.c 
     
    213217README 
    214218README.SSL 
     219README.SQL 
    215220INSTALL 
    216221UPGRADING 
  • 1.7.7/Makefile.SH

    r457 r463  
    5050CCFLAGS=$optimize -I.. -I../hdrs $ccflags $warnings 
    5151LDFLAGS=$ldflags 
    52 CLIBS=$libs $cryptlib $libssl $libcrypto 
     52CLIBS=$libs $cryptlib $libssl $libcrypto $libmysqlclient 
    5353INSTALL=$install 
    5454INSTALLDIR=$installdir 
     
    9090autogen: hdrs/cmds.h hdrs/funs.h hdrs/switches.h 
    9191 
    92 hdrs/cmds.h: src/cmds.c src/command.c src/cque.c src/help.c src/set.c Patchlevel 
     92hdrs/cmds.h: src/cmds.c src/command.c src/cque.c src/help.c src/set.c src/sql.c Patchlevel 
    9393    (cd utils; sh mkcmds.sh commands) 
    9494 
     
    9999    (cd utils; sh mkcmds.sh switches) 
    100100 
    101 hdrs/funs.h: src/fun*.c src/bsd.c src/conf.c src/extmail.c src/help.c src/wiz.c Patchlevel 
     101hdrs/funs.h: src/fun*.c src/bsd.c src/conf.c src/extmail.c src/help.c src/wiz.c src/sql.c Patchlevel 
    102102    (cd utils; sh mkcmds.sh functions) 
    103103 
     
    165165    -@$perl utils/customize.pl 
    166166 
     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. 
     170GAMEDIR=game 
     171 
    167172update-conf: game/mushcnf.dst game/aliascnf.dst game/restrictcnf.dst game/namescnf.dst 
    168173    -@$touch game/mushcnf.dst 
    169     -@$perl utils/update-cnf.pl game/mush.cnf game/mushcnf.dst 
     174    -@$perl utils/update-cnf.pl \$(GAMEDIR)/mush.cnf game/mushcnf.dst 
    170175    -@$touch game/aliascnf.dst 
    171     -@$perl utils/update-cnf.pl game/alias.cnf game/aliascnf.dst 
     176    -@$perl utils/update-cnf.pl \$(GAMEDIR)/alias.cnf game/aliascnf.dst 
    172177    -@$touch game/restrictcnf.dst 
    173     -@$perl utils/update-cnf.pl game/restrict.cnf game/restrictcnf.dst 
    174     -@if [ ! -f game/names.cnf ]; then \$(CP) game/namescnf.dst game/names.cnf; fi 
    175  
    176 game/alias.cnf: game/aliascnf.dst 
     178    -@$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 
    177182    -@$touch game/aliascnf.dst 
    178     -@$perl utils/update-cnf.pl game/alias.cnf game/aliascnf.dst 
    179  
    180 game/restrict.cnf: game/restrictcnf.dst 
     183    -@$perl utils/update-cnf.pl \$(GAMEDIR)/alias.cnf game/aliascnf.dst 
     184 
     185\$(GAMEDIR)/restrict.cnf: game/restrictcnf.dst 
    181186    -@$touch game/restrictcnf.dst 
    182     -@$perl utils/update-cnf.pl game/restrict.cnf game/restrictcnf.dst 
    183  
    184 game/names.cnf: game/namescnf.dst 
     187    -@$perl utils/update-cnf.pl \$(GAMEDIR)/restrict.cnf game/restrictcnf.dst 
     188 
     189\$(GAMEDIR)/names.cnf: game/namescnf.dst 
    185190    if [ ! -f game/names.cnf ]; then \ 
    186         \$(CP) game/namescnf.dst game/names.cnf \ 
     191        \$(CP) game/namescnf.dst \$(GAMEDIR)/names.cnf \ 
    187192    fi 
    188193 
    189 game/mush.cnf: game/mushcnf.dst 
     194\$(GAMEDIR)/mush.cnf: game/mushcnf.dst 
    190195    -@$touch game/mushcnf.dst 
    191     -@$perl utils/update-cnf.pl game/mush.cnf game/mushcnf.dst 
     196    -@$perl utils/update-cnf.pl \$(GAMEDIR)/mush.cnf game/mushcnf.dst 
    192197 
    193198update: update-hdr update-conf 
     
    291296    (cd game/txt; make clean compose.sh) 
    292297    $(INSTALLDIR) $(DEB_INSTALL) 
     298    $(INSTALLDIR) $(DEB_BIN) 
    293299    $(CP) -R game/* $(DEB_INSTALL) 
    294300    -rm -f $(DEB_INSTALL)/netmush $(DEB_INSTALL)/info_slave 
  • 1.7.7/Patchlevel

    r461 r463  
    11Do not edit this file. It is maintained by the official PennMUSH patches. 
    2 This is PennMUSH 1.7.7p31 
     2This is PennMUSH 1.7.7p32 
  • 1.7.7/README.SSL

    r433 r463  
    11                            Use SSL with PennMUSH 
    2                            Revised: 11 Auguest 2003 
     2                           Revised: 11 August 2003 
    33 
    44 
  • 1.7.7/UPGRADING

    r455 r463  
    7777If you've modified the restart script, you'll have to decide if 
    7878your modified script is still appropriate, or modify the distributed 
    79 game/restart script again as you like it. 
     79game/restart script again as you like it. The latter is encouraged. 
    8080 
    8181You can also copy your old game/access.cnf, game/sitelock.cnf, and 
  • 1.7.7/config_h.SH

    r451 r463  
    834834#$i_stdarg I_STDARG     /**/ 
    835835 
     836/* HAS_MYSQL: 
     837 *     Defined if mysql client libraries are available. 
     838 */ 
     839#$d_mysql HAS_MYSQL /**/ 
     840 
    836841/* HAS_OPENSSL: 
    837842 *     Defined if openssl 0.9.6+ is available. 
  • 1.7.7/game/README

    r439 r463  
    1212 
    1313WIN32: 
    14   Under win32 using the Microsoft compiler, DO NOT rename mush.cnf
    15   Also, ignore the restart script.  In the configuration file, turn off 
    16   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. 
    1818 
    1919UNIX: 
    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. 
    2726 
    2827You should now be ready to start the game.  This distribution can 
     
    4039 
    4140The logfiles in the "log" directory generally contain useful 
    42 information. You will probably want to read your main logfile (defined 
    43 in the restart script) every time, since errors and other importan
    44 messages get printed to that logfile. 
     41information. You will probably want to read your error logfile (defined 
     42in mush.cnf) every time, since errors and other important messages ge
     43printed to that logfile. 
    4544 
    4645============================================================================ 
  • 1.7.7/game/mushcnf.dst

    r459 r463  
    475475### 
    476476 
     477# Filename to log important messages (startups, errors, shutdowns) 
     478error_log  log/netmush.log 
     479 
    477480# Filename to log connections to 
    478481connect_log log/connect.log 
     
    538541 
    539542### 
     543### SQL connectivity 
     544### 
     545 
     546# What SQL server platform should we use? Options include: 
     547# mysql, disabled (the default) 
     548sql_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. 
     552sql_host 127.0.0.1 
     553 
     554# What's the SQL database? You have to set this to a database that 
     555# you create. 
     556sql_database mush 
     557 
     558# What username to access the database? 
     559sql_username mush 
     560 
     561# What password for that user? Change this! 
     562sql_password mush 
     563 
     564### 
    540565### Options affecting commands and functions 
    541566### (See also restrict_command to restrict command use) 
  • 1.7.7/game/restart

    r459 r463  
    11#!/bin/sh 
    22# 
     3# usage: restart 
     4# 
     5# REQUIRED: You must set this to the path to your game directory. 
     6# E.g.: /home/mush/game 
     7GAMEDIR= 
    38 
    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. 
    1710 
    1811# Uncomment the line below to attempt to allow crashes to produce 
     
    2013# to debug them. 
    2114#ulimit -c unlimited 
    22  
    23 if [ ! -d $GAMEDIR ]; then 
    24   echo "GAMEDIR doesn't appear to be a directory. It's: $GAMEDIR" 
    25   exit 1 
    26 fi 
    27  
    28 cd $GAMEDIR 
    29 echo Running from `pwd` 
    30  
    31 if [ ! -f $CONF_FILE ]; then 
    32   echo "CONF_FILE doesn't exist. It's: $CONF_FILE" 
    33   echo "Create $CONF_FILE from $GAMEDIR/mushcnf.dst" 
    34   exit 1 
    35 fi 
    3615 
    3716# Internationalization stuff 
     
    5029#TZ=:EST5EDT 
    5130#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. 
     35CONF_FILE=mush.cnf 
     36 
     37####################################################################### 
     38 
     39if [ -z $GAMEDIR ]; then 
     40  echo "You must set GAMEDIR in the restart script." 
     41  exit 1 
     42fi 
     43 
     44if [ ! -d $GAMEDIR ]; then 
     45  echo "GAMEDIR doesn't appear to be a directory. It's: $GAMEDIR" 
     46  exit 1 
     47fi 
     48 
     49cd $GAMEDIR 
     50echo Running from `pwd` 
     51 
     52if [ ! -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 
     56fi 
    5257 
    5358# If netmush isn't here, they probably didn't make install 
     
    8186# Prevent double-starting things. You may need to provide a pathname for 
    8287#  some of the commands. System V flavors need "ps -f" instead of "ps uwx". 
    83 mush=`ps uwx | grep " $CONF_FILE" | grep -v grep | wc -l` 
     88mush=`ps uwwx | grep " $GAMEDIR/$CONF_FILE" | grep -v grep | wc -l` 
    8489 
    8590 
    8691if [ $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. 
    8893  exit 0 
    8994fi 
     
    135140export DATEMSK 
    136141 
    137 LC_ALL=$LANG LANG=$LANG ./netmush $CONF_FILE $LOG
     142LC_ALL=$LANG LANG=$LANG ./netmush $GAMEDIR/$CONF_FILE
  • 1.7.7/game/txt/hlp/pennattr.hlp

    r441 r463  
    1919A branch attribute is an attribute that has other branches or leaves 
    2020beneath 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 any 
    22 leaf attributes from them
     21act as a branch. If you try to create an unsupported leaf, branch 
     22attributes will be created as needed to support it
    2323 
    2424See help attribute trees2 for more information and examples. 
     
    7676child has its own overriding attribute. However, children that wish 
    7777to override a leaf attribute must also have their own (overriding) 
    78 copy of all branches leading to that leaf. So this doesn't work
     78copy of all branches leading to that leaf. This means that when you do
    7979 
    8080  &BRANCH parent = a branch 
    8181  &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 
     84In this case, a new BRANCH attribute will be created on the child, 
     85so '-[get(child/BRANCH)]-' will return '--'. This may not be what 
     86you actually want. 
    8387 
    8488If a branch on the parent is set no_inherit, it will not be inherited, 
     
    9094access to inherited parent data. 
    9195 
    92  
  • 1.7.7/game/txt/hlp/penncmd.hlp

    r461 r463  
    7272  @motd          @newpassword   @pcreate       @poll          @poor           
    7373  @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 
    7677  
    7778& ] 
     
    713714 
    714715  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. 
    716719 
    717720  Example: 
     
    723726    > Your exit has been created. 
    724727    (The exit will also have been opened by the machine.) 
     728 
     729    @cost charity=%0 
     730    @pay charity=Thanks for your donation of %0. 
    725731 
    726732See also: give, MONEY, @pay, money() 
     
    20002006    @lock/use Admin Commands=flag^wizard|flag^royalty 
    20012007 
    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 
     2012See also: locktypes, @clock, objid() 
    20122013& locktypes 
    20132014& locklist 
     
    25892590See also: MONEY 
    25902591& @power 
     2592  @power/list [<power name pattern>] 
     2593  @power <power> 
    25912594  @power <object>=[!]<power> 
    25922595   
    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. 
    25972655& @prefix 
    25982656  @prefix <object> = <message> 
     
    29713029  if their host-pattern matches <string> exactly. 
    29723030  
     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() 
    29733046& @squota 
    29743047  @squota <victim> [= [+|-] <amount>] 
     
    36113684 
    36123685See 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 
     3703See also: get, drop 
    36133704& get 
    36143705& take 
     
    36243715& give 
    36253716  give[/silent] <player>=<number> 
     3717  give[/silent] <number> to <player> 
    36263718  give <player>=<object> 
     3719  give <object> to <player> 
    36273720 
    36283721  Gives player the specified <number> of pennies or <object>. You can't give  
  • 1.7.7/game/txt/hlp/pennconf.hlp

    r459 r463  
    218218  guests=<boolean>: Are guest logins allowed? 
    219219  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 
    220223& @config tiny 
    221224 Options that help control compability with TinyMUSH servers. 
  • 1.7.7/game/txt/hlp/pennflag.hlp

    r461 r463  
    5757  ? - Unregistered      ^ - Listen_Parent       ~ - Noaccents 
    5858  " - NoSpoof 
    59 --------------------------------------------------------------------- 
     59----------------------------------------------------------------------- 
    6060Some flags may not be enabled on some MUSHes. @flag/list will show 
    6161which are available. 
     
    578578  Flag:  ROYALTY  (all types) 
    579579 
    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. 
    586585& SAFE 
    587586  Flag:  SAFE  (all types) 
     
    602601  (See DROP-TOs). This flag is meaningless for exits. 
    603602& SUSPECT 
    604   Flag:  SUSPECT  (players) 
     603  Flag:  SUSPECT  (all types) 
    605604 
    606605  This flag is only settable by wizards. Players with this flag have 
    607606  their connects, disconnects, name changes, and kills reported to 
    608   all connected wizards. All their actions are also logged to the MUSH 
    609   log files. 
     607  all connected wizards. Actions by any object with this flag are 
     608  also logged to the MUSH log files. 
    610609& TEMPLE 
    611610  The TEMPLE flag is no longer available in PennMUSH. Please see help 
  • 1.7.7/game/txt/hlp/pennfunc.hlp

    r457 r463  
    5252  Math functions:  number manipulation, generic or integers only (ADD, DIV) 
    5353  Regular expression functions: Regular expressions (REGMATCH, REGEDIT) 
     54  SQL functions: Access SQL databases (SQL, SQLESCAPE) 
    5455  String functions:  string manipulation (ESCAPE, FLIP) 
    5556  Time functions: Formatting and display of time (TIME, CONVSECS) 
     
    181182  vmax()        vmin()        vmul()        vsub()        vunit() 
    182183& Regular expression functions 
    183   This functions take a regular expression (regexp, or re) and match 
     184  These functions take a regular expression (regexp, or re) and match 
    184185  it against assorted things. 
    185186   
     
    190191  
    191192  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 
    192200& String functions 
    193201  String functions take at least one string and return a transformed 
     
    33743382    You say, "foo moof baz" 
    33753383   
     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 
    33763424