/*************************************************************************** * Clan functions for EmberMUD 0.17 (and maybe later versions up until * * they were removed). I dunno if anyone else is using the old EmberMUD * * code, but what the hey, guess I'll post it and see :) * * * * The petition command uses Erwin's board system. Pretty neat, if you * * don't have it, you might wanna look at it... * * * * If you choose to use this code, please retain my name in this file and * * send me an email (dwa1844@rit.edu) saying you are using it. Suggestions * * for improvement are welcome. * ***************************************************************************/ /* * Clan accept command written by Rahl (Daniel Anderson). */ void do_accept( CHAR_DATA *ch, char *argument ) { CHAR_DATA *victim; char buf[MAX_STRING_LENGTH]; CLAN_DATA *Clan; if ( ch->pcdata->clan == 0 ) { send_to_char( "You aren't even in a clan!\n\r", ch ); return; } if ( !is_clan_leader( ch->name, clan_lookup( ch->pcdata->clan ) ) ) { send_to_char( "You aren't the clan leader!\n\r", ch ); return; } if ( argument[0] == '\0' ) { send_to_char( "Syntax: accept [character]\n\r", ch ); return; } if ( ( victim = get_char_world( ch, argument ) ) == NULL ) { send_to_char( "They aren't here.\n\r", ch ); return; } if ( victim->pcdata->clan != 0 ) { sprintf( buf, "%s is already in a clan!\n\r", victim->name ); send_to_char( buf, ch ); return; } sprintf( buf, "%d", ch->pcdata->clan ); Clan = find_clan( buf ); /* uses the do_test function to check the requirements */ sprintf( buf, "%s %s", victim->name, Clan->name ); do_test( ch, buf ); if ( clan_accept( victim, Clan->name ) != 0 ) { /* doesn't fit requirements */ return; } else { Clan->members[Clan->num_members] = strdup( victim->name ); Clan->num_members += 1; victim->pcdata->clan = ch->pcdata->clan; sprintf( buf, "You are now a member of %s.\n\r", vis_clan( ch->pcdata->clan ) ); send_to_char( buf, victim ); sprintf( buf, "%s is now a member of %s.\n\r", victim->name, vis_clan( ch->pcdata->clan ) ); log_string( buf ); send_to_char( buf, ch ); do_save( victim, "" ); do_asave( victim, "clans" ); } return; } /* * Clan disown command written by Rahl (Daniel Anderson). */ void do_disown( CHAR_DATA *ch, char *argument ) { CHAR_DATA *victim; char buf[MAX_STRING_LENGTH]; CLAN_DATA *Clan; int count, count2; if ( ch->pcdata->clan == 0 ) { send_to_char( "You aren't even in a clan!\n\r", ch ); return; } if ( !is_clan_leader( ch->name, clan_lookup( ch->pcdata->clan ) ) ) { send_to_char( "You aren't the clan leader!\n\r", ch ); return; } if ( argument[0] == '\0' ) { send_to_char( "Syntax: disown [character]\n\r", ch ); return; } if ( ( victim = get_char_world( ch, argument ) ) == NULL ) { send_to_char( "They aren't here.\n\r", ch ); return; } if ( victim->pcdata->clan != ch->pcdata->clan ) { sprintf( buf, "%s is not in %s!\n\r", victim->name, vis_clan( ch->pcdata->clan ) ); send_to_char( buf, ch ); return; } sprintf( buf, "%d", ch->pcdata->clan ); Clan = find_clan( buf ); /* remove them from the clan member list in clans.are */ for ( count = 0; count < Clan->max_members; count++ ) { if ( Clan->members[count] == victim->name ) { Clan->members[count] = Clan->members[count+1]; for ( count2 = count + 1; count2 < Clan->max_members - 1; count2++ ) { Clan->members[count2] = Clan->members[count2+1]; } } else continue; } Clan->num_members -= 1; victim->pcdata->clan = 0; sprintf( buf, "You are no longer a member of %s.\n\r", vis_clan( ch->pcdata->clan ) ); send_to_char( buf, victim ); sprintf( buf, "%s is no longer a member of %s.\n\r", victim->name, vis_clan( ch->pcdata->clan ) ); log_string( buf ); send_to_char( buf, ch ); do_save( victim, "" ); do_asave( victim, "clans" ); return; } /* petition by Rahl (Daniel Anderson) */ void do_petition( CHAR_DATA *ch, char *argument ) { char arg[MAX_INPUT_LENGTH]; CLAN_DATA *pClan; one_argument( argument, arg ); if ( IS_NPC( ch ) ) { send_to_char( "You can't join a clan!\n\r", ch ); return; } if ( ch->pcdata->clan != 0 ) { send_to_char( "But you're already in a clan!\n\r", ch ); return; } if ( arg[0] == '\0' ) { send_to_char( "Which clan do you wish to petition?\n\r", ch ); return; } pClan = find_clan( arg ); if ( pClan == NULL ) { send_to_char( "That clan does not exist.\n\r", ch ); send_to_char( "Try using the clan short name shown in 'show clans'\n\r", ch ); return; } make_note( "Personal", ch->name, pClan->leader, pClan->visible, 14, "I wish to join your clan." ); return; } /* ============================================================================= / ______ _______ ____ _____ ___ __ _ ______ ____ ____ _____ / \ | ____|__ __| _ \ / ____\ / _ \| \ / | ____| / __ \| _ \ / ____\ \ / | |__ | | | |_| | | | |_| | |\/| | |___ | | | | |_| | | / / | ___| | | | ___/| | __| _ | | | | ____| | | | | __/| | ___ \ \ | | | | | | | |___| | | | | | | | |____ | |__| | |\ \| |___| | / / |_| |_| |_| o \_____/|_| |_|_| |_|______|o \____/|_| \_|\_____/ \ \ / ============================================================================ ------------------------------------------------------------------------------ ftp://ftp.game.org/pub/mud FTP.GAME.ORG http://www.game.org/ftpsite/ ------------------------------------------------------------------------------ This file came from FTP.GAME.ORG, the ultimate source for MUD resources. ------------------------------------------------------------------------------ */