Subject: Re: Technical quandry, regarding carried objects

From: [email-masked] (paul reiber)
Date: Mon, 25 Jan 1993 07:42:11 -0800

|>From [email-masked] Sat Jan 23 20:15:57 1993
|>From: Ken Schalk <[email-masked]>
|>To: [email-masked]
|>Subject: Technical quandry, regarding carried objects
|>
|>    I would like to make an object which can see what's going on in
|>the room outside of the person who's carrying it, when it's being
|>carried.  I would especially like to be able to tell when the carrying
|>player has moved to another room, but general listening would also be
|>highly desirable.  (Yes, yes, it's for a puppet, so shoot me.)
|>Logically, it makes sense that a carried object (unless stuffed inside
|>some pocket, which is another issue entirely) should be able to
|>observe what goes on outside the player.  Basically, anything that
|>person hears/sees (well, almost, at least in terms of anything the
|>object could hear/see when in the same room as the player, but not
|>being carried) the object ought to be able to hear/see.

Hi, Ken. I had almost the same problem.  Trying to make a communicator
pin a-la-Star Trek/next generation.  My end diagnosis of how this would
be achieved involved extensive mods to the player class. Basically, 
anywhere the player class received `important' information, it would
retransmit it to the contained object.  To prohibit `bug' objects from
being placed in unsuspecting persons inventory there's a lot of securing
that also has to go on.

Suffice it to say, the work estimate quadrupled. I never did end up
building the pin.

|>
|>    I've been puzzling over this for a while now, and don't see a good
|>elegant solution in sight.  About the only thing I can think of (and
|>this is a horrible kludge) is to have some other, somehow invisible
|>object which sits in the room with this listening object, and will
|>keep track of whenever a player leaves the room with it, and will then
|>follow it to it's carrier's new location (by simply moving itself to
|>the new room).

The invisible object solution is less elegant than the player class mods,
but may be less work.  The problem is:
	``Does the invisible object (or the room, for that matter)
	  actually receive everything you need''
... in the case of `what the player sees' I doubt it. For what they
    hear, maybe. (whispers and pages would be lost, though)
    
|>
|>    Does anyone have any better ideas/suggestions?  Has anyone done
|>anything like this before, and if so, where/how?

I think that hacking the player class is a more complete solution.
Though, like I said, it's a lot of work.  If you want some more
details of what'd be involved lte me know through regular email.

|>
|>    (Somehow I have this feeling that I'm going to get a very terse
|>response to this that will amount to 'no, you can't do that,' but I
|>had to ask.)
|>

Verbose enough for ya?   :)

|>//////////////////////////////////////////////////////////////////////
|>\\ Kenneth C Schalk \\\\"Is conciousness just a special form of \\\\\\  //-\
|>//(aka Xorian@Lambda)///  hallucination?" -- Frank Herbert      ////// //-O|
|>\\ [email-masked] \\\\\\\\"We're each other fragments...but each  \\\\\\ |   |
|>// [email-masked] / fragment reveals the [whole] from a    //////  \_/
|>\\ [email-masked] \\\ different angle..." -- William Gibson  \\\\\\
|>//////////////////////////////////////////////////////////////////////
|>
 +---------------------+------------------------+-----------------------------+
 | Paul B. Reiber, Jr. | NYNEX Allink Company   | "To Invent, you need a good |
 |  (914)  644 - 7729  | 4 Gannett Drive,       |  Imagination and a Pile of  |
 |   [email-masked]   | White Plains, NY 10604 |  Junk."     - Thomas Edison |
 +---------------------+------------------------+-----------------------------+

---

From: [email-masked] (bilding at ncm)
Date: Mon, 25 Jan 1993 08:17:39 -0800

Another possible solution regarding telling objects about their
carrier's movement is to hack the rooms' :exitfunc verbs to
check each thing the person is carrying for a special verb
(like :xmit_exit() or whatever) and call it with standard
args (where the person is leaving from, I assume)...
If you choose this solution, I suggest you do it AFTER the 
pass(@args) to the parent enterfuncs, so that if it crashes
as the result of incorrectly programmed :xmit_exit() functions
(please take no offense, as I know not the number or skill
of other programmers who might write such functions)
most of the regular functionality of exitfunc will have already
happened.

If this MOO is a Role Playing type MOO, you might wish to
use encumbrance to limit the number of things that people can
carry, to save time since this check will go off with every exitfunc.

Later...
bild