mud/lib/domains/examples/room/exroom2.c
2020-09-06 05:43:07 -07:00

78 lines
2.7 KiB
C

#include <lib.h>
#include "ex.h"
inherit LIB_ROOM;
int myvar;
void create()
{
::create();
SetAmbientLight(30);
SetShort( "a master file" );
SetLong(@EndText
|---------------------------------------------------------------|-------------|
This is an example room for inheriting files. This
file is inherited by two others. It's also a fully
functional room. There's a lever to pull.
The rooms which inherit me are to the east.
EndText
);
// You'll notice that for SetLong(), I've put @EndText at the top and EndText at the bottom
// and have not put in quotes. When using this style of code, it is important to make sure
// you manually enter to the next line to wrap the lines on the player's screen.
// This can be a tedious if you do not know how many lines to enter before you need to
// continue on the next line. If you look back to the Entrance to the Hall of Examples,
// You will see a handy line I've used to know when to stop a line and continue on
// the next. I've included it in the room description for your convenience. the
// normal screen default is 79 characters. Whenever you would like to recreate the line
// at the top, type 'margins'
SetExits( ([
"south" : EXPATH + "exroom1",
"north" : EXPATH + "exroom3",
"east" : EXPATH + "exroom2a"
]) );
SetItems( ([
"lever" : "A lever for pulling.",
]) );
myvar = 0;
}
// The CanReceive() function is very helpful to do checks on an interactive object
// that enters the room. In this case, we are checking to see if the object that
// enters is a creator player object. If it is, then we will give a message to
// that object with the write() funciton. I've put some color tags to set the color
// off from the rest of the text. For colors available, type 'colors'.
int CanReceive(object ob)
{
if ( creatorp(ob) )
write( "%^BOLD%^BLUE%^Room tells you: %^BOLD%^GREEN%^You're a creator! %^BOLD%^BLUE%^(This is from the master file.)%^RESET%^\n");
return 1;
}
void init()
{
::init();
add_action("aa_pull","pull");
}
// We're going to use the variable 'myvar' in the middle of a write() funciton. As
// you'll notice below, the text you are writing has to be in the " ". Then we
// separate the text by putting in: " + myvar + ". This adds the myvar variable
// to the text output whenever a player pulls the lever. Try it and see.
mixed aa_pull(string str)
{
if (str!="lever")
return notify_fail("Pull what?\n");
myvar ++;
write("You pull the lever and the value of 'myvar' is now " + myvar + "\n");
say(this_player()->GetName() + " pulls the lever!\n");
return 1;
}