MOO-cows Mailing List Archive


Re: MOO Gate System (was Re: Database Editors)

On Wed, 13 Sep 1995, Nate Massey wrote:

> $gate:send("MOOname", "remote_page","Enigma", "Hi there!");
> or something like that, and it would send a message through other MOOs
> eventually to "MOOname", and there would call (if it existed) 
> $gate:gv_remote_page (gv = gate verb) with whatever arguments that were
> passed through the send (doing an 'un-literal()'... actually, I just
> $no_one:eval()d it).  On the original side, it would suspend and wait
> for a return code from the remote side, and then would $gate:send
> would return it.
> I was also going to do security so that a person could do porting, etc,
> however, since it goes through multiple MOOs, it would be difficult to
> ensure that somewiz somewhere along the line didn't steal passwords, 
> etc.
> I abandoned the project since school started (actually, I've abandoned
> several projects since school starts).
> Does anyone know if something like this has been done?  If not, would
> people be interested in it?

I've got a room like this running on MOO2000.  All possible verb calls are
permed to $no_one, so there are no security problems, een if a remote wiz
wants to mess with another MOO.  It does not port code, but instead uses a
puppet-like interface with the other MOO(s) when a player types something. 
When the room first connects to another MOO, it sends the info about every
object that is in the room; name, aliases, description.  The recieving
room then creates $listener objects (and puts them in the room) ... they
have the .name .aliases and .description set appropraitely.  A property on
the $listener keeps track of {the other MOO's name, the object number of
the object the $listener is linked to at the other MOO}.  When theese
things are :notify'd of stuff, the $listener sends to all the connected
MOO/MUDs: {moo-to-send-the-message-to,obj-number-at-dest-moo,the msg}... 
when the receiving moo gets it, it just :tells args[2] the message. 
In the room, there is a :here_huh verb, that sends the {verb,argstr} 
to the other MOOs.  They then make the $listener 'type' that command... 
the same way puppets do.  If the command fails, it sends 'I don't 
understand that (network.moo_name)' If you're connected to 1 moo, it 
works great, but when on 2 or more, one moo will execute the command, and 
the others will reply with a 'I don't understand that (Mooname)' ...

If you don't really give a shit about how it works, here's what works:
to <player> <message>    (* if your 'to' command allows you to
                            say things to objects)
hug/kiss/lick/punch/kick/etc <player>  (* if you have the FO)
pet the cat that is on another MOO.
share drinks with a friend, who is on another MOO.
give notes to people on another MOO. Yes, $notes.
People can even put stuff in containers at MOOA and person at MOOB can 
take them out and mess with them.  The objects are not ported, so things 
in MOOA cannot leave the 'connected room' at MOOB.
Ok, enough bragging....

- Kipp


Home | Subject Index | Thread Index