Grinna's Building Basics Class

Grinna reveals the secrets of making ROOMs and EXITs.

Author: Grinna
Category: Building
Functions: exit(), loc(), name(), num(), owner(), room(), u().
Compatibility: PennMUSH, TinyBit, TinyMUSH, TinyMUX.

MUSHCode for Grinna's Building Basics Class

Topic: Building Basics
Author: Grinna
Summary: Grinna reveals the secrets of making ROOMs and EXITs.

Building Classroom(#1064JRn)

The room is well lit, allowing a bright work space. Piles of wood and metal
line the north wall, and the wall to the east is covered by shelves and bins
on either side of the doorway. There are oak work tables and work benches, and
chairs scattered throughout. The table tops have drills and saws, hammers and
nails, screwdrivers and screws hanging in a neatly organized manner off the
edges. Schematics, layouts and blueprints are attached to the walls.

A chalkboard fills the west wall, with an old beat-up lectern in front of it.
The other three walls are painted off-white.
Obvious exits:
Hallway <O>

Grinna says, "Okay.. Lets get started then."
Grinna says, "Welcome to basic building class. Today I hope to cover the
following subjects:
@dig
@open
Link_Ok flag
@link
@desc
Writing a better desc
Doing exit descs
@succ
@osucc
@odrop
@lock
@ofail
@fail"

Grinna says, "Before we actually get into the class I would like everyone to
do @chan/on 101. After a bit of discussion about how things work you will be
able to practice your building skills from the Building Lab or you may choose
to start in Javelin's Building Nexus for a bit. This will make the 101 channel
the easiest way to continue the class. So, Please, no building until after the
lecture portion of the class and be sure to keep some paper and a pen/pencil
nearby because you will need to make a few notes. :)"
Grinna says, "First we will discuss the @dig command. There are several ways
to use this command

One is to type:
@dig <Room name>.

This creates a floating room that you must teleport to and from.

You may also @dig/teleport <Room name>... which makes a floating room AND
teleports you to it, however it has NO exits.
When you DO @dig a room.. the MUSH will give you a message like this:

<Room name> created with #<room dbref>.

(You should ALWAYS make a note of this dbref # and any other rooms and exits
you create.)"

@DIG
@dig <room name> [= <exit name>;<exit alias>*,<exit name>;<exit alias>*]
@dig/teleport

This command is used to create a new room, possibly with exits linking
it to the room you are standing in. This command normally costs 10 pennies,
although some MUSHes may have different amounts or may restrict this
command to those with the builder @power.

@dig/teleport will automatically @tel the digger to the new room.

If you use the long form of this command, an exit to the new room from
the one you are standing in and an exit back from the new room will both be
automatically @open'ed and @link'ed. You may have as many or as few exit
aliases for an exit as you like, separated in the command by semicolons.
The exit leading to the new room is separated from the exit leading back by
a single comma.

(continued in help @dig2)

Grinna says, "Now, after you've dug a room, it might be nice to have some
exits so that:

1. You are connected to the MUSH landscape, and
2. It's easier for you and other people to enter and leave your room."

Grinna says, "In order to create exits and connect them and your room to the
MUSH lets discuss @open and @link a bit. Please read help @open."

@OPEN
@open <exit name>
@open <exit name>;<exit alias>*=<destination>
@open <exit name>;<exit alias>*=<destination>,<exit name>;<exit alias>*

This command opens an exit in the room you are standing in with the
specified name. You can then use the @link command to set the exit's
destination, or you can set it automatically by using the DBREF of a
destination, which can be a room or object. (Note that you CANNOT open
exits from objects.) If you also include the second exit name, an exit
from the destination room will be opened back to the room you are in.

* Note that you can have as many exit aliases as you like by adding more,
separated by semicolons. An exit alias allows you to type that instead of
the full exit name to go through the exit. Only the exit name appears in
the list of Obvious Exits in a room.

See also: EXITS, @link, @dig

Grinna says, "Using the instructions given with 'help @open' you see that the
first thing you need after the @open command is <exit name> then a semicolon
(;) then <exit alias> (the '*' indicating that you may continue adding more
<exit alias'>) then an equal sign (=) and a destination (which as the
instructions say must be a dbref #)."

Grinna says, "A word about exit alias':

Exit alias' should include all the possible name variations that you can think
of including a compass direction, and the given name of the exit.

Note also that the compass direction IN is /opposite/ that of the compass
direction OUT.

Also notice that while you should use OUT as an alias for the way out, IN is
never or /rarely/ used."

Grinna says, "For Example:

Contemporary Worlds <CO>;CO Contemporary worlds;cw;contemp;con;out;o;west;w

This would be the exit leading out of the room you are in /it must be YOUR
room/ for the @open command to work."

Grinna says, "If anyone ever has any questions, just pipe up on the 101
channel. :)"
Grinna says, "The next part of the @open command is '=<destination>' This is
where you put the dbref# of the room you wish your exit to let you OUT of your
room at. This room MUST be either owned by you OR have a Link_ok flag on it.
You can use @open without a dbref# destination but then you have an unlinked
exit..which is /not/ a good thing. However you may then use the @link command
to connect it to a Link_ok room...*WARNING* but so may /anyone/ else."

<101> Trispis says, "Can you open an exit /without/ linking it?"
<101> Trispis says, "Nevermind."
<101> Grinna grins.
<101> Grinna says, "Good question tho."

Grinna says, "After the =<destination> you will see

,<exit name>;<exit alias>

Note that you will need a comma (,) and then another exit name. The comma
starts another command - in this case opening another exit, which would be the
exit returning to your room."

Grinna says, "Okay now, class. Lets read help @link. :)"

@LINK
@link <object>=<dbref | here | home | variable>

Links <object> to either a room or a thing. If a thing or player is
linked, that sets the object's HOME. If a room is linked, that sets
the object's drop-to room, which is where objects that are dropped
in the room will be sent to.

Most often, @link is used to link or relink an exit to a destination
room. In order to link an exit to a room, you must either own or control
the room, OR the room must be set LINK_OK. If you do not own an exit and
you relink it, the exit will be set HALT and @chowned to you. Linking an
exit usually costs 1 penny.

If the destination of an exit is "variable", its destination is determined
at the time of travel by the attribute DESTINATION on the exit, which is
evaluated like a U()-function. Only Wizards may create variable exits.

LINK_OK objects can also be used as semaphores, and any object
can be @parented to them.

See also: EXITS, @open, @dig, DROP-TO, HOME


Grinna says, "You will notice that @link is useful for more than building.
However, we are just going to concentrate on the building aspects of @link
today. :)"
Grinna says, "@link requires an object and a dbref#. The object in for our
purpose is the exit, which would be for example: Contemporary Worlds <CO>;CO
Contemporary worlds;contemp;cw;con;out;o;west;w. The dbref# would be the
number of the target room (the room you want to link your exit to). *CAUTION*
For exits, you must own/control the target room unless its LINK_OK flag is
set. If you do not own/control the target room then you may only link an exit
TO that room, but not make one returning you to that room. You may, however,
link any unlinked exit to your room."
Grinna says, "The /preferred/ method in building is to @dig your room and both
the exits in and out all at the same time. Using this method looks something
like this when typed.

@dig My Sample Room=My Sample Room <MSY>;msr;my sample room;my sample;my
room;ms;mr;east;ea,Contemporary Worlds <CO>;co;contemporary
worlds;contemp;con;cw;out;o;west;w

"

<101> Trispis wows. That's a massive command.
<101> Trispis has a question...
<101> Grinna says, "Yes/"
<101> Trispis just wants to clarify some of the punctuation in that syntax...
tell me if this is right...
<101> Grinna says, "Okay. :)"
<101> Trispis says, "@dig <room name>=<Entrance Name;alias>,<Exit Name;alias>
(noting the semicolons and the comma)"
<101> Grinna says, "Yes.. that's correct."
<101> Trispis says, "Cool. (:"
<101> Grinna says, "The comma separated the two exits."
<101> Trispis nods. Cool. (:

Grinna says, "Notice that with this method you have given your room a NAME, an
NAME for the exit in, and for the exit out plus all possible alias
variations."
Grinna says, "Using the complete @dig format is the same as using @dig plus
@open and @link, but all in one step. As a matter of fact when using the
complete @dig command you will recieve this message:

Room created with room number Dbref#.
Opened.
Trying to link...
Linked.
Opened.
Trying to link...
Linked.

Providing that you are successful in your building that is. :)"
Grinna says, "For either the full @dig command or @open or @link to work the
room you are trying to

a. @dig out of or
b. link /to/:

must be

1. owned by you or
2. Set Link_ok"

Grinna says, "Now any questions before we move on to the DOING part of the
class?"

Gyles nopes.

Grinna says, "Okay.. now down to building.. lets move across the hall to the
Building Labs. Also think about which world type you would like to build
from... ie: Historical - Contemporary - Future - Fantasy

