[Prev][Next][Index][Thread]

# Portable source form of MOO database

- Date: Mon, 27 Nov 1995 04:32:00 PST
- From:
- Reply-To:

    I've been tinkering with MOOs for a month or so.  I'd like to create a
    map that could conveniently be loaded into any MOO, a kind of ASCII
    "source" with no references to object numbers.

    Creating a series of rooms, using `@dig' to go from one to the next and
    `@describe here as ...' to set the descriptions was working for me up to
    a point.

    Example that hopefully will suggest what I an am trying to accomplish:

        @create $room called train station,Innsmouth train station
        drop train station
        @move me to train station
        @describe here as "Inside a dilapidated train station.  The tracks are to the west.  The front door is to the east."
        @dig e,east|w,west to "Train Station Steps"
        e
        @describe here as "Front door of the Innsmouth Train Station.  Up a short stairway to the west is the front door leading into the train station.  To the east are the streets of Innsmouth."
        @dig e,east|w,west to "Bank Street/Place of Hawks intersection"
        e
        @describe here as "The intersection of the N/S Place of Hawks and E/W Bank Street.  To the immediate north, Place of Hawks crosses a bridge over the Manuxet River.  The Innsmouth Train station lies directly west of here."

    Here is a sort of program to create three rooms, all without the need to
    refer to any object number.

    I got stuck on the problem of connecting two previously created rooms.
    None of @dig, @add-entrance or @add-exit is able to accept the object
    name but only the object number.

    I experimented with the following verb:

        >@verb misc:objnamed
        Verb added (1).
        >@args misc:objnamed any none none
        Verb arguments changed.
        >@chmod misc:objnamed rxd
        Verb permissions set to "rxd".
        >@program misc:objnamed
        Now programming misc:objnamed(1).
        [Type lines of input; use `.' to end or `@abort' to abort the command.]
        >for n in [0..tonum(max_object())]
        >  o=toobj(n);
        >  if (valid(o))
        >    if(o.name == argstr)
        >      player.location:announce_all(argstr, " is ", o);
        >      return o;
        >    endif
        >  endif
        >endfor
        >.
        0 errors.
        Verb programmed.
        >objnamed Train Station Steps
        Train Station Steps is #85

    in the hopes that I would somehow be able to create a function that
    would allow, e.g.,

        @dig n,north|s,south to objnamed("Train Station Steps")

    Hovever, my efforts to come up with something that could be evaluated,
    would take a place name as input and return an object were fruitless.
    The verb seems to be the closest thing I can find to a user defined
    function in the programmer's manual.

    Surely I am not the first to want to do this.  Can it be done?

    --
    Larry Mulcahy                           larry@ambient.uucp
    lmulcahy@nyx.cs.du.edu   ambient!larry@mnemosyne.cs.du.edu
    	http://nyx10.cs.du.edu:8001/~lmulcahy/home.html
    GCS d H s !g p1 au-- a w+++ v--- C++ U+ P++ L++ 3 E+ N++ K W--- M--
        V-- po--- Y+ t 5++ j- R G? tv b++ D++ B--- e+++ u h+ f? r* n--- !y
    The Failed Clinton Presidency: day 1042, 420 days to go

Follow-Ups:

- Re: Portable source form of MOO database

- From: "Nate Massey" <natem@ctdnet.acns.nwu.edu>

- Re: Portable source form of MOO database

- From: Kipp the Kidd <mcmudge@mailbox.syr.edu>

- Prev: Re: Parsing
- Next: Re: Portable source form of MOO database
- Index: MOO-cows
- Thread: MOO-cows

Home | Subject Index | Thread Index