A
          / \      _             Play Now                         Nemesis on fb
          | |     | |  _______   _        _   _______    _______   _    _______
          | |\    | | |   ____| |  \    /  | |   ____|  /   ____| | |  /   ____|
 /-------/-------------------------------------------------------------------,
O= Home <=XX|  About  News  Pics  Adventurers  Wizards  Download  Connect     >
 \-------\-------------------------------------------------------------------'
          | |   \   | |  |____  | |      | | |  |____   ___ \  \  | |  ___ \  \
          | |     \_| |_______| |_|      |_| |_______| |_______/  |_| |_______/
          \ /
           V  

Nemesis bulletin boards: Documentation bulletin board, note 3

building guilds (Lynx, Sep 19 1991, 28)
The new guild system, done by lynx and junky.

Don't panic. Most of the guild system is already done! There is a generic
Guild object, /obj/guild, ready to inherit. All you have to do is produce
the 'soul' for your guild, with all those fancy skills your students will
have to learn and practice, and a few other things...
Wanna make your own guild now?

How to do a guild:
    Read 'help career' about the backgrounds.
    Talk with your admin and say what you have in project!
    If you then get a /guild/<guild-identification-code> directory,
    you can do this:

The master.c (main object for the guild):
a)	inherit "obj/guild".
	This automatically includes an inherit of "obj/room".
b)	#include "guild.h"
c)	#define NO_INHERIT, then #include "room.h" or "loc.h"
	and setup your exits the usual way.
d)	make an extra_reset function, that calls get_id() and
	clones your guild's bulletin board (Each guild has its own board).
e)	Use the explain_commands() function to show a list of commands
	available in the guild. You must stick to it since it might change
	if the guild system changes. The function can be called from an
	extra_long, or by overriding the standard long(), or by putting
	some sign in the guild that calls the function when looked at.
f)	Write a function make_title(player_object) to return a title for
	a player, using the player's level and gender data.
	Some examples:
		"the apprentice mage" -> "the powerful druid",
		"the witch" -> "the master sorceress",
		"the simple peasant" -> "the rich landlord",
		"the shop assistant" -> "the experienced merchandizer"

All the basic guild functions, advance, cost, list quests, join guild and
even banish are automatically activated by the main guild object (obj/guild),
it even takes care of checking if a person is a member of your guild or not,
and to let a character join it only once, and only when he may.

Functions you can add to your master.c:
may_join(this_player)
	Here you can decide further, if a person is worth becoming a member
	of your honourable guild! For instance you might decide to not let
	any dwarves join your magicians guild. Or whatever else.

has_joined(this_player)
	When a character has joined your guild he automatically gets
	a clone of your guild soul. If you want to do some more,
	like handing him some instructions or rules, use this function.

may_advance(this_player)
	This gets called each time a member of your guild wants to
	advance to the next level. Use this function to add further
	checking, for instance if he has practised his skills, or
	solved some special quest.

has_advanced(this_player)
	Here you can do something when he's raised his level, like
	adding new abilities, and informing him about them.

Functions you can make use of within master.c:
query_id()
	returns the identification code of your guild.
is_member()
	returns 1 if a person is member of your guild, or 0 if not,
	and tells him he's not with a write().

About the soul.c:
a)	inherit "obj/guild_item";
b)	If you have variables that need to be backup'ed for each player,
	make use of the new storage system, see 'man player_data'.
c)	Add all of your fancy special functions now! :-)

Questions?   Mail to Junky or LynX.

