[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
***************************************** *** LambdaCore Database User's Manual *** ***************************************** For LambdaMOO version 1.3, May 1991 by Mike Prudence (blip) by Simon Hunt (Ezeke) by Floyd Moore (Phantom) by Kelly Larson (Zaphod) by Al Harrington (geezer) Copyright (C) 1991 Mike Prudence, Simon Hunt, Floyd Moore, Kelly Larson, Al Harrington. |
[Top] | [Contents] | [ ? ] |
Introduction
1. The LambdaCore Player Commands
2. Commands That Affect Your Player
3. Exploring and Interacting With the Virtual World
4. Interacting With Other Players
5. Using Pronoun Substitutions
6. The MOO Mail System
7. Building and Creating Objects
8. Notes and Letters
9. Using Containers
10. Messages on Objects
11. Using Locks With Objects
12. The MOO Editor
13. Dealing with Verbs and Properties
14. Using Tasks
15. Miscellaneous
[Top] | [Contents] | [ ? ] |
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
Note
class. Other commands are defined for one or more classes. This section intends to give a paper reference for the information given in the
help
system within the LambdaCore database, with some additional explanation of the concepts involved. Note that, for commands that can be abbreviated, the form in which the command is specified in the database is shown. For example, the
inventory
command is written down as
i*nventory |
i in inv inven etc... |
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
$player
class defines a number of verbs that allow the player to change and view certain of his/her characteristics. The following commands are available :
help object:verbname |
help $foo_utils |
$..._utils
objects (e.g.,
$string_utils
,
$list_utils
, etc...), which are all libraries of generally used verbs. The commands
`?'
and
`information'
(usually abbreviated
`info') are synonyms for
`help'.
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
news
and
@gripe
. These verbs are defined by a variety of different classes.
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
blip types: > go n e e u e e s e |
$player_start
room. You can change your designated home using the
@sethome
command.
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
|
args
of
`this none this'.
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
|
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
"This is a great MOO! |
You say, "This is a great MOO!" |
blip says, "This is a great MOO!" |
whisper "Hello there" to blip |
Ezeke whispers, "hello there" to blip. |
You sense that blip is looking for you in The Venue Hallway. |
You sense that blip is looking for you in The Hallway He pages, "Hello - are you busy ?" |
:wishes he were much taller... |
blip wishes he were much taller... |
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
@gag geezer |
Noisy Robot
prints
`Hi there'
every 15 seconds. In order to avoid seeing that, blip types the following command:
@gag Noisy |
Noisy Robot
for this to work, or know its object number.
@ungag geezer |
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
news
command is used by the wizards to let players know of anything that is globally interesting. Players can use
`@grip'
to complain to the wizards, and commands like
`@typo'
to report defects to builders and programmers. The following section describes these commands in detail.
>@gripe The Fruitbat >"How come I can't ever see the fruitbat in the Venue Clock? >" -- A frustrated player |
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
"%N (%#) is in %l (%[#l])." |
"blip (#42) is in The Venue Manager's Office (#47) |
player.location
).
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
@sweep
tries to list the avenues by which information may be leaving the room. In a manner analogous to @check, it assumes that you don't want to hear about your own verbs, or those belonging to wizards, who presumably wouldn't stoop to bugging.
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
Zaphod crawls through the little doorway, bruising his knee. |
crawls through the little doorway, bruising %p knee. |
|
.name
propertywhich are assumed to already be capitalized as desired. There may be situations where the standard algorithm, i.e., upcasing the first letter, yields something incorrect, in which case a
capitalization
for a particular string property can be specified explicitly. If your object has a
.foo
property that is like this, you need merely add a
.fooc
(in general
.(propertyname+"c")
) specifying the correct capitalization. This will also work for player
.name
's if you want to specify a capitalization that is different from your usual .name
For example, Phantom makes a hand-grenade with a customizable explode message. Suppose someone sets
grenade.explode_msg
to:
"%N(%#) drops %t on %p foot. %T explodes. %L is engulfed in flames." |
Phantom(#42) drops grenade on his foot. Grenade explodes. Blip's house is engulfed in flames. |
#1234.namec="blip's house". |
$string_utils:pronoun_sub()
. Using the substitution
%n
actually calls
player:title()
while
%(name)
refers to
player.name
directly.
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
Mail Room
class defines a set of verbs that can be used by other MOO programs to send mail. This is used, for example, by the
@gripe
command, which uses the MOO Mail system to deliver gripes to the game administrators. The following commands are used to activate portions of the MOO mail system:
|
@mail message-sequence |
|
@mail 1 4 7 last:10 2-3 15 cur |
Subject:
line. Use
`say'
(`"') to insert lines in the body of your message. Giving this command without arguments resumes editing the previous unsent draft message if one exists.
Reply-to:
field in the message you are answering, its contents will be used to initialize the
To:
line of your reply. Otherwise, a
To:
line is determined depending on whether you specified
`sender'
or
`all'
in the command line (or your
.mail_options
).
`incl'
includes the text of the original message in your reply,
`noincl'
does not. Defaults are
`sender'
and
`noincl', but you can change this by setting your
.mail-options
property.
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
$mail_recipient
). If this list is nonempty, you will not receive any mail yourself unless you are on it. E.g., if blip is #42 and ur-blip is #43
#43.mail_forward={} -- usual case; ur-blip gets his own mail. #43.mail_forward={#42} -- blip gets ur-blip's mail instead. #43.mail_forward={#43,#42} -- ur-blip gets mail and blip gets a copy. #43.mail_forward={#-1} -- ur-blip's mail disappears without a trace. |
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
:tell()
verb. Notification will take place regardless of whether or how your mail is forwarded. Thus, in the previous example
#42.mail_notify={#43} |
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
|
|
;#43.mail_options = {"all", "incl"}; |
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
|
name:alias,...,alias |
name-and-alias,alias,...,alias |
@describe me as "A very fine fellow, if a bit on the short side." |
A very fine fellow, if a bit on the short side. |
.description
property. For multi-line descriptions,
.description
can be a list of strings.
@rename #4237 to "Rover the Wonder Dog":Rover,dog |
#-1
or
$nothing
. Unlike
`@move',
`@eject'
does
not
check to see if the object wants to be moved, and with the destination being what it is, there is no question of the destination refusing the move, either. Generally, you should only resort to
`@eject'
if
`@move'
doesn't work. The first form of the command removes the object from the current room. The second form removes the object from the specified place (which, in most cases, you'll have to specify as an object number). In either case, this command only works if you own the room/entity from which the object is being ejected. The form of the command
@eject ... from me |
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
$room
. An exit is an instance of the generic exit class,
$exit
. An exit can be thought of as a one way tunnel leading from one room to another. If you wish to have a two way exit, you have to use two exits: one going from the
source
to the
destination
and one going from the
destination
to the
source
. The following commands are used for creating and managing rooms and exits:
names names|names |
@dig "The Conservatory" |
@dig north,n to "The North Pole" |
@dig west,w|east,e,out to "The Department of Auto-Musicology" |
@dig up,u to #7164 |
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
$letter
instead.
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
$note
. The following commands are available for interacting with notes:
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
$letter
, encrypt it so that only you and the other player can read it and then either give it to the player in question or leave it where they will find it. Once they've read it, they can use the
`burn'
command to recycle the letter. The following command is available for letters, in addition to those used for notes.
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
$container
. Containers have a large number of messages which get printed when players act upon them. Containers have opacity. This is manipulated using the following command :
|
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
@message-name object is "message" |
@leave north is "You wander in a northerly way out of the room." |
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
$thing
as an ancestor. They are printed to various audiences under various circumstances when an attempt is made to
`take'
or
`drop'
a thing. The ones whose names begin with
`o'
are always shown prefixed with the name of the player making the attempt and a single space character. The standard pronoun substitutions (with respect to the player) are made on each message before it is printed. The following commands can be used to set the corresponding messages on things:
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
x:is_unlocked_for(y) |
:is_unlocked_for
is implemented is entirely independent of the ways in which
x
uses its results. Note that you can play on either side of this interface with your own objects, either defining new implementations of
:is_unlocked_for
that match your particular circumstances or having your objects interpret their being locked in new ways. The following commands are used to specify locks on objects.
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
me || magic wand |
#999 || #1001 |
me || (bell && book && candle) |
! coffin |
? object |
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
"&&" "||" "!" "?" |
#45 && ?#46 && (#47 || !#48) |
{"&&", {"&&", #45, {"?", #46}}, {"||", #47, {"!", #48}}} |
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
|
.edit_options
property which is a list containing one or more (string) flags from the following list
|
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
|
|
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
>"first line -|Line 1 added. >" second line" -|Line 2 added. >list -|1: first line -|__2_ second line" -|^^^^ |
>list . -|_37_ Hello there -|^38^ Oh, I'm fine. >:, how are you -|Appended to line 37. >:? -|Appended to line 37. >list . -|_37_ Hello there, how are you? -|^38^ Oh, I'm fine. |
|
Reply-to:
field of your message. With arguments, adds (or changes) the
Reply-to:
field. When someone
`@answers'
a message, the
Reply-to:
field is checked first when determining to whom the reply should be sent. To clear the
Reply-to:
field, enter the command
reply-to "" |
@edit object:verb. |
@notedit note |
@notedit object.property |
Subject:
line for your message. If
text
is "", the
Subject:
line is removed.
To:
line) for your message. Recipient names not beginning with * are matched against the list of players. Recipient names beginning with * are interpreted as mailing-lists/archives/other types of non-person addresses and are matched against all such publically available objects. If the list you want to use isn't in the database (i.e., isn't located in the database ($mail_agent)) you need to refer to it by object id.
To:
line, the message will not be sent. It may be, however, that valid addresses on your
To:
line will forward to other addresses that are bogus; you'll receive warnings about these, but in this case your message will still be delivered to those addresses that are valid.
$mail_agent
's mail-forwarding tracer and determines who (or what) is actually going to receive your message. The resulting list will not include destinations that will simply forward the message without
:receive_message()
'ing a copy for themselves. The second form expands an arbitrary list of recipients, for if e.g., you're curious about the members of particular mailing list.
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
|
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
@verb foo:"bar baz mum*ble" |
@list $room:@move |
@list $prog:@list |
@list
itself.
>eval 3 + 4 -|7 >;3+4 -|7 >;for x in (player.aliases) player:tell(x); endfor -|Haakon -|Wizard -|ArchWizard -|0 ;;l = {}; for i in [1..10] l = {@l, i}; endfor return l -|{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} |
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
[ < ] | [ > ] | [Top] | [Contents] | [ ? ] |
fork()
statement in the programming language creates a task whose execution is delayed for at least some given number of seconds; these are
forked tasks.
|
[ < ] | [Top] | [Contents] | [ ? ] |
[Top] | [Contents] | [ ? ] |
What a relief!
Ah well, it could be worse...
[Top] | [Contents] | [ ? ] |
The buttons in the navigation panels have the following meaning:
Button | Name | Go to | From 1.2.3 go to |
---|---|---|---|
[ < ] | Back | previous section in reading order | 1.2.2 |
[ > ] | Forward | next section in reading order | 1.2.4 |
[Contents] | Contents | table of contents | |
[ ? ] | About | this page |
where the Example assumes that the current position is at Subsubsection One-Two-Three of a document of the following structure: