ConnectThe Universe

Claim Building on CrystalMUSH: Room Guidelines

The &local_desc of the room should be a description of the actual room; if you want to include information about where the exits are, these should be put in the room's @succ message. Descriptions should be at least four lines long, and the more detailed, the better (within reason). Try to keep the combination of the &basic_desc, &local_desc, and @succ for any room to under one page on the average MUSH or telnet client - preferably under 18 lines. If you have a problem entering the full description (i.e., the buffer on your telnet program is limited to 255 characters), you can use the @edit command. Refer to Finishing Up for more information.

The terrain will probably be rugged -- we're talking about the ranges here! Concentrate on the details of the landscape. Try to help the player feel like they are actually there, with their character. You can embed code in the local description of your rooms (and in the basic description on the master claim object) that will change part of the description according to the time of day, seasons or tides. Refer to "Time of Day", "Seasons", and "Ocean Claims and the Tide Master", below.

If you are coding a cave or other underground room, you might want to lock the room to a lamp so people can't see anything unless they have the proper equipment. Refer to "Dark Rooms: Locking a Room to the Katz Lamp", below.

If your claim has traps on any of its exits, it's nice to give the Singer some kind of warning that the area they are in appears particularly treacherous, although this can be done in the exit's @desc (refer to the Exit Guidelines).

Hints about the location of crystal should be subtle, but ideally will grow stronger in rooms near the vein. The vein room description should not explicitly refer to the crystal. All you need to do for the vein is build a room that will contain it; the vein itself is planted later as an object in the room. The size and colour of the vein are determined when a Singer first looks at the vein (based on the Singer's colour affinities and a certain amount of random chance), and change each time the claim is reset and another Singer finds it.

The master claim object already has code set up to handle the Singer's paint mark. The contents of [u(paint_string)] will appear tacked on to the end of the &local_desc for each room. You don't have to add any additional code.


A list of the dbrefs of all of the rooms in your claim should be included on your master claim object in the &room-list attribute, and the rooms containing the vein and the landing site should be listed in the &vein_site and &landing_site attributes. Refer to "Registers to Include on your Master Claim Object" in Getting Started.

Finally, all of your rooms (and exits) should pass +check and +spell. Refer to Finishing Up for more information on how to use these tools.

 

Time of Day

One thing you can do to make your claim more interesting is to have part of the description of any room or part of the basic description of the area change with the time of day. You can do this by using variables that look up the current time of day (stored on #4) in the &local_desc of a room or the &basic_desc on your master claim object. If you have @parented the room and master claim object correctly they already inherit from #4, so the time of day is available to each of your rooms.

The code to include the time of day description is:

[v([v(time_of_day)]_desc)]


You can use this code anywhere in &local_desc of a room or in the &basic_desc of the master claim object. The following code example uses the description for the time of day at the end of the local room description:

&local_desc <room> = The arroyo widens here from an extremely narrow gap to a gorge barely wide enough to land a sled in. Steep escarpments to the north and south reach up a good 40 or 50 metres, and when you look up you can see only a jagged sliver of sky. No trace remains of the river that carved this fissure in the planet's surface; the floor of the gully is barren and dusty. [v([v(time_of_day)]_desc)]


Once you have added the code to the &local_desc, set up the actual time of day description attributes on the room (or the master claim object, if you have added the code to the &basic_desc). [v(time_of_day)] returns "morning", "afternoon", "evening", or "night", depending on what time it is on the MUSH. So the time of day description attributes for the room will be &morning_desc, &afternoon_desc, &evening_desc and &night_desc:

&morning_desc <room> = A yellow glow creeps slowly down the sides of the cliffs, the morning air already warm and promising another scorching day.

&afternoon_desc <room> = The afternoon sun is high in the sky, leaving you nearly as parched as the ground itself.

&evening_desc <room> = With the evening sun going down, the gorge is already bathed in shadows. It is rapidly becoming difficult to see.

&night_desc <room> = The night air is inky black and thick, and you're not sure whether you shiver from the dark or the chilly temperature.

 

Seasons

As with the time of day, you can have part of the description of any room or part of the basic description of the area change with the season on Ballybran. The code to include the season description attribute is:

[v([season(ballybran)]_desc)]


You can use this code anywhere in &local_desc of a room or in the &basic_desc of the master claim object. The following code example uses both the season and time of day descriptions, at the end of the local room description:

&local_desc <room> = High up on the plateau, you see low, rolling hills wherever you look, with huge outcroppings of the underlying granite. [v([season(ballybran)]_desc)] [v([v(time_of_day)]_desc)]


Once you have added the code to the &local_desc, set up the actual season description attributes on the room (or the master claim object, if you have added the code to the &basic_desc). [season(ballybran)] returns "spring", "summer", "fall" or "winter", so the season attributes for the room will be &spring_desc, &summer_desc, &fall_desc, and &winter_desc:

&spring_desc <room> = The peaks around you are still blanketed in snow, but small patches of green are beginning to appear here and there on the plateau. Off to the north, beyond a shallow, treed valley, more and more of a massive, black granite cliff face is becoming exposed as the snow melts.

&summer_desc <room> = The snow has melted from all but the highest peaks, and the plateau around you is covered with wildflowers and scrubby grasses. Off to the north, beyond a shallow, treed valley, a massive, black granite cliff face stands guard over all, fearsome and majestic.

&fall_desc <room> = Snow is falling already in the higher peaks, and only small patches of green remain in the dead grass and flowers on the plateau. Off to the north, beyond a shallow, treed valley, lies a massive, black granite cliff face, cold and majestic.

&winter_desc <room> = The peaks around you are covered in snow, and even the plateau is blanketed in fluffy whiteness. Off to the north, beyond a shallow, treed valley, part of a granite cliff face lies exposed to the skies - a giant, black scar on the white mountainside.

 

Ocean Claims and the Tide Master

If your claim is on a coast, you might want to set up part of the description of a room or part of the basic description of the area to change with the crazy Ballybran tides. The easiest method is to insert the code:

[u(#7747/desc)]

in the &local_desc of your room, or in the &basic_desc of your master claim object, where you want the description of the tide to appear. This will insert the default description from the Master Tidal Descing Object (#7747) into your local or basic description.


The more difficult method is far more interesting and allows you to set up your own descriptions. It reads the tide level off of Lequoal's Tide Master (#3527). The code to use the tidal descriptions is:

[v([u(#3527/tide_level)]_desc)]


You can use this code anywhere in &local_desc of a room or in the &basic_desc of the master claim object. The following code example uses both the tide level and time of day descriptions, in the middle of the local room description:

&local_desc <room> = Somehow, over time, the cliffs have formed a protective bay here, with a small, quiet beach. [v([v(time_of_day)]_desc)] [v([u(#3527/tide_level)]_desc)] The sea stretches off into the horizon in the east, and the high, ragged rock face surrounds you in all other directions.


Once you have added the code to the &local_desc, set up the actual tide level description attributes on the room (or the master claim object, if you have added the code to the &basic_desc). [u(#3527/tide_level)] returns "high", "medium", or "low", so the tide level attributes for the room will be &high_desc, &medium_desc and &low_desc:

&high_desc <room> = The tide is high, but doesn't begin to reach the runners of your sled.

&medium_desc <room> = The tide laps halfway down the beach, neither high nor low, and doesn't seem to threaten you in any way.

&low_desc <room> = The tide has gone out, leaving treasures from the ocean floor scattered in its wake.


If you want to be even more specific, you can also obtain the direction of the tide. [u(#3527/tide_direc)] returns "in" or "out". Combine the tide direction with the level in the statement [v([u(#3527/tide_level)]_[u(#3527/tide_direc)]_desc)], and add this to your &basic_desc or &local_desc. Your description attributes will then become &high_in_desc, &high_out_desc, &medium_in_desc, &medium_out_desc, &low_in_desc, and &low_out_desc.

 

Dark Rooms: Locking a Room to the Katz Lamp

Rhianna has coded a Katz lamp that can be purchased from the vendor in the Equipment Room just off the Hangar at JPF. You can lock a room to the lamp so that someone entering the room can't see anything unless they have the lamp and it is turned on. This is handy for caves and other dark places.

To set up a dark room, first set the @desc of the room to "%b". This prevents the normal basic and local descriptions from being shown:

@desc <room> = %b


Now, lock the room to the lamp master (#3987):

@lock <room> = @#3987 & +status:active


The +status:active means that it's not enough for someone to have the lamp in their inventory, it must also be turned on.


Even though the room is locked to the lamp, any exits in the room will still appear in the Obvious exits list for the room. If you do not want the player to be able to see exits, you will have to set either the room or the exits dark:

@set <room> = dark

OR

@set <exit> = dark


The room must now be set up with @succ and @fail attributes, which will be the descriptions that are seen (depending on whether the character has an active lamp or not). The @succ attribute is the description that someone with a lamp, who has turned the lamp on, will see. The @fail attribute is the description that someone who does not have a lamp, or who has one but has not turned it on, will see.

Although you wouldn't normally include exit information in the description, if you have set the exits dark it is a good idea to tell the player how to get back out (in the @fail attribute), or what the other exits in the room are (in the @succ attribute). For example:

@succ <room> = After what seems like an eternity, you reach the end of the cavern. The ceiling is lower here, and your light reflects a sheen of fresh water bouncing and dribbling down the back wall. The walls seem more jagged, sharper, than at the entrance, except where the water has worn them smooth. The merry sound of the water eases your jangled nerves, and its coolness is welcome. The only exit is back towards the south.

@fail <room> = You feel as though the darkness has swallowed you and there is no escape. Far to the south, you think you glimpse a faint glow of light. But it could be your eyes playing tricks on you.


If you want the crystal vein to be set in a dark room, put at least one other dark room ahead of it. Anyone entering the vein room will be immediately be notified that there is crystal by the room's @aenter, and doesn't need a lamp to enter the vein, so the darkness won't hide anything. If you have a dark room before the vein room, you can set the exit dark so that the Singer will need a lamp to see where it is.

Alternatively, you could lock the exit to the vein room so that no one will be able to pass through the exit unless they have a Katz lamp that is turned on. Refer to "Locking an Exit to an Object" in Exit Guidelines.


Remember to mention the dark room in the &note attribute of your master claim object. Refer to "Registers to Include on your Master Claim Object" in Getting Started.

Next step: Exit Guidelines »