|
CHAPTER 1
Extra Actions:
Sometimes players should not only be able to examine objects but
perform actions on them. For example, per convention signs should be
readable (AND should be "examinable").
Actions can be given to the player using the init function. It's called
whenever a player enters the room (to be exact: whenever a living object
"gets in contact" with another object). Add a sign to your long desc and
a room item for the sign via set_items and add the following code to the
end of your file:
extra_init() {
add_action("read", "read");
}
/* You also can do it this way - without the "//" but you have to call the
* original init function via '::init()'!
//init() {
// ::init(); // This calls init in the room code to enable exits
// add_action("read", "read");
//}
* By using extra_init() the original init is called automatically!
*/
read(str) {
if (valid_id(str) != "sign") return 0; // getting the "right" sign!
if (this_player()->test_dark()) return 1; // reading in darkness? NO ;)
say(this_player()->query_name()+" reads the sign.\n");
long(str); // simply take the room item :-) you should have set it :-)
return 1;
}
This shows the use of init in room2 rooms. The exact working of all the
functions above is explained on another place.
Perspectives: An easy to use 'read' add_action is planned like the
READ_CMD feature of EXTD_ROOM, but without EXTD_ROOM. For EXTD_ROOM see
page 18 or https://nemesis.de/lpc/doc/room2/page18 and for READ_CMD see
page 21 or https://nemesis.de/lpc/doc/room2/page21 .
And about signs, signpost and other readable things:
Please have a look at the note "Re: Read or Look at Signs??" (Kiri, Jun
12 2016) on the complaints board in the sheriff's office in the village
('goto /room/sheriff/office2') or https://nemesis.de/lpc/board/4 .
Changed/modified/modernised by Kiri in August 2016.
See also: |
|