From: dy812@cleveland.Freenet.Edu (Doug Araya)
This code is for letting clan leaders be able to guild/unguild their
members, so that immortals are not always needed to do it.
Change the level needed to use "join" in interp.c
Then in the actual join_guild, or do_join, or whatever it is add a check
if(!IS_IMMORTAL(ch) || !IS_SET(ch->act,PLR_LEADER) )
{
send_to_char("You aren't a Clan Leader.\n\r",ch);
return;
}
Then add a little check to be sure the Leader is only able to unjoin
people that belong to his/her guild.
/* for unjoining */
if(IS_SET(victim->guild,which) )
{
if(ch->guild != victim->guild )
{
send_to_char("You cannot remove players from other guilds.\n\r",ch);
return;
}
REMOVE_BIT(victim->guild,which);
send_to_char("Player has been removed from the guild.\n\r",ch);
etc...
etc..
etc...
Then just a little function to make a player a guild leader:
void do_cleader(CHAR_DATA *ch, char *argument)
{
CHAR_DATA *victim;
if(IS_NPC(ch)) return;
if(argument[0] == '\0')
{
send_to_char("Syntax: CLEADER <player name>\n\r",ch);
return;
}
if((victim == get_char_world(ch,argument)) == NULL )
{
send_to_char("They aren't logged in!\n\r",ch);
return;
}
if(IS_SET(victim->act,ACT_LEADER)
{
REMOVE_BIT(victim->act,ACT_LEADER);
send_to_char("You are no longer a clan leader.\n\r",victim);
send_to_char("Player is no longer a clan leader.\n\r",ch);
return;
}
SET_BIT(victim->act,ACT_LEADER);
send_to_char("You are now a clan leader.\n\r",victim);
send_to_char("Player flagged as a clan leader.\n\r",ch);
return;
}
Whiplash @ SOH