[CODE] [NEWBIE] Guild system

From: Drago's (creed@I-55.COM)
Date: 11/24/97


I am trying to get guilds to actually work (by this I mean they check and
see if the character is in a guild and if it's their class's guild when they
type "gain").  Everything compiles ok, but it will not recognize ANY room as
any guild type.  I have been screwing with this for a day now and I think
I'm gonna need some help.  I have listed all the stuff I have changed (it's
kinda long):


**structs.h**
struct new_guild_info {
   int room;
   int class;
  }

**class.c**
struct new_guild_info guilds[] = {
  {330, CLASS_THIEF},
  {340, CLASS_WARRIOR},
  {-1, -1}
 };

**spec_procs.c**
SPECIAL(guild)
{
  int i, found, (practice vars and whatnot);

  if(IS_NPC(ch))
    return 0;
  else if(!CMD_IS("gain") && !CMD_IS("practice"))
    return 0;
  else
    continue;
i = 0;
while(guilds[i].class != -1) {
   if (GET_CLASS(ch) == guilds[i].class && world[ch->in_room].number ==
guilds[i].room)
     found = TRUE;
   else
     found = FALSE;
   }

if (!found) {
   send_to_char("You can't do that here.\r\n", ch);
   return 0;
   }
else if (found)
   continue;

if(CMD_IS("practice") {
  (INSERT ALREADY EXISTING PRACTICE STUFF THEY HAD)
}

if(CMD_IS("gain") {
   if(GET_LEVEL(ch) >= (LVL_IMMORT - 1)) {
      send_to_char("You are at your highest mortal level!\r\n", ch);
      return 0;
     }
   else if(GET_LEVEL(ch) < (LVL_IMMORT - 1)) {
     GET_LEVEL(ch) += 1;
     advance_level(ch);
     send_to_char("You rise a level!\r\n", ch);
     return 1;
    }
  }
}

That's it (from memory).  Any idea to what may be wrong?  Oh yeah, I added
the gain command to act.other.c and interpreter.c in the right spots.

Thanks,
Chuck Reed


     +------------------------------------------------------------+
     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
     +------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/08/00 PST