NOTE: You may choose to build from The Building Nexus (@tel #2229).

Also.. Make sure you have done @chan/on 101 before you leave this room."

<101> Trispis has some questions, but figures they'll be answered in the next
portion. (:
<101> Grinna says, "Well.. if they don't get answered.. be sure and pipe up."

You open the classroom door and go out to the Hallway.
You travel to the Hallway...
Hallway - Building(#1076Rn)
~~~~~~~~~~~~~~~~~~~~~~~~~~ Hallway - Building ~~~~~~~~~~~~~~~~~~~~~~~~~~~
|\ \ @ / /|
| \ \ ___________________________________________________________ / / |
|__\ | _____________ | /__|
| | | Building Lab -^ | | ^- Building Lab | | |
| | | | * | | | |
| | | | | | | |
| | | <- Lecture Hall |\___________/| Roleplaying -> | | |
| | | <- - - - Coding ||___________|| Foyer - - - -> | | |
| | | |/ \| | | |
| | | | | | | |
| | | | | | | |
| | |______________________| |______________________| | |
|__|/ E \|__|
| ^ |
| N < -+- > S |
| v |
/ W \


You travel to the East...
Building Lab(#1055RnJ)
Construction Zone. Hardhat optional.
Obvious exits:
Historical <H>, Contemporary <C>, FUturistic <FU>, FAntasy <FA>, and
Hallway <O>

Grinna says, "Right now I would like you to make a note of the #dbref of the
World Area you wish to build from. So go to the world area of your choice and
Type:

think num(here)

Or if you have a toolkit Type:

info here

Either of these should produce a response of:

#DBREF

Write it down. You will need it. From here on I'll conduct the class on 101
channel."

<101> Grinna says, "Now that you have the dbref of the room you are building
from, you will need the dbref of an unlinked exit that you may use there.
Type:

think num(free exit)

Or if you have a toolkit type:

info free exit

If you are in the 101 Building labs and there are no free exits let me know
and I will have Martia make one for you."

<101> Grinna continues. :) "Now does everybody have the dbref's of the room
they are starting from and an unlinked exit?"
<101> Trispis nods.

You cycle thru the airlock into the Futuristic Building Area.
Futuristic Worlds(#974RLn)

This is where you may build portions of a (or an entire) futuristic
world(s) before getting your idea attached to the RP/IC areas.

Obvious exits:
Free exit, jack in, and Out <O>

<101> Grinna says, "Good. :) Now do: @dig/teleport <Room name>"

Mee's Room created with room number 288.
Mee's Room(#288Rn)

<101> Grinna says, "Next we are going to open an exit out of the room you are
in back to the World Area you started at."
<101> Grinna says, "So now type

@open <World name>;<world name>;<alias>;<alias>;out;o

Substitue the world you started from, and any alias' you may think of, and
include a compass direction too."

Opened.

<101> Grinna says, "Now you should have a floating room.. and an exit out..
but the exit leads NOWHERE as yet. :) So the next step we will take will be
to link the exit you just created to the World Area."

Mee's Room(#288Rn)
Obvious exits:
Futuristic Worlds

Futuristic Worlds;FU;Out;o(#286E)
Type: Exit Flags:
Owner: Mee Zone: *NOTHING* Ducats: 0
Parent: *NOTHING*
Powers:
Warnings checked: none
Created: Sun May 31 14:44:46 1998
Last Modification: Sun May 31 14:44:46 1998
Source: Mee's Room(#288Rn)
Destination: *UNLINKED*

<101> Grinna says, "Er.. correction"
<101> Grinna says, "To do this type @link <Exit name>=<World area dbref> or if
you were very good and observant and got the dbref# of the exit you created.
@link <exit Dbref>=<world area dbref>"
<101> Grinna says, "Now lets connect that free exit you chose earlier to your
room.
Type: @link <exit dbref>=<Your Room dbref>"

Linked.

Futuristic Worlds;FU;Out;o(#286E)
Type: Exit Flags:
Owner: Mee Zone: *NOTHING* Ducats: 0
Parent: *NOTHING*
Powers:
Warnings checked: none
Created: Sun May 31 14:44:46 1998
Last Modification: Sun May 31 14:44:46 1998
Source: Mee's Room(#288Rn)
Destination: Futuristic Worlds(#974RLn)

<101> Mee says, "I forgot the exit dbref. Now what do I do?"
<101> Grinna says, "Ah.. well you DO have the dbref for the world area
correct?"
<101> Mee nods.
<101> Trispis says, "Which exit dbref? The one going out or the free one
you're gonna use to come in?"
<101> Mee says, "The one to come in. I forgot."
<101> Grinna says, "Okay.. then write down your room number. @tel back to the
world area. find the exit dbref again and link the exit from there."

You own a disconnected room, Mee's Room(#288Rn)

^-- NOTE: Perhaps a word about this in the log/book.
[NOTE from Trispis: Mee got a warning message about his unlinked room. Once he
gets his exits linked (later in this log), that message no longer appears.]

Futuristic Worlds(#974RLn)
This is where you may build portions of a (or an entire) futuristic
world(s) before getting your idea attached to the RP/IC areas.
Obvious exits:
Free exit, jack in, and Out <O>

Halted: Free exit;Free;Exit(#290).
Linked.

^-- NOTE: Perhaps a word about this in the log/book. (It's set HALT because
it's changed owner and so the succ/osucc/odrop won't work)

<101> Grinna says, "Doing alright Gyles?"

<101> Gyles grins. Yeah, you bet. ;)

<101> Grinna says, "Great. Then if we are all caught up."
<101> Grinna says, "Now that you own the /formerly/ unlinked exit, you may use
@name to rename the exit so the others will know where you are. Read Help
@name."

@NAME
@name <object>=<new name> [<password>]

Changes the name of <object>, which can be a thing, player, exit,
or room. You can refer to object by name, DBREF number, or as "me"
or "here". For a player, it requires the player's password.

<101> Grinna says, "As you can see from the help you can use @name for more
than just your exit. You could use it for the room you've made or yourself or
any other object you own."
<101> Grinna says, "For right now you will need it for that former free exit.
This will not require a password (that's only necessary for changing your
character's name). So type:

@name <dbref>=<Exit name>;<exit alias>

And as with the first exit you did.. type in all the possible alias' you can
think of, plus a compass direction."
<101> Grinna says, "One word of caution about exit alias'. You should /avoid/
using alias's such as ME, E, EX, B, BR, I, L, or P. Also avoid using the
same alias' in the same room. The game will choose randomly which exit it
thinks you mean. Also Try to inclue directions in your exits. Directions
make it easier for you to map your building as you go."

@name free exit=Mee's Room <MR>;Mee's Room;MR

Name set.

<101> Grinna says, "Now for the fun stuff... writing descriptions. :)"
<101> Grinna says, "Everyone should have written a description of themselves
by now..and it's pretty much the same for a room description. A simple
example of a room description would be:"
<101> Grinna says, "@desc here=This is my room. A light hangs from the
ceiling and a carpet covers the floor. A couch with a low table sit against
one wall. A television sits across the room from the couch."

Mee's Room(#288Rn)
Obvious exits:
Futuristic Worlds

Mee's Room/DESCRIBE - Set.

Mee's Room(#288Rn)
This is my room. A light hangs from the ceiling and a carpet covers the floor.
A couch with a low table sit against one wall. A television sits across the
room from the couch.
Obvious exits:
Futuristic Worlds

<101> Grinna says, "That desc is pretty basic isn't it? :) But what you want
when you write a desc for your room is something that conveys the atmosphere
of the room.. You want colors and textures and lighting.. Just like setting a
stage. :)"
<101> Grinna says, "So has anyone out there have a suggestions for how to make
this basic desc better?"
<101> Grinna says, "I would for example write: This is Grinna's room. A lamp
hangs from the ceiling covered with a blue flowered, white globe. A dark
blue, overstuffed couch is aligned along the west wall A low, long, oak
coffee table sits within easy reach in front of the couch. Across the light
blue carpetted floor sits a small television set upon a dark oak tv stand."
<101> Grinna says, "This desc could also be improved even more by adding
windows, curtains, extra lamps and tables, chairs, bookcases, etc. You could
describe it as facing the rising sun. Or it could be without a window at all
and therefore dark except for the single light hanging from the ceiling."
<101> Grinna says, "One word of caution tho. It is quite possible to get
carried away with your descriptions. It's been my experience that most MUSH
ppl will really only read a desc of 15 lines or less."
<101> Grinna says, "Also for those ppl that use telnet, long descs are almost
impossible for them to read."
<101> Grinna says, "Any questions?"

<101> Gyles nopes.

<101> Mee says, "Nope."

<101> Grinna says, "Okay, Now for those pesky exits you own."

<101> Trispis says, "I'm using TF and have often used telnet... anything over
8 lines can get pushed off screen if it's very active on the MUSH (channels,
pages, rp, etc.)"

<101> Grinna says, "I stand corrected. :)"

<101> Trispis will read 12 (if it's not busy)... anything longer, I won't even
read one line.

<101> Mee says, "But many mushes have +view, or something similar."

<101> Trispis nods. +view is a good place to put extra details. (:
<101> Trispis says, "As that's a global, though, we shouldn't discuss it too
much."

<101> Grinna says, "That's correct.. and +view can be used to add a lot to
your descs. But T is right, I was not going to cover that at this time. :)"

<101> Grinna says, "Now back to those exits. :) They need descriptions too. It
is very good building policy to give all your exits a description. Exit
descriptions /can/ at times be even longer than a room description. Consider
describing an exit that leads into a Castle or a Mansion."
<101> Grinna says, "You would want to use the exit description to describe the
entire OUTSIDE of the Castle or Mansion. Not just the doorway leading into
the Abode."
<101> Grinna says, "Your description in this case doesn't need to be quite so
detailed as that.. however you can describe the door or lack of one.. plus the
wall it is set in."
<101> Grinna says, "Example would be @desc <exit dbref>=Set in the northern
wall of Grinna's Room this plain oak door awaits to lead you out to the
Building Lab."

Futuristic Worlds;FU;Out;o/DESCRIBE - Set.

<101> Grinna says, "Here again this description can be built upon and
expanded.. What is on the wall next to the door? What kind of doorknob is on
the door itself? It the door painted.. and if so what color? Is there a
window next to the door.. is the door sitting in the light or dark.. All
manner of things may be described in your exit description."
<101> Grinna says, "Okay, everyone.. take a few minutes to desc your rooms and
exits.. and then take a 5 minute break... which means a 10 minute break for
me. :) Let me know when you are done."

<101> Mee says, "Ok." And busies himself.

<101> Grinna returns.
<101> Grinna says, "Everybody satisfied with their descriptions? If not see
me after class and I'll see what we can do for you. :)"
<101> Grinna says, "And is everyone back?"
<101> Trispis is here.
<101> Mee looks. Yes. It's perfect. :)
<101> Grinna says, "Okay.. on to setting up your exits. The first would be
@succ. Please read help @succ"

@SUCCESS
@success <object> [=<message>]. Sets the success message for

Sets the message that is shown to someone who successfully passes
the basic lock of <object>. For things and players, this means picking
them up. For exits, this means going through the exit.

Ex.: @succ Box=You pick up the box.
@succ Door=You walk through the door.

See also: @osuccess, @asuccess

<101> Grinna says, "The @succ message is what is displayed when someone uses
the <object> successfully. The <object> in this case being your exit. The
@succ message is displayed only to the user of the object. No one else sees
this message."
<101> Grinna says, "A basic @succ message would be entered as: @succ <exit
dbref>=You go out thru the plain oak door, leaving Grinna's Room."
<101> Grinna says, "This can also made more interesting by suggesting the door
close behind the person.. or instead of just go out.. You could cautiously
leave the room. Exits do NOT have to be boring if we get out our
imaginations. Alright now everyone add an @succ message to your exit."

Futuristic Worlds;FU;Out;o/SUCCESS - Set.

<101> Grinna says, "Now for the @osucc message. Please read help @osucc"

@OSUCCESS
@osuccess <object> [=<message>]

Sets the message that is shown to others whenever someone passes the
object's Basic lock. For players and things, this means picking them up.
For exits, this means going through the exit, and the osuccess message
is shown to those in the room the player has just left. This message
automatically inserts the name of the person at the beginning.

@osucc's are very useful for allowing people to follow someone around
if the name of the exit is included in the message. It is recommended
that you put @osuccs on all exits and all takeable objects.

Ex: @osucc North=heads north into the catacombs.

If the =<message> part is omitted, the message will be reset.

See also: take, @success, @asuccess, @lock, FAILURE

<101> Grinna says, "Note that for the osuccess message it is prefixed by the
player's name. This means that osuccess will Automatically add the person's
name in front of whatever message you add after the equal sign."
<101> Grinna says, "The osuccess message is what everyone in the room will see
EXCEPT the player using the exit. The osuccess message lets everyone in the
room you are LEAVING know where the player has gone. This is important if you
have a group of people traveling together or are leading another person around
a place."
<101> Grinna says, "Here is a simple example of @osucc...

@osucc <exit name>=opens the plain oak door and heads out to the Building Lab.


Notice that I did NOT put a name or YOU or %N at the beginning of the message,
because @osucc will add the name of the person using the exit for you."

<101> Grinna says, "Add you @osucc message now.."

Futuristic Worlds;FU;Out;o/OSUCCESS - Set.

<101> Grinna says, "Now we will do the tricky message.. @odrop. Please read
help @odrop"

@ODROP
@odrop <object> [=<message>]

This sets the message that will be shown to others whenever anyone drops
<object>. The name of the person dropping the object will be added to the
beginning of the message automatically.

If the =<message> part is omitted, the message will be reset.

See also: drop, @drop, @adrop

<101> Grinna says, "As you can see the @odrop also adds the persons name to
the beginning of the message.. However.. @odrop displays a message to anyone
in the room you are ENTERING. Once again.. the person using the exit will NOT
see this message. Odrops are important as they allow other characters to know
WHERE you are coming from."

<101> Trispis says, "Which exit do we put this on?"

<101> Grinna says, "A simple odrop message would be: @odrop <exit dbref>=comes
into the Building Lab from Grinna's Room. A way to make this better would be
@odrop <exit dbref>=comes into the Building Room from Grinna's Room, closing
the door behind %o."
<101> Grinna says, "All exits need it."

<101> Trispis says, "I mean..."
<101> Trispis says, "If I'm in the room I dug... and put it on the exit going
out to the labs... which direction does it effect? going to the labs or going
to here?"

<101> Grinna says, "In that case, it affects going to the labs."

<101> Trispis nods. Okay. (:

<101> Grinna says, "Always from the room you are in to the room you are going
thru the exit to."

<101> Trispis says, "So it shows the message in the labs, then?"

<101> Grinna says, "Right. :)"

<101> Trispis cools. Got it.

<101> Mee says, "How do I see the messages I set?"

<101> Grinna says, "You won't."

<101> Trispis says, "You can examine them, Mee."

<101> Grinna says, "When you are new at writing your @succ, @osucc, and
@odrops it is helpful to have another person there to walk thru the exit in
front of you and then watch as you enter the next room. Just to make sure you
have the exits exactly the way you would like."

<101> Mee says, "Cool. :)"

<101> Grinna says, "Okay add your @odrop to your exit now. NOTE: Be sure and
do BOTH exits. :)"

<101> Gyles likes to drop ears in each room.

<101> Grinna says, "Ears?"

<101> Trispis says, "Like a puppet?"
<101> Trispis has had trouble with puppets not showing his messages.

<101> Grinna says, "Same here."

<101> Gyles says, "Set an object monitor, and give it a monitor attribute of *
that @pemits you exactly what it just heard. Puppets auto-filter out stuff
too much."

<101> Trispis says, "Ah."

<101> Grinna nods. "Okay add your @odrop to your exit now. NOTE: Be sure to
add all the above messages to BOTH exits." :)

Futuristic Worlds;FU;Out;o/ODROP - Set.

Futuristic Worlds;FU;Out;o(#286E)
Type: Exit Flags:
Set in the northern wall of Mee's Room this plain oak door awaits to lead you
out to the Building Lab.
Owner: Mee Zone: *NOTHING* Ducats: 0
Parent: *NOTHING*
Powers:
Warnings checked: none
Created: Sun May 31 14:44:46 1998
Last Modification: Sun May 31 15:26:09 1998
ODROP [#554$]: comes into the Building Lab from Mee's Room.
OSUCCESS [#554$]: opens the plain oak door and heads out to the Building Lab.
SUCCESS [#554$]: You go out thru the plain oak door, leaving Mee's Room.
Source: Mee's Room(#288Rn)
Destination: Futuristic Worlds(#974RLnJ)

You go out thru the plain oak door, leaving Mee's Room.
Futuristic Worlds(#974RLnJ)
This is where you may build portions of a (or an entire) futuristic world(s)
before getting your idea attached to the RP/IC areas.
Obvious exits:
Mee's Room, jack in, and Out <O>

Warning 'exit-msgs' for Arctic Realm <AR>;Arctic Realm;AR(#290Eh):
possibly unlocked exit missing succ/osucc/odrop

^-- NOTE: Even more warnings. Aaahhh! ;)
[NOTE from Trispis: Once Mee completes all of his succ/osucc/odrop
messages, this warning message will stop.]

Mee's Room <MR>;Mee's Room;MR/ODROP - Set.
Mee's Room <MR>;Mee's Room;MR/OSUCCESS - Set.
Mee's Room <MR>;Mee's Room;MR/SUCCESS - Set.

<101> Grinna says, "Now comes the time when you can add (or not) a lock to
your exit. Please read help @lock"

@LOCK
@lock[/<switch>] <object>=<key>

This command "locks" the object, specifying (by the key) who or what can
do certain things with the object. There are many different types of locks,
all of which are described in "help locktypes" and which are designated by
the switch. The "basic" lock determines, for players and objects, who can
pick them up. For exits, it determines who can go through the exit.
All other locks can be set the same way as the basic lock.

Whenever you "pass" the basic lock, you succeed in doing something with
the object. This triggers the @success/@osuccess/@asuccess
messages and actions. If you fail to pass the basic lock, you trigger
the @failure/@ofailure/@afailure messages and actions. Other locktypes
may also have such success/failure messages.

You can specify <object> and <key> as either the name of an object in
the immediate area, a DBREF number, "me", or "here".

(continued in help @lock2)

@LOCK2
You can lock an object in several different ways. The simplest lock is to
lock it to one other thing:

@lock My Toy = = me

This locks the object "My Toy" to you and you alone. It is recommended
that you @lock me == me in order to prevent anyone else from picking
you up. The two = signs are NOT a typo!

You can lock an object -against- one other object as well, using the '!'
symbol:

@lock Shared Toy = !Vector Sigma

This locks the object "Shared Toy" to everyone -except- Vector Sigma.
Everyone except Vector will be able to pick up the object.

(continued in help @lock3)

<101> Grinna says, "For today..we will concentrate on using a simple lock for
your exit...One that will allow only you or yourself and a list of friends to
use your exit. :)"
<101> Grinna says, "The example here shows the simplest way to lock an exit or
an object. For our use it would be

@lock[/<switch>] <object>=<key>
"

<101> Grinna says, "For this class we will not discuss the switch. Which
makes the basic command for our purposes: @lock <object>=<key>"

<101> Grinna says, "<key> can be anything. It can be a flag, an object carried
about or (for our purposes) a name. A simple lock is:

@lock <exit dbref>=me

To extend this, and allow your friends access to your room you can add names.
For example:

@lock <exit dbref>=me|*Grinna|*Halatir|*Trispis

You may continue adding or removing names in this manner as you see fit. Just
remember the (*) before the name and to separate the names with (|)."

[NOTE from Trispis: The asterisk (*) is used before player names to tell the
server it is looking for an object of type PLAYER, which may be anywhere on
the MUSH, and thus, not a non-player object in the same room.]

<101> Grinna says, "Okay try locking your door now. :) Oh.. lock the one from
the Building lab to your room.. you don't want to lock ppl IN your room."

<101> Mee says, "Why not? ;)"

<101> Grinna says, "Well.. I suppose if you DO want ppl locked in your room..
that's your problem. ;)"
<101> Grinna says, "Usually tho.. ppl want to lock others out..for privacy's
sake."

Futuristic Worlds(#974RLnJ)
This is where you may build portions of a (or an entire) futuristic world(s)
before getting your idea attached to the RP/IC areas.
Obvious exits:
Mee's Room <MR>, jack in, and Out <O>

<101> Grinna says, "Now that you have a locked door (you can experiment with
other types of locks on your own)... you will need to include @fail and @ofail
to your exit. Please read help @fail."

@lock MR==me

Locked.

Mee's Room <MR>;Mee's Room;MR(#290Eh)
Type: Exit Flags: HALT
^--- NOTE: Remove this flag if you've discussed the @set exit=!halt.
Owner: Mee Zone: *NOTHING* Ducats: 0
Parent: *NOTHING*
Basic Lock: =Mee(#554PenAC)
Powers:
Warnings checked: none
Created: Sun May 31 14:36:38 1998
Last Modification: Sun May 31 15:37:39 1998
SUCCESS [#554$]: You go thru the plain oak door, entering Mee's Room.
OSUCCESS [#554$]: opens the plain oak door and heads out to Mee's room.
ODROP [#554$]: comes into the room from the Building Lab.
Source: Futuristic Worlds(#974RLnJ)
Destination: Mee's Room(#288Rn)

You go thru the plain oak door, entering Mee's Room.
^-- NOTE: Why does it work? It's set HALT. Hmm. Perhaps it's a recent patch
change.

Mee's Room(#288Rn)
This is my room. A light hangs from the ceiling and a carpet covers the floor.
A couch with a low table sit against one wall. A television sits across the
room from the couch.
Obvious exits:
Futuristic Worlds

<101> Grinna says, "@fail is like @succ in that it is displayed only to the
person trying to use the object...in this case the exit."

You go out thru the plain oak door, leaving Mee's Room.
Futuristic Worlds(#974RLnJ)
This is where you may build portions of a (or an entire) futuristic world(s)
before getting your idea attached to the RP/IC areas.
Obvious exits:
Mee's Room <MR>, jack in, and Out <O>
<101> Grinna says, "A very simple @fail message would be:

@fail <Exit dbref>=You can't go that way.

However that is so simple, lets see what else we can come up with. Something
along the lines of

@fail <exit dbref>=You might try unlocking the door first!
"
<101> Grinna says, "Alright.. everyone add an @fail message to their exit."

Mee's Room <MR>;Mee's Room;MR/FAILURE - Set.

<101> Grinna says, "Now for the last exit message for today. @ofail... Please
read help @ofail."

@FAILURE
@failure <object> [=<message>]

Sets the message shown to someone who fails to pass the object's
basic @lock. For a thing or player, this would be when someone tries
to pick the object up and fails. For an exit, this occurs when someone
tries to go through the exit and fails.

If [=<message>] is omitted, any currently set message will be reset.

Can be abbreviated @fail. It is recommended that you put an @fail message
on any locked object.

See also: FAILURE, @ofailure, @afailure

@OFAILURE
@ofailure <object> [=<message>]

This sets the message that will be show to others whenever anyone
fails to pass <object>'s basic lock. For players and things, this means
failing to pick them up. For exits, this means failing to go through
the exit. It automatically prefixes the name of the player.

Example:
@ofail Locked Door=tries to open the door, but it seems to be locked.

If the =<message> part is omitted, the message will be reset.

See also: FAILURE, @lock, @failure, @afailure

<101> Grinna says, "@ofail displays a message to the room in general, letting
everyone else know that you cannot go thru that exit."
<101> Grinna says, "One example would be @ofail <exit dbref>=tries to leave
for the <Room Name>, but the door is locked!"
<101> Grinna says, "Now, please add an @ofail message to your locked exit."

Mee's Room <MR>;Mee's Room;MR(#290Eh)
Type: Exit Flags: HALT
Owner: Mee Zone: *NOTHING* Ducats: 0
Parent: *NOTHING*
Basic Lock: =Mee(#554PenAC)
Powers:
Warnings checked: none
Created: Sun May 31 14:36:38 1998
Last Modification: Sun May 31 15:45:15 1998
OFAILURE [#554$]: tries to leave for Mee's room, but the door is locked!
FAILURE [#554$]: You might try unlocking the door first!
SUCCESS [#554$]: You go thru the plain oak door, entering Mee's Room.
OSUCCESS [#554$]: opens the plain oak door and heads out to Mee's room.
ODROP [#554$]: comes into the room from the Building Lab.
Source: Futuristic Worlds(#974RLnJ)
Destination: Mee's Room(#288Rn)

<101> Grinna says, "Now , I would like to go back to the original and
/preferred/ method of digging out a room and exits before we adjourn class
today."

<101> Trispis says, "That's that huge command you gave us, right?"

<101> Grinna says, "A reminder the full @dig command goes like this:

@dig <room name>=<exit name to room>;<alias>,<exit out name>;<alias>
"

<101> Grinna says, "That's the one. :)"

You go thru the plain oak door, entering Mee's Room.
Mee's Room(#288Rn)
This is my room. A light hangs from the ceiling and a carpet covers the floor.
A couch with a low table sit against one wall. A television sits across the
room from the couch.
Obvious exits:
Futuristic Worlds

<101> Grinna says, "Be sure not to confuse the (;) with the (,) here..
otherwise you'll have some strange exits.. that may not even work properly."
<101> Grinna says, "Okay everyone @dig another room with an exit in and an
exit back. Let me know when you are finished."

<101> Trispis recommends doing this next dig starting from the room you just
dug.
<101> Grinna says, "Yes.. otherwise it won't work. :)"

@dig Kitchen=Kitchen;K,Out;o

Kitchen created with room number 282.
Opened.
Trying to link...
Linked.
Opened.
Trying to link...
Linked.

Mee's Room(#288Rn)
This is my room. A light hangs from the ceiling and a carpet covers the floor.
A couch with a low table sit against one wall. A television sits across the
room from the couch.
Obvious exits:
Kitchen and Futuristic Worlds

<101> Grinna says, "Remember you need to own the room you dig from or the exit
to the next room will not link."

Kitchen(#282Rn)
Obvious exits:
Out

<101> Grinna says, "Now.. I'll leave you to add descs, @succ, @osucc, @odrop
to your room, and exits. And class is officially over, except for
discussion/questions."

[NOTE from Trispis: Below is code for a set of Gyles' Ears Objects for
listening to exit messages during building.]

@create ear1

@set ear1 = MONITOR

&M1 ear1=^*:@pemit owner(me)=[name(me)] in [name(loc(me))] heard: %0

ear1(#284CVnM)
Type: Thing Flags: CHOWN_OK VISUAL NO_COMMAND MONITOR
Owner: Gyles Zone: *NOTHING* Ducats: 1
Parent: *NOTHING*
Powers:
Warnings checked: none
Created: Sun May 31 15:31:53 1998
Last Modification: Sun May 31 15:31:53 1998
M1 [#470]: ^*:@pemit owner(me)=[name(me)] in [name(loc(me))] heard: %0
Home: Omphalos Park(#0RtJN)
Location: Gyles

<101> Mee says, "Neat. :)"

<101> Grinna says, "Very nice."

<101> Trispis cools.

<101> Gyles says, "You need two, one in each room."

Trispis pages (Grinna Halatir Mee): Gyles said it's okay to include that in
the log (the object and its code).