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/ 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.