if( arg1[0] == '\0' )
{
stc( "Syntax: selfclass <class>\n\r", ch );
stc( "\n\r", ch );
stc( "Class being one of:\n\r", ch );
stc( "vampire werewolf demon ninja drow monk highlander\n\r", ch );
stc( "\n\r", ch );
return;
}
if( arg1[0] == '\0' )
{
stc( "Syntax: selfclass <class>\n\r"
"\n\r"
"Class being one of:\n\r"
"vampire werewolf demon ninja drow monk highlander\n\r"
"\n\r", ch );
return;
}
struct some_example_table
{
char * name;
int class;
};
const struct some_example_table example_table[] =
{
{ "monk", CLASS_MONK }
{ "etc", CLASS_ETC }
};
for( int a = 0; a < (# of entries in the static table. In this example, 2.); a++ )
{
if( !str_cmp( example_table[a].name, arg1 ) )
{
ch->class = example_table[a].class;
free_string( ch->lord );
ch->lord = str_dup( "" );
ch->pcdata->stats[UNI_GEN] = 1;
sprintf( buf, "%s is now a %s.", ch->name, example_table[a].name );
do_info( ch, buf );
sprintf( log_buf, "%s is now a %s", ch->name, example_table[a].name );
log_string( log_buf );
ch_printf( ch, "You are now a %s!\n\r", example_table[a].name );
do_mclear( ch, "self" );
return;
}
}
stc("Syntax: selfclass <class>\n\r",ch);
stc("\n\r",ch);
stc("Class being one of:\n\r",ch);
stc("vampire werewolf demon ninja drow monk highlander\n\r",ch);
stc("\n\r",ch);
return;
do_selfclass( ch, "" );
return;
void do_selfclass(CHAR_DATA* ch, char* argument){
char arg1[MAX_INPUT_LENGTH];
const char* clname = "";
if(IS_NPC(ch))
return;
if(ch->level < 3){
*arg1 = '\0';
do_huh(ch, arg1);
return;
}
argument = one_argument(argument, arg1);
if(ch->class != 0 || IS_SET(ch->special, SPC_CHAMPION)){
stc("You already have a class!\r\n", ch);
return;
}
if(!str_cmp(arg1, "monk")){
ch->class = CLASS_MONK;
clname = "Monk";
}else if(!str_cmp(arg1, "drow")){
ch->class = CLASS_DROW;
clname = "Drow";
}else if(!str_cmp(arg1, "ninja")){
ch->class = CLASS_NINJA;
clname = "Ninja";
}else if(!str_cmp(arg1, "vampire")){
ch->class = CLASS_VAMPIRE;
clname = "Vampire";
ch->beast = 0;
SET_BIT(ch->immune, IMM_SUNLIGHT);
}else if(!str_cmp(arg1, "werewolf")){
ch->class = CLASS_WEREWOLF;
clname = "Werewolf";
}else if(!str_cmp(arg1, "demon")){
ch->class = CLASS_DEMON;
clname = "Demon";
ch->special = SPC_DEMON_LORD;
}else if(!str_cmp(arg1, "highlander")){
ch->class = CLASS_HIGHLANDER;
clname = "Highlander";
ch->pcdata->powers[0] = 1;
ch->pcdata->stats[0] = 1;
}else{
stc("Syntax: selfclass <class>\r\n"
"\r\n"
"Class being one of:\r\n"
"vampire werewolf demon ninja drow monk highlander\r\n\r\n", ch);
return;
}
free_string(ch->lord);
ch->lord = str_dup("");
ch->pcdata->stats[UNI_GEN] = 1;
sprintf(arg1, "%s is now a %s.", ch->name, clname);
do_info(ch, arg1);
log_string(arg1);
sprintf(arg1, "You are now a %s!\r\n", clname);
stc(arg1, ch);
strcpy(arg1, "self");
do_mclear(ch, arg1);
return;
}
do_huh(ch, "");
for( int a = 0; a < (# of entries in the static table. In this example, 2.); a++ )
Any help given to me will be credited in my next release. You can find the snippet HERE. Thanks in advance for any help.