Subject: Q: How can I add a spammy verb to my player that others can use?

From: [email-masked] (Grant Blaha)
Date: Tue, 22 Jun 1993 00:47:31 -0700

I want to add a verb to my player called "pet".  My player's a tiger and likes
that sort of attention.  So far, the verb works great if I use it as a feature.
Its declared as:

   catact:pet any any any rxd

It works like this:

   pet PurpleTiger belly

Which I parse all out to generate suitable messages to all concerned.  Now, to
provide access to the verb to other players so they can pet me back without
adding the feature, I added a verb to my character that looks like this:

   me:pet any any any rxd

In the me:pet verb, I pass the call on to the catact:pet verb.  It works great
if the other player tries:

   pet PurpleTiger

but if she tries:

   pet PurpleTiger belly

She sees an "I don't understand that" message.  She then discovered that

   pet PurpleTiger with <or any preposition>

does work.  Obviously, there is some verb matching not happening.

Does anyone know how I should declare the verb so it can be found on the direct
object and also contain additional arbitrary text?  Is it even possible?

Thanks.

---

From: Judy Anderson <[email-masked]>
Date: Tue, 22 Jun 1993 08:26:42 -0700

It's not possible to get arbitrary text after the direct object; you
must put a preposition in between the direct object and the rest of
the text in order for the builtin parser to find your verb at all.
Verb matching is documented in the programmer's manual.  So you should
say "pet purpletiger ON belly" and have your verb parse things such as
that, as you discovered.

We all hate the built in parser...  Them's the breaks.

Judy Anderson yclept yduJ   [email-masked]  'yduJ' rhymes with 'fudge'
    [ LambdaMOO is lambda.parc.xerox.com 8888 / 13.2.116.36 8888 ]
       Join the League for Programming Freedom, [email-masked]

---

From: [email-masked]
Date: Tue, 22 Jun 1993 08:52:24 -0700

Your message dated: Tue, 22 Jun 93 08:26:42 PDT
> We all hate the built in parser...  Them's the breaks.

We are building a scripting language on top of MOO that will have its own
parser.  Right now the project is in the design phase, so we just have some
pseudocode written and nothing implemented.

One question I've been pondering:
When we get to actually coding this beast, I am leaning towards coding
it in the database.  So we'd use an any any any verb and do the parsing
and interpreting in MOO code.

Another option is to hack the server.
Another option is to do the translation at the client, or in
a companion process on the server machine.

Any opinions?
Any bits of parser code-- C or MOO-- to donate to the effort?

-- Amy

---

From: [email-masked]
Date: Tue, 22 Jun 1993 11:43:00 -0700

Date: Tue, 22 Jun 1993 11:52 EDT
    From: [email-masked]

    ... we'd use an any any any verb and do the parsing and interpreting in MOO code. ...

I recently ran into a problem with this:

Consider a room containing an object named "Gold Box" 
and another named "Gold Watch", and consider trying to parse:

  make gold from lead

where "gold" unambiguously does not refer to either thing in the room.
The parser does the `helpful' thing of telling you that gold is ambiguous
even though make is an "any any any" verb.  I think you should be able to 
selectively disable the ambiguity check per-verb, or else your strategy
of using "any any any" is going to break down randomly when certain 
configurations of objects are in the room.  Seems to me that that might
require support from the core...

---

From: [email-masked] (Sarah Elizabeth Heacock)
Date: Fri, 30 Jul 1993 13:48:06 -0700

Is there anyway to back up a MOO db without fork()ing?
It does not matter if it drags the MOO to a standstill, or
if you have to take the MOO down to do this.

If so, how?

Sarah Elizabeth Heacock
[email-masked]

---

From: Judy Anderson <[email-masked]>
Date: Fri, 30 Jul 1993 14:00:16 -0700

I believe that the db checkpoint done by the shutdown() primitive as
part of its shutting down is done without fork().  Obviously there
can't be something in-moo to use this regularly, but in combination
with a shell script driving the moo and #0:server_started you could
use such a method for regular checkpoints.  All players would get
booted, etc. etc.