[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
***************************************** *** 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 © 1991 Mike Prudence, Simon Hunt, Floyd Moore, Kelly Larson, Al Harrington. |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
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... |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
$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'.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
news
and
@gripe
. These verbs are defined by a variety of different
classes.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
blip types: > go n e e u e e s e |
$player_start
room. You can change your designated
home using the @sethome command.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
|
args
of `this none this'.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
|
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
"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... |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
@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 |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
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 |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
"%N (%#) is in %l (%[#l])." |
"blip (#42) is in The Venue Manager's Office (#47) |
player.location
).
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
@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.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
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.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
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.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
$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. |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
:tell()
verb. Notification will take place regardless
of whether or how your mail is forwarded. Thus, in the previous example
#42.mail_notify={#43} |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
|
|
;#43.mail_options = {"all", "incl"}; |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
|
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 |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
$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 |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
$letter
instead.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
$note
. The following commands are available for interacting with
notes:
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
$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.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
$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 :
|
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
@message-name object is "message" |
@leave north is "You wander in a northerly way out of the room." |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
$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:
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
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.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
me || magic wand |
#999 || #1001 |
me || (bell && book && candle) |
! coffin |
? object |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
"&&" "||" "!" "?" |
#45 && ?#46 && (#47 || !#48) |
{"&&", {"&&", #45, {"?", #46}}, {"||", #47, {"!", #48}}} |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
|
.edit_options
property which is a list
containing one or more (string) flags from the following list
|
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
|
|
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
>"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.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
|
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
@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} |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
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.
|
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[Top] | [Contents] | [Index] | [ ? ] |
What a relief!
Ah well, it could be worse...
[Top] | [Contents] | [Index] | [ ? ] |
Introduction
1. The LambdaCore Player Commands
2. Commands That Affect Your Player
3. Exploring and Interacting With the Virtual World
3.1 Movement4. Interacting With Other Players
3.2 Commands for Manipulating Objects
4.1 Communicating With Other Players5. Using Pronoun Substitutions
4.2 Gagging - How to Ignore Other Players and Objects
4.3 Communicating With The Game Administrators
4.4 Locating Other Players in the Virtual World
4.5 Checking the Security of Your Communication
6. The MOO Mail System
6.1 Mail Options7. Building and Creating Objects
6.1.1 .mail_forward
6.1.2 .mail_notify
6.1.3 .mail_options
7.1 Rooms and Exits8. Notes and Letters
8.1 Using Notes9. Using Containers
8.2 Using Letters
10. Messages on Objects
10.1 Setting Messages for Exits11. Using Locks With Objects
10.2 Setting Messages for Things
10.3 Setting Messages for Containers
11.1 Keys12. The MOO Editor
11.1.1 Key Representation
12.1 Editor Ranges13. Dealing with Verbs and Properties
12.2 Editor Commands
13.1 Dealing with Verbs14. Using Tasks
13.1.1 Prepositions13.2 Dealing with Properties
15. Miscellaneous
[Top] | [Contents] | [Index] | [ ? ] |
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] | [Index] | [ ? ] |
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 |
[ << ] | FastBack | beginning of this chapter or previous chapter | 1 |
[ Up ] | Up | up section | 1.2 |
[ >> ] | FastForward | next chapter | 2 |
[Top] | Top | cover (top) of document | |
[Contents] | Contents | table of contents | |
[Index] | Index | concept index | |
[ ? ] | About | this page |
where the Example assumes that the current position is at Subsubsection One-Two-Three of a document of the following structure: