MOO-cows Mailing List Archive
[Prev][Next][Index][Thread]
Re: Portable source form of MOO database
> I'm trying to avoid the use of object numbers, which are assigned
> unpredictably by the server. If a objnamed function were possible then
> maybe
This is a very hard thing to do. I suggest poking around
'me:my_match_object'
> @go objnamed("Train Station Steps")
>
>***Kipp> You're mixing the code parser with
>***Kipp> the command parser (perhaps you can explain this better, Pavel)
>***Kipp> To find out object numbers of objects you've forgotten, type
>***Kipp> '@audit [<player>]'
>
> One of the questions I was trying to ask is `how do I create user
> defined functions? Is it even possible?' I can't seem to find it in
> the docs anywhere.
Where did you even hear that you could? They're called 'verbs'.
> Kipp> Okay, a brief summary that should make this easier... Commands
> Kipp> go: <verb>[[ <dobj>][ <prep>[ <iobj>]]] CODE does just about
> Kipp> everything else.. (Keep in mind that <function>(<args>) and
> Kipp> <OBJ>:<VERB>(<args>) are in code, not commands.)
>
> I just looked to see if there is anything called code or @code (in the
> LambdaCore DB)-- nope. Assume I am a rank newbie, how can I define a
> function?
Nononono, I mean, CODE as in the stuff you put in when you type '@program...'
<verb>[[ <dobj>][ <prep>[ <iobj>]]]
Nowhere in this expression does it mention any builtin functions. They
may only be called from within CODE, not commands. I think you're
getting confused with unix shells.
There is, though, a verb that is called every time the server wants to
match an object; <player>:my_match_object(<objname>);
The verb normally calls :match and then $string_utils:match_object.
With the following code, you can type the names of objects you own, even
if you aren't near the objects.
You should write something like this:
me:my_match_object()
x=pass(@args);
if(!valid(x))
what=args[1];
for y in (this.owned_objects)
(seconds_left<2 || ticks_left() < 50) && suspend(0);
if(index(y.name,what)==1)
return y;
endif
endfor
endif
return x;
.
References:
Home |
Subject Index |
Thread Index