INFO
	board - information on the std board system

DESCRIPTION
	This file contains a very short description of the /std/boards and the
	system around them.

	First some simple rules on what is allowed and what is not:
	1. It is not allowed to create a postoffice that is accessible
	   by mortals (other than the one that exist in the village).

	   If you prefer to read boards with a reader that does not
	   support reading from afar you might like to make a room
	   that is not accessible by mortals a postoffice (e.g.
	   your workroom). This is done easilly (assuming your
	   workroom supports propertys), just add the line
	   add_property("postoffice");
	   in reset-function in your workroom.

	2. If you want a private board in your workroom have a look
	   in the file /std/board/examples/private_board.c

	3. If you want a board for another reason e.g. for a club
	   or guild or something have a look at files in
	   /std/board/*board.c and /std/board/examples/*.c

	4. If your not satisfied with the boardreader you have do
	   on of the following:
	   * Try to change to another boardreader located in
	     /std/board/reader/
	     Currently there are three readers available.

	   * If it is just a minor change send a mail to Rohan
	     and ask if it can be inserted in the reader you currently use.

	   * Write a reader of your own that works exactly the way you want.
	     You probably want to inherit /std/board/reader/reader_inherit.c
	     what you are NOT allowed to do it to make a copy of an existing
	     boardreader and change a little code in it.
	     The reason this is forbidden is the following:
	     1. This will make more almost identical readers loaded
	        in memory, thus consuming unnessecary memory.
	     2. It will be harder to maintain the readers.
	     3. It will be almost identical to the existing readers.
	     4. Admin will not be happy when you waste CPU, memory
	        and work in ways that creates unnessecary bugs.
	     5. Be brave and use "patch" from the shell to do everything
	        (for brave people that don't want fancy GUI's).
        
	     If you really want to use patch or code a reader on your own
	     and don't have access to /admin you probably want to talk to
	     Rohan to get the design specifications. Beware, the design
	     is written in Swedish only.

	     It might also be possible to inherit (NOT copy) another reader,
	     if you want to do this _always_ talk to Rohan first since the
	     readers are not intended to be used for futher inheritance.

	     Currently most readers do use this techniques (since the coders
	     was to lazy to code their own reader from reader_inherit).
	     The reader that use this now is: standard.c and lyskom.c

	    /Rohan


	Coding tricks:
	If you are about to add/change commands from advanced reader you
	should look at the following functions:
	overloadable_reader_help(string)
	overloadable_check_commandloop(string, string)
        _signal_short(object) // reader can redefine how short for should
          look like for the player. The object is the board_object.
	_signal_callback_long(object)  // same as callback_short but for long.

	Example of cool tricks made by various wizards with the boards:
	// A redefinition of short function to show number of unread notes.
	// Example from knights guilds
	get_short() {
	// This prolly deserves the price for ugliest hack, but anyway
	   int unread;
	   object reader;
	   mixed ge;

	   reader = present("konfreader", this_player());
	   if(reader)
	      reader -> __exit();
	   ge = this_player() -> getenv("BOARDS");
	   if(ge && mappingp(ge)) {
	      ge = ge[query_name()];
	      if(ge) {
	         ge=ge["read"];
	         if(ge)
	           return "The Guild Head board, containing "+
	                  sizeof(m_indices(note_headers))+
	          " notes, "+sizeof(unread_notes(ge))+" unread";
	      }
	   }
	   return "The Guild Head board, containing "+
	     sizeof(m_indices(note_headers))+" notes";
	}


Help topics available:
board.doc box.doc door.doc hidden_door.doc lib.doc
remote sequence.doc simple_armour.doc simple_container.doc simple_weapon.doc

[START|BACK ]




[ NannyMuds main page | FAQ | Contact us ]

You are guest number 162 since November 2019.
This file was last modified: June 2000.