guildboard

obj
OBJECT
	/obj/guild/guildboard

LAST UPDATE
	Thragor, 09-May-96, 12:30 MET

SYNOPSIS
	to add the board to your guild:
	#include <rooms.h>

	AddItem("/obj/guild/guildboard",REFRESH_HOME,
	  ([P_SHORT:"The Central Player Board",
            P_LONG:"A nice board.\n",
	    "Groups":({"players.*"}), // the normal groups
	    "LevelGroups":(["players.hlp":20]),
	      // this group may be only read from level 20 on.
	    "GuildGroups":({"a.vampires"})
	      // This group may be only read by players, where the
	      // environment answers 'true = 1' on is_member(pl)
	      // so you should place this board into your
	      // guildoffice which inherits /std/guild
	  ]));

DESCRIPTION
	The problem: We now have certain groups which mustn't be
	accessed by certain players, but the /std/board only differs
	between the certain wizlevels.
	Therefore I wrote /obj/guild/guildboard which allows you to
	restrict certain groups to certain player-levels or to players
	which are member in the guild.
	As described in /std/board the groups may be specified as
	regexp.

	string *SetGroups(string|string *names)
	string *QueryGroups()
	  Slighly modified from /std/board but no real consequence for
	  those who just want to put the board in their guild.
	  All settings done with the functions below will also be done
	  to SetGroups(). So groups matching to SetGroups() and also
	  matching to e. g. SetLevelGroups() are handled as
	  'levelgroups'.

	string *SetGuildGroups(string|string *names)
	string *QueryGuildGroups()
	  Set a (some) regexp(s) for groups which may be read only by
	  guildmembers. Only players where the environment answers
	  'true' = 1 on 'is_member(player)' may read the board (so put
	  it into your room which inherits /std/guild and you don't
	  need to take care of anything else).
	  Groups set here, will also be set in 'SetGroups()', so the
	  normal board recognizes them, but when someone is trying to
	  switch to the group and is not allowed to, (s)he'll get a
	  failure-message.

	mapping SetLevelGroups(mapping names)
	mapping QueryLevelGroups()
	  Set a (some) regexp(s) for groups which may be read only by
	  players from a certain level on. The format is:
	    ([<group-regexp>:<level>])
	  Where <level> is the level from which on you might read this
	  group (including <level> itself).
	  Groups set here, will also be set in 'SetGroups()', so the
	  normal board recognizes them, but when someone is trying to
	  switch to the group and is not allowed to, (s)he'll get a
	  failure-message.

INHERITANCE TREE
	/obj/guild/guildboard
	  |
	  ` /std/board

SEE ALSO
	board(S)