PennMUSH Community

Changeset 447

Show
Ignore:
Timestamp:
08/16/06 00:31:35 (2 years ago)
Author:
pennmush
Message:

PennMUSH 1.7.7p24 Archival

Files:

Legend:

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

    r445 r447  
    1818 
    1919========================================================================== 
     20 
     21Version 1.7.7 patchlevel 24                     October 19, 2003 
     22 
     23Minor Changes: 
     24  * The puppet flag can now apply to rooms. Suggested by Philip Mak. 
     25  * @tel/inside allows priv'd players to teleport into another player's 
     26    inventory (instead of to their location). Suggested by Philip Mak. 
     27Fixes: 
     28  * Startups from a created minimal.db did not properly initialize 
     29    the objdata htab, so subsequent use of that htab (e.g. adding 
     30    players to channels) would crash. Report by [LdW]. 
     31  * Help fixes by BladedThoth@M*U*S*H and Philip Mak. 
     32  * Attempting to clear a branch attribute when it has leaves now 
     33    gives a better message. Also better message for inability to 
     34    write an attribute due to tree issues. Patch by Luke@M*U*S*H. 
     35  * Bug in @debugforwardlist fixed by Luke@M*U*S*H. 
     36 
    2037 
    2138Version 1.7.7 patchlevel 23                     October 10, 2003 
  • 1.7.7/Patchlevel

    r445 r447  
    11Do not edit this file. It is maintained by the official PennMUSH patches. 
    2 This is PennMUSH 1.7.7p23 
     2This is PennMUSH 1.7.7p24 
  • 1.7.7/game/txt/hlp/penncmd.hlp

    r441 r447  
    29712971See also: switch wildcards, @select, switch() 
    29722972& @teleport 
    2973   @teleport[/silent] [<object>=] <room>.  
     2973  @teleport[/silent][/inside] [<object>=] <room>.  
    29742974 
    29752975  Teleports <object> to <room>.  <object> must be a thing; if you do not 
     
    29792979  if a room, cannot be teleport-locked against <object>. Mortals cannot 
    29802980  teleport Royalty or Wizards. If the target room has a drop-to, <object> 
    2981   will go to the drop-to room instead. Wizards can teleport things into 
    2982   players' inventories. 
     2981  will go to the drop-to room instead.  
     2982 
     2983  Privileged players who teleport a player to another player send them 
     2984  to the location of the target, unless the /inside switch is used, 
     2985  in which case they are sent to the inventory of the target. 
    29832986 
    29842987  Teleportation from a room can be stopped by setting the NO_TEL flag. 
  • 1.7.7/game/txt/hlp/pennflag.hlp

    r439 r447  
    586586 
    587587  If a thing or player is STICKY, it goes home when dropped (See HOMES). 
    588   It also goes home when an object carrying it teleports or goes home. 
     588  It also goes home when an object carrying it teleports or goes home, 
     589  unless the object controls it. 
    589590  If a room is STICKY, its drop-to is delayed until the last person leaves  
    590591  (See DROP-TOs). This flag is meaningless for exits. 
  • 1.7.7/game/txt/hlp/pennfunc.hlp

    r445 r447  
    459459  (A number with only the bits set in every argument set in it). 
    460460& BASECONV() 
    461   baseconv(<integer>, <from base>, <to base>) 
    462  
    463   Converts a number from one base to another. The bases can be between 
    464   2 (Binary) and 36.  
     461  baseconv(<number>, <from base>, <to base>) 
     462 
     463  Converts <number>, which is in base <from base> into base <to base>. 
     464  The bases can be between 2 (binary) and 36.  
    465465& BEEP() 
    466466  beep([<number>]) 
     
    34173417  See HELP CTU() for more on the angle type. 
    34183418& TEL() 
    3419   tel(<object>,<destination>[,<silent>]) 
     3419  tel(<object>,<destination>[,<silent>[,<inside>]]) 
    34203420 
    34213421  This function will teleport <object> to <destination>, exactly as 
    34223422  @tel <object>=<destination>. <silent> is an optional boolean that, 
    3423   if true, makes the function act like @tel/silent. 
     3423  if true, makes the function act like @tel/silent. <inside> 
     3424  is an optional boolean that, if true, makes the function act like 
     3425  @tel/inside (some value for <silent> must also be specified). 
    34243426 
    34253427  See also: @tel 
  • 1.7.7/game/txt/hlp/penntop.hlp

    r441 r447  
    378378& CREDITS 
    379379  Maintainer: Javelin 
    380   Developers: Talek [TAP], Trivian [TN], Halatir [LdW], Raevnos [SW
     380  Developers: Talek [TAP], Raevnos [SW], Ervin Hearn III [EEH
    381381  Porters: Nick Gammon [NJG] (win32), Dan Williams [DW] (MacOS),  
    382            Sylvia (OS/2), Ervin Hearn III [EEH] (win32) 
    383   Former devteam: Rhyanna [RLM
     382           Sylvia (OS/2) 
     383  Former developers: Rhyanna [RLM], Trivian [TN], Halatir [LdW
    384384  
    385385  The original TinyMUSH 1.0 code was written by Lawrence Foard, and was 
  • 1.7.7/game/txt/hlp/pennv177.hlp

    r445 r447  
    1 & 1.7.7p23 
     1& 1.7.7p24 
    22& changes 
    33This is a list of changes in this patchlevel which are probably of 
     
    1212be read in 'help patchlevels'. 
    1313 
     14Version 1.7.7 patchlevel 24                     October 19, 2003 
     15 
     16Minor Changes: 
     17  * The puppet flag can now apply to rooms. Suggested by Philip Mak. 
     18  * @tel/inside allows priv'd players to teleport into another player's 
     19    inventory (instead of to their location). Suggested by Philip Mak. 
     20Fixes: 
     21  * Startups from a created minimal.db did not properly initialize 
     22    the objdata htab, so subsequent use of that htab (e.g. adding 
     23    players to channels) would crash. Report by [LdW]. 
     24  * Help fixes by BladedThoth@M*U*S*H and Philip Mak. 
     25  * Attempting to clear a branch attribute when it has leaves now 
     26    gives a better message. Also better message for inability to 
     27    write an attribute due to tree issues. Patch by Luke@M*U*S*H. 
     28  * Bug in @debugforwardlist fixed by Luke@M*U*S*H. 
     29 
     30 
     31& 1.7.7p23 
    1432Version 1.7.7 patchlevel 23                     October 10, 2003 
    1533 
  • 1.7.7/game/txt/hlp/pennvOLD.hlp

    r445 r447  
    44194419 
    442044201.7.7: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 
    4421        19, 20, 21, 22, 23 
     4421       19, 20, 21, 22, 23, 24 
    442244221.7.6: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 
    442344231.7.5: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 
  • 1.7.7/hdrs/dbdefs.h

    r439 r447  
    103103/******* Thing toggles */ 
    104104#define DestOk(x)       (IS(x, TYPE_THING, "DESTROY_OK")) 
    105 #define Puppet(x)       (IS(x, TYPE_THING, "PUPPET")) 
    106105#define NoLeave(x)      (IS(x, TYPE_THING, "NOLEAVE")) 
    107106#define ThingListen(x)  (IS(x, TYPE_THING, "MONITOR")) 
     
    149148#define Opaque(x)       (has_flag_by_name(x, "OPAQUE", NOTYPE)) 
    150149#define Orphan(x)       (has_flag_by_name(x, "ORPHAN", NOTYPE)) 
     150#define Puppet(x)       (has_flag_by_name(x, "PUPPET", TYPE_THING|TYPE_ROOM)) 
    151151#define Quiet(x)        (has_flag_by_name(x, "QUIET", NOTYPE)) 
    152152#define Safe(x)         (has_flag_by_name(x, "SAFE", NOTYPE)) 
  • 1.7.7/hdrs/game.h

    r439 r447  
    154154#endif 
    155155extern void do_teleport 
    156   (dbref player, const char *arg1, const char *arg2, int silent); 
     156  (dbref player, const char *arg1, const char *arg2, int silent, int inside); 
    157157extern void do_force(dbref player, const char *what, char *command); 
    158158extern void do_stats(dbref player, const char *name); 
  • 1.7.7/hdrs/switches.h

    r441 r447  
    5858#define SWITCH_IGNORE 57 
    5959#define SWITCH_ILIST 58 
    60 #define SWITCH_INVENTORY 59 
    61 #define SWITCH_IPRINT 60 
    62 #define SWITCH_JOIN 61 
    63 #define SWITCH_LETTER 62 
    64 #define SWITCH_LIST 63 
    65 #define SWITCH_LOWERCASE 64 
    66 #define SWITCH_ME 65 
    67 #define SWITCH_MEMBERS 66 
    68 #define SWITCH_MOD 67 
    69 #define SWITCH_MORTAL 68 
    70 #define SWITCH_MOTD 69 
    71 #define SWITCH_MUTE 70 
    72 #define SWITCH_NAME 71 
    73 #define SWITCH_NO 72 
    74 #define SWITCH_NOEVAL 73 
    75 #define SWITCH_NOFLAGCOPY 74 
    76 #define SWITCH_NOISY 75 
    77 #define SWITCH_NOSIG 76 
    78 #define SWITCH_NOSPACE 77 
    79 #define SWITCH_NOTIFY 78 
    80 #define SWITCH_NUKE 79 
    81 #define SWITCH_OFF 80 
    82 #define SWITCH_ON 81 
    83 #define SWITCH_OUTSIDE 82 
    84 #define SWITCH_OVERRIDE 83 
    85 #define SWITCH_PAGING 84 
    86 #define SWITCH_PANIC 85 
    87 #define SWITCH_PARANOID 86 
    88 #define SWITCH_PLAYERS 87 
    89 #define SWITCH_PORT 88 
    90 #define SWITCH_PRESERVE 89 
    91 #define SWITCH_PRINT 90 
    92 #define SWITCH_PRIVS 91 
    93 #define SWITCH_PURGE 92 
    94 #define SWITCH_QUICK 93 
    95 #define SWITCH_QUIET 94 
    96 #define SWITCH_READ 95 
    97 #define SWITCH_REBOOT 96 
    98 #define SWITCH_RECALL 97 
    99 #define SWITCH_REGIONS 98 
    100 #define SWITCH_REGISTER 99 
    101 #define SWITCH_REMOVE 100 
    102 #define SWITCH_RENAME 101 
    103 #define SWITCH_RESTORE 102 
    104 #define SWITCH_RESTRICT 103 
    105 #define SWITCH_RETROACTIVE 104 
    106 #define SWITCH_ROOM 105 
    107 #define SWITCH_ROOMS 106 
    108 #define SWITCH_SEE 107 
    109 #define SWITCH_SEEFLAG 108 
    110 #define SWITCH_SELF 109 
    111 #define SWITCH_SEND 110 
    112 #define SWITCH_SET 111 
    113 #define SWITCH_SILENT 112 
    114 #define SWITCH_SKIPDEFAULTS 113 
    115 #define SWITCH_SPEAK 114 
    116 #define SWITCH_STATS 115 
    117 #define SWITCH_SUMMARY 116 
    118 #define SWITCH_TABLES 117 
    119 #define SWITCH_TAG 118 
    120 #define SWITCH_TELEPORT 119 
    121 #define SWITCH_TF 120 
    122 #define SWITCH_THINGS 121 
    123 #define SWITCH_TITLE 122 
    124 #define SWITCH_TRACE 123 
    125 #define SWITCH_UNCLEAR 124 
    126 #define SWITCH_UNFOLDER 125 
    127 #define SWITCH_UNGAG 126 
    128 #define SWITCH_UNHIDE 127 
    129 #define SWITCH_UNMUTE 128 
    130 #define SWITCH_UNTAG 129 
    131 #define SWITCH_UNTIL 130 
    132 #define SWITCH_URGENT 131 
    133 #define SWITCH_USEFLAG 132 
    134 #define SWITCH_WHAT 133 
    135 #define SWITCH_WHO 134 
    136 #define SWITCH_WIPE 135 
    137 #define SWITCH_WIZ 136 
    138 #define SWITCH_WIZARD 137 
    139 #define SWITCH_YES 138 
    140 #define SWITCH_ZONE 139 
     60#define SWITCH_INSIDE 59 
     61#define SWITCH_INVENTORY 60 
     62#define SWITCH_IPRINT 61 
     63#define SWITCH_JOIN 62 
     64#define SWITCH_LETTER 63 
     65#define SWITCH_LIST 64 
     66#define SWITCH_LOWERCASE 65 
     67#define SWITCH_ME 66 
     68#define SWITCH_MEMBERS 67 
     69#define SWITCH_MOD 68 
     70#define SWITCH_MORTAL 69 
     71#define SWITCH_MOTD 70 
     72#define SWITCH_MUTE 71 
     73#define SWITCH_NAME 72 
     74#define SWITCH_NO 73 
     75#define SWITCH_NOEVAL 74 
     76#define SWITCH_NOFLAGCOPY 75 
     77#define SWITCH_NOISY 76 
     78#define SWITCH_NOSIG 77 
     79#define SWITCH_NOSPACE 78 
     80#define SWITCH_NOTIFY 79 
     81#define SWITCH_NUKE 80 
     82#define SWITCH_OFF 81 
     83#define SWITCH_ON 82 
     84#define SWITCH_OUTSIDE 83 
     85#define SWITCH_OVERRIDE 84 
     86#define SWITCH_PAGING 85 
     87#define SWITCH_PANIC 86 
     88#define SWITCH_PARANOID 87 
     89#define SWITCH_PLAYERS 88 
     90#define SWITCH_PORT 89 
     91#define SWITCH_PRESERVE 90 
     92#define SWITCH_PRINT 91 
     93#define SWITCH_PRIVS 92 
     94#define SWITCH_PURGE 93 
     95#define SWITCH_QUICK 94 
     96#define SWITCH_QUIET 95 
     97#define SWITCH_READ 96 
     98#define SWITCH_REBOOT 97 
     99#define SWITCH_RECALL 98 
     100#define SWITCH_REGIONS 99 
     101#define SWITCH_REGISTER 100 
     102#define SWITCH_REMOVE 101 
     103#define SWITCH_RENAME 102 
     104#define SWITCH_RESTORE 103 
     105#define SWITCH_RESTRICT 104 
     106#define SWITCH_RETROACTIVE 105 
     107#define SWITCH_ROOM 106 
     108#define SWITCH_ROOMS 107 
     109#define SWITCH_SEE 108 
     110#define SWITCH_SEEFLAG 109 
     111#define SWITCH_SELF 110 
     112#define SWITCH_SEND 111 
     113#define SWITCH_SET 112 
     114#define SWITCH_SILENT 113 
     115#define SWITCH_SKIPDEFAULTS 114 
     116#define SWITCH_SPEAK 115 
     117#define SWITCH_STATS 116 
     118#define SWITCH_SUMMARY 117 
     119#define SWITCH_TABLES 118 
     120#define SWITCH_TAG 119 
     121#define SWITCH_TELEPORT 120 
     122#define SWITCH_TF 121 
     123#define SWITCH_THINGS 122 
     124#define SWITCH_TITLE 123 
     125#define SWITCH_TRACE 124 
     126#define SWITCH_UNCLEAR 125 
     127#define SWITCH_UNFOLDER 126 
     128#define SWITCH_UNGAG 127 
     129#define SWITCH_UNHIDE 128 
     130#define SWITCH_UNMUTE 129 
     131#define SWITCH_UNTAG 130 
     132#define SWITCH_UNTIL 131 
     133#define SWITCH_URGENT 132 
     134#define SWITCH_USEFLAG 133 
     135#define SWITCH_WHAT 134 
     136#define SWITCH_WHO 135 
     137#define SWITCH_WIPE 136 
     138#define SWITCH_WIZ 137 
     139#define SWITCH_WIZARD 138 
     140#define SWITCH_YES 139 
     141#define SWITCH_ZONE 140 
  • 1.7.7/hdrs/version.h

    r445 r447  
    1 #define VERSION "PennMUSH version 1.7.7 patchlevel 23 [10/10/2003]" 
    2 #define SHORTVN "PennMUSH 1.7.7p23
    3 #define NUMVERSION 001007007023 
     1#define VERSION "PennMUSH version 1.7.7 patchlevel 24 [10/19/2003]" 
     2#define SHORTVN "PennMUSH 1.7.7p24
     3#define NUMVERSION 001007007024 
  • 1.7.7/src/SWITCHES

    r441 r447  
    5757IGNORE 
    5858ILIST 
     59INSIDE 
    5960INVENTORY 
    6061IPRINT 
  • 1.7.7/src/attrib.c

    r441 r447  
    394394 * \param atr name of attribute to remove. 
    395395 * \param player enactor attempting to remove attribute. 
     396 * \retval 0 no attribute found to reset 
     397 * \retval AE_SAFE attribute is safe 
     398 * \retval AE_ERROR other failure 
    396399 */ 
    397400int 
     
    414417    return 0; 
    415418 
     419  if (ptr && (AL_FLAGS(ptr) & AF_SAFE)) 
     420    return AE_SAFE; 
    416421  if (!Can_Write_Attr(player, thing, ptr)) 
    417     return -1
     422    return AE_ERROR
    418423 
    419424  len = strlen(AL_NAME(ptr)); 
    420425  sub = atr_sub_branch(ptr); 
    421426  if (!we_are_wiping && sub) 
    422     return -1
     427    return AE_ERROR
    423428 
    424429  if (!IsPlayer(thing) && !(AL_FLAGS(ptr) & AF_NODUMP)) 
     
    11701175    return 0; 
    11711176  } else if (res == AE_ERROR) { 
    1172     if (*missing_name) 
    1173       notify_format(player, T("You must set %s first."), missing_name); 
    1174     else 
     1177    if (*missing_name) { 
     1178      if (s 
     1179#ifndef EMPTY_ATTRS 
     1180      && *s 
     1181#endif 
     1182    ) 
     1183    notify_format(player, T("You must set %s first."), missing_name); 
     1184      else 
     1185    notify_format(player, 
     1186              T("%s is a branch attribute; remove its children first."), 
     1187              missing_name); 
     1188    } else 
    11751189      notify(player, T("That attribute cannot be changed by you.")); 
    11761190    return 0; 
     
    15241538      atr = AL_NEXT(atr); 
    15251539    } 
    1526     if (!atr || 
    1527     (!God(player) && 
     1540    if (!atr) 
     1541      return 0; 
     1542    if ((!God(player) && 
    15281543     ((AL_FLAGS(atr) & AF_INTERNAL) || 
    15291544      (safe && (AL_FLAGS(atr) & AF_SAFE)) || 
  • 1.7.7/src/cmds.c

    r441 r447  
    818818    notify(player, T("You can't teleport to nothing!")); 
    819819  else 
    820     do_teleport(player, arg_left, arg_right, (SW_ISSET(sw, SWITCH_SILENT))); 
     820    do_teleport(player, arg_left, arg_right, (SW_ISSET(sw, SWITCH_SILENT)), 
     821        (SW_ISSET(sw, SWITCH_INSIDE))); 
    821822} 
    822823 
  • 1.7.7/src/command.c

    r441 r447  
    247247#endif 
    248248 
    249   {"@TELEPORT", "SILENT", cmd_teleport, 
     249  {"@TELEPORT", "SILENT INSIDE", cmd_teleport, 
    250250   CMD_T_ANY | CMD_T_EQSPLIT | CMD_T_NOGAGGED, 0, 0}, 
    251251  {"@TRIGGER", NULL, cmd_trigger, 
  • 1.7.7/src/create.c

    r435 r447  
    408408      char roomstr[MAX_COMMAND_LEN]; 
    409409      sprintf(roomstr, "#%d", room); 
    410       do_teleport(player, "me", roomstr, 0);  /* if flag, move the player */ 
     410      do_teleport(player, "me", roomstr, 0, 0);   /* if flag, move the player */ 
    411411    } 
    412412    return room; 
  • 1.7.7/src/db.c

    r439 r447  
    13051305  master_room = new_object();   /* #2 */ 
    13061306 
     1307  init_objdata_htab(DB_INITIAL_SIZE); 
     1308 
    13071309  set_name(start_room, "Room Zero"); 
    13081310  Type(start_room) = TYPE_ROOM; 
  • 1.7.7/src/flags.c

    r445 r447  
    671671  if ((f = match_flag("TERSE"))) 
    672672    f->type |= TYPE_THING; 
     673  if ((f = match_flag("PUPPET"))) 
     674    f->type |= TYPE_ROOM; 
    673675  if ((f = match_flag("NOSPOOF"))) { 
    674676    f->type = NOTYPE; 
     
    12891291    /* notify the area if something stops listening, but only if it 
    12901292       wasn't listening before */ 
    1291     if (IsThing(thing) && 
    1292     GoodObject(Location(thing)) && (hear || listener) && 
     1293    if (!IsPlayer(thing) && (hear || listener) && 
    12931294    !Hearer(thing) && !Listener(thing)) { 
    12941295      tp = tbuf1; 
    12951296      safe_format(tbuf1, &tp, T("%s is no longer listening."), Name(thing)); 
    12961297      *tp = '\0'; 
    1297       notify_except(Contents(Location(thing)), NOTHING, tbuf1, 
    1298             NA_INTER_PRESENCE); 
     1298      if (GoodObject(Location(thing))) 
     1299    notify_except(Contents(Location(thing)), NOTHING, tbuf1, 
     1300              NA_INTER_PRESENCE); 
    12991301      notify_except(Contents(thing), NOTHING, tbuf1, 0); 
    13001302    } 
     
    13531355      hide_player(thing, 1); 
    13541356    /* notify area if something starts listening */ 
    1355     if (IsThing(thing) && GoodObject(Location(thing)) && 
     1357    if (!IsPlayer(thing) && 
    13561358    (is_flag(f, "PUPPET") || is_flag(f, "MONITOR")) && !hear && !listener) { 
    13571359      tp = tbuf1; 
    13581360      safe_format(tbuf1, &tp, T("%s is now listening."), Name(thing)); 
    13591361      *tp = '\0'; 
    1360       notify_except(Contents(Location(thing)), NOTHING, tbuf1, 
    1361             NA_INTER_PRESENCE); 
     1362      if (GoodObject(Location(thing))) 
     1363    notify_except(Contents(Location(thing)), NOTHING, tbuf1, 
     1364              NA_INTER_PRESENCE); 
    13621365      notify_except(Contents(thing), NOTHING, tbuf1, 0); 
    13631366    } 
  • 1.7.7/src/function.c

    r445 r447  
    477477  {"T", fun_t, 1, 1, FN_REG}, 
    478478  {"TABLE", fun_table, 1, 5, FN_REG}, 
    479   {"TEL", fun_tel, 2, 3, FN_REG}, 
     479  {"TEL", fun_tel, 2, 4, FN_REG}, 
    480480  {"TERMINFO", fun_terminfo, 1, 1, FN_REG}, 
    481481  {"TEXTFILE", fun_textfile, 2, 2, FN_REG}, 
  • 1.7.7/src/fundb.c

    r441 r447  
    17011701{ 
    17021702  int silent = 0; 
     1703  int inside = 0; 
    17031704  if (!command_check_byname(executor, "@tel") || fun->flags & FN_NOSIDEFX) { 
    17041705    safe_str(T(e_perm), buff, bp); 
    17051706    return; 
    17061707  } 
    1707   if (nargs == 3
     1708  if (nargs > 2
    17081709    silent = parse_boolean(args[2]); 
    1709   do_teleport(executor, args[0], args[1], silent); 
     1710  if (nargs > 3) 
     1711    silent = parse_boolean(args[3]); 
     1712  do_teleport(executor, args[0], args[1], silent, inside); 
    17101713} 
    17111714 
  • 1.7.7/src/notify.c

    r441 r447  
    10121012    if (Paranoid(thing)) 
    10131013      nsflags |= NA_PARANOID; 
     1014  } else { 
     1015    safe_str(msg, tbuf1, &bp); 
     1016    *bp = 0; 
    10141017  } 
    10151018 
  • 1.7.7/src/switchinc.c

    r441 r447  
    5858  {"IGNORE", SWITCH_IGNORE}, 
    5959  {"ILIST", SWITCH_ILIST}, 
     60  {"INSIDE", SWITCH_INSIDE}, 
    6061  {"INVENTORY", SWITCH_INVENTORY}, 
    6162  {"IPRINT", SWITCH_IPRINT}, 
  • 1.7.7/src/wiz.c

    r445 r447  
    326326 * \param arg2 the location to teleport to. 
    327327 * \param silent if 1, don't trigger teleport messagse. 
     328 * \param inside if 1, always @tel to inventory, even of a player 
    328329 */ 
    329330void 
    330 do_teleport(dbref player, const char *arg1, const char *arg2, int silent) 
     331do_teleport(dbref player, const char *arg1, const char *arg2, int silent, 
     332        int inside) 
    331333{ 
    332334  dbref victim; 
     
    434436    loc = Location(victim); 
    435437 
    436     /* if royal or wiz and destination is player, tel to location */ 
    437     if (IsPlayer(destination) && Tel_Anywhere(player) && IsPlayer(victim)) { 
     438    /* if royal or wiz and destination is player, tel to location unless 
     439     * using @tel/inside 
     440     */ 
     441    if (IsPlayer(destination) && Tel_Anywhere(player) && IsPlayer(victim) 
     442    && !inside) { 
    438443      if (!silent && loc != Location(destination)) 
    439444    did_it(victim, victim, NULL, NULL, "OXTPORT", NULL, NULL, loc);