/*****************************************************************************
 *  Set Command by Orion Elder.                                               *
 *                                                                           *
 *  Updates to this snippet can be found at the SSWRA:                       *
 *  http://www.geocities.com/knytehawk/smaug/index.html                      *
 *                                                                           *
 *  Please send all bug reports, suggestions, or ideas to:                   *
 *  orion_elder@charter.net                                                  *
 *                                                                           *
 *  NOTE: If you downloaded this snippet from the SSWRA disregard. I will    *
 *        under no circumstances support versions of this snippet gleaned    *
 *        from other sources. If you're having problems download a fresh     *
 *        copy from the SSWRA and re-install.                                *
 *                                                                           *
 * If you're having problems with your copy of this snippet, please check to *
 * ensure that no updates have been posted before seeking help.              *
 *                                                                           *
 * Copyright 2001-2009 by Orion Elder                                        *
 *****************************************************************************/

[clans.c]

At the bottom add:

void do_set ( CHAR_DATA *ch, char *argument )
{
	char arg1[MAX_INPUT_LENGTH];
	char arg2[MAX_INPUT_LENGTH];
	char *leader;
	char *number1;
	char *number2;
	char *deity;
	char *name;
	CLAN_DATA *clan;

	argument = one_argument (argument, arg1);
	argument = one_argument (argument, arg2);

	if (IS_NPC (ch))
	{
		send_to_char ("Huh?\n\r", ch);
		return;
	}

	clan = ch->pcdata->clan;

	if (!clan)
	{
		send_to_char ( "You don't belong to a clan!!\n\r", ch );
		return;
	}

	leader = STRALLOC ("");
	deity = STRALLOC ("");
	number1 = STRALLOC ("");
	number2 = STRALLOC ("");

	if (clan->leader)
		leader = capitalize (clan->leader);
	if (clan->number1)
		number1 = capitalize (clan->number1);
	if (clan->number2)
		number2 = capitalize (clan->number2);
	if (clan->deity)
		deity = capitalize (clan->deity);

	name = capitalize (ch->name);

	set_char_color ( AT_WHITE, ch );
	
	if ( str_cmp ( ch->name, clan->leader ) )
	{
		send_to_char ( "You're not the leader!!\n\r", ch );
		return;
	}
	
	if ( arg1[0] == '\0' || arg2[0] == '\0' )
	{
		send_to_char ( "Syntax: set <field> <choice|none>\n\r", ch );
		send_to_char ( "\n\r", ch );
		send_to_char ( "  Fields:  number1 number2 deity badge\n\r", ch );
		return;
	}

	if (!str_cmp ( arg1, "number1" ) )
	{
		if ( !str_cmp ((arg2), (deity)) || !str_cmp ((arg2), (number2)) || !str_cmp ((arg2), (leader)) )
		{
			ch_printf ( ch, "%s already holds a position, they don't need another!!!!\n\r", capitalize (arg2) );
			return;
		}

		STRFREE ( clan->number1 );
		if (!str_cmp (arg2, "none"))
		{
			clan->number1 = STRALLOC ("");
		} else {
			clan->number1 = STRALLOC ( capitalize (arg2) );
		}
		send_to_char ( "Done.\n\r", ch );
		save_clan ( clan );
		return;
	}

	if ( !str_cmp ( arg1, "number2" ) )
	{
		if ( !str_cmp ((arg2), (deity)) || !str_cmp ((arg2), (number1)) || !str_cmp ((arg2), (leader) ) )
		{
			ch_printf ( ch, "%s already holds a position, they don't need another!!!!\n\r", capitalize (arg2) );
			return;
		}

		STRFREE ( clan->number2 );
		if (!str_cmp (arg2, "none"))
		{
			clan->number2 = STRALLOC ("");
		} else {
			clan->number2 = STRALLOC ( capitalize (arg2) );
		}
		send_to_char ( "Done.\n\r", ch );
		save_clan ( clan );
		return;
	}

	if ( !str_cmp ( arg1, "deity" ) )
	{
		if ( !str_cmp ((arg2), (leader)) || !str_cmp ((arg2), (number1)) || !str_cmp ((arg2), (number2) ) )
		{
			ch_printf ( ch, "%s already holds a position, they don't need another!!!!\n\r", capitalize (arg2) );
			return;
		}

		STRFREE ( clan->deity );
		if (!str_cmp (arg2, "none"))
		{
			clan->deity = STRALLOC ("");
		} else {
			clan->deity = STRALLOC ( capitalize (arg2) );
		}
		send_to_char ( "Done.\n\r", ch );
		save_clan ( clan );
		return;
	}

	if ( !str_cmp (arg1, "badge" ) )
	{
		STRFREE ( clan->badge );
		if (!str_cmp (arg2, "none"))
		{
			clan->badge = STRALLOC ("");
		} else {
			clan->badge = STRALLOC ( arg2 );
		}
		send_to_char ( "Done.\n\r", ch );
		save_clan ( clan );
		return;
	}
	
	ch_printf ( ch, "Invalid argument '%s'\n\r", arg1 );
	return;
}

Then in tables.c and mud.h add the appropriate calls.

Next, make clean, make, and then go into the MUD. In the MUD create the
command, then save the command table. And you have your new command. :)