This board is to document how to code various stuff in Nemesis.
Within Nemesis it is located in the inner guild in the village.
If you have written documents that should be placed here or
if you think something important is missing please contact an
Archwizard - see 'help admin' or https://nemesis.de/lpc/help/admin .
Nowadays especially new features etc. are posted here.
The board contains 49 notes:
  1. living (Lynx, Sep 19 1991, 28)
  2. short descriptions (Lynx, Sep 19 1991, 28)
  3. building guilds (Lynx, Sep 19 1991, 28)
  4. Ok. prompts (Lynx, Sep 20 1991, 28)
  5. Yell command (Lynx, Sep 21 1991, 28)
  6. simulated efuns (Lynx, Sep 22 1991, 28; Kiri, Jan 28 2017, 62)
  7. Re: short descriptions -> inventory display (Lynx, Sep 24 1991, 28)
  8. ships (Junky, Sep 30 1991, 30; revised by Kiri, Jun 4 2016, 62)
  9. introducing a new quest (Lynx, Oct 8 1991, 28)
  10. storing data in the player (Lynx, Oct 8 1991, 28)
  11. setting a user-definable prompt (Snake, Jan 6 1992, 66)
  12. Test Players (Junky, Jan 9 1992, 40; revised by Kiri, Jul 27 2016, 62)
  13. the colourful magazine (Snake, Feb 13 1992, 66; Kiri, Jun 4 2016, 62)
  14. new room support: room2.h (Junky, Mar 27 1992, 55)
  15. Skills (Junky, Mar 27 1992, 55)
  16. Indent within ed. (Lynx, Jul 25 1992, 49)
  17. Re: Indent within ed. (Poe, Aug 4 1992, 41)
  18. Properties (Junky, Aug 25 1992, 55)
  19. Timedependent objects (Junky, Sep 11 1992, 55)
  20. lfun produce (Lynx, Feb 9 1993, 60)
  21. ED editor F.Y.I. (Poe, Mar 7 1993, 45)
  22. conditional operator (Poe, Aug 13 1993, 46)
  23. Indirection (Poe, Nov 23 1993, 48)
  24. lfun search for all objects (Kiri, Jun 1 2016, 62)
  25. obj/monster: set_alias & set_brave (Kiri, Jun 4 2016, 62)
  26. Re: simulated efuns (Kiri, Jun 4 2016, 62)
  27. all "dead" (non-living) objects: query_name (Kiri, Jun 7 2016, 62)
  28. obj/monster: second_life supports argument (Kiri, Jun 10 2016, 62)
  29. obj/postoffice: generic post office (Kiri, Jun 11 2016, 62)
  30. obj/living: room property P_NO_MAGIC finally! (Kiri, Jun 12 2016, 62)
  31. simul_efun: valid_id & living: find_id (Kiri, Jul 17 2016, 62)
  32. obj/sign: improved (Kiri, Jul 18 2016, 62)
  33. obj/item: the replacement of obj/treasure (Kiri, Jul 19 2016, 62)
  34. obj/text: improved (Kiri, Jul 19 2016, 62)
  35. obj/key: improved (Kiri, Jul 19 2016, 62)
  36. obj/map: ready for persistence (Kiri, Jul 19 2016, 62)
  37. obj/treasure: legacy but persistent (Kiri, Jul 26 2016, 62)
  38. obj/chest & obj/bag: improved & persistent (Kiri, Jul 27 2016, 62)
  39. wiz command: localcmd (Kiri, Aug 12 2016, 62)
  40. obj/monster: set_cap_name, query_name & a hack (Kiri, Aug 12 2016, 62)
  41. obj/door2: a new door system (Kiri, Aug 12 2016, 62)
  42. room2.h: tutorial revised / changes & fixes (Kiri, Aug 12 2016, 62)
  43. keeping track of object versions (Kiri, Aug 17 2016, 62)
  44. About Colours (Kiri, Sep 17 2016, 62)
  45. clean_up: a garbage collection! (Kiri, Dec 27 2016, 62)
  46. containers: query_put_prep (Kiri, Jun 15 2017, 62)
  47. Re: obj/board: changes (Kiri, Jun 16 2017, 62)
  48. new 'more' via obj/more (Kiri, Sep 13 2017, 62)
  49. Re: New & Changed [Wiz] Commands (Kiri, Sep 26 2017, 62)

This page was generated in LPC

Imprint / Impressum