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 |
You are guest number 162 since November 2019.
This file was last modified: June 2000.