I mentioned I commented this out in comm.c
/*
char buf[MAX_STRING_LENGTH];
int IClass;
*/
and...
/*
write_to_buffer( d, "\r\nSelect a class, or type help [class] to learn more about that class.\r\n[", 0 );
buf[0] = '\0';
for( iClass = 0; iClass < MAX_PC_CLASS; iClass++ )
{
if( class_table[iClass]->who_name && class_table[iClass]->who_name[0] != '\0' )
{
if( iClass > 0 )
{
if( strlen( buf ) + strlen( class_table[iClass]->who_name ) > 77 )
{
mudstrlcat( buf, "\r\n", MAX_STRING_LENGTH );
write_to_buffer( d, buf, 0 );
buf[0] = '\0';
}
else
mudstrlcat( buf, " ", MAX_STRING_LENGTH );
}
mudstrlcat( buf, class_table[iClass]->who_name, MAX_STRING_LENGTH );
}
}
mudstrlcat( buf, "]\r\n: ", MAX_STRING_LENGTH );
write_to_buffer( d, buf, 0 );
d->connected = CON_GET_NEW_CLASS;
}
void nanny_get_new_class( DESCRIPTOR_DATA * d, const char *argument )
{
CHAR_DATA *ch;
char buf[MAX_STRING_LENGTH];
char arg[MAX_STRING_LENGTH];
int iClass, iRace;
ch = d->character;
argument = one_argument( argument, arg );
if( !str_cmp( arg, "help" ) )
{
for( iClass = 0; iClass < MAX_PC_CLASS; iClass++ )
{
if( class_table[iClass]->who_name && class_table[iClass]->who_name[0] != '\0' )
{
if( toupper( argument[0] ) == toupper( class_table[iClass]->who_name[0] )
&& !str_prefix( argument, class_table[iClass]->who_name ) )
{
do_help( ch, argument );
write_to_buffer( d, "Please choose a class: ", 0 );
return;
}
}
}
write_to_buffer( d, "No such help topic. Please choose a class: ", 0 );
return;
}
for( iClass = 0; iClass < MAX_PC_CLASS; iClass++ )
{
if( class_table[iClass]->who_name && class_table[iClass]->who_name[0] != '\0' )
{
if( toupper( arg[0] ) == toupper( class_table[iClass]->who_name[0] )
&& !str_prefix( arg, class_table[iClass]->who_name ) )
{
ch->Class = iClass;
break;
}
}
}
if( iClass == MAX_PC_CLASS
|| !class_table[iClass]->who_name
|| class_table[iClass]->who_name[0] == '\0' || !str_cmp( class_table[iClass]->who_name, "unused" ) )
{
write_to_buffer( d, "That's not a class.\r\nWhat IS your class? ", 0 );
return;
}
if( check_bans( ch, BAN_CLASS ) )
{
write_to_buffer( d, "That class is not currently avaiable.\r\nWhat IS your class? ", 0 );
return;
}
write_to_buffer( d, "\r\nYou may choose from the following races, or type help [race] to learn more:\r\n[", 0 );
buf[0] = '\0';
for( iRace = 0; iRace < MAX_PC_RACE; iRace++ )
{
if( iRace != RACE_VAMPIRE
&& race_table[iRace]->race_name && race_table[iRace]->race_name[0] != '\0'
&& !IS_SET( race_table[iRace]->class_restriction, 1 << ch->Class )
&& str_cmp( race_table[iRace]->race_name, "unused" ) )
{
if( iRace > 0 )
{
if( strlen( buf ) + strlen( race_table[iRace]->race_name ) > 77 )
{
mudstrlcat( buf, "\r\n", MAX_STRING_LENGTH );
write_to_buffer( d, buf, 0 );
buf[0] = '\0';
}
else
mudstrlcat( buf, " ", MAX_STRING_LENGTH );
}
mudstrlcat( buf, race_table[iRace]->race_name, MAX_STRING_LENGTH );
}
}
mudstrlcat( buf, "]\r\n: ", MAX_STRING_LENGTH );
write_to_buffer( d, buf, 0 );
d->connected = CON_GET_NEW_RACE;
}
void nanny_get_new_race( DESCRIPTOR_DATA * d, const char *argument )
{
CHAR_DATA *ch;
char arg[MAX_STRING_LENGTH];
int iRace;
ch = d->character;
argument = one_argument( argument, arg );
if( !str_cmp( arg, "help" ) )
{
for( iRace = 0; iRace < MAX_PC_RACE; iRace++ )
{
if( toupper( argument[0] ) == toupper( race_table[iRace]->race_name[0] )
&& !str_prefix( argument, race_table[iRace]->race_name ) )
{
do_help( ch, argument );
write_to_buffer( d, "Please choose a race: ", 0 );
return;
}
}
write_to_buffer( d, "No help on that topic. Please choose a race: ", 0 );
return;
}
for( iRace = 0; iRace < MAX_PC_RACE; iRace++ )
{
if( toupper( arg[0] ) == toupper( race_table[iRace]->race_name[0] )
&& !str_prefix( arg, race_table[iRace]->race_name ) )
{
ch->race = iRace;
break;
}
}
if( iRace == MAX_PC_RACE
|| !race_table[iRace]->race_name || race_table[iRace]->race_name[0] == '\0'
|| iRace == RACE_VAMPIRE
|| IS_SET( race_table[iRace]->class_restriction, 1 << ch->Class )
|| !str_cmp( race_table[iRace]->race_name, "unused" ) )
{
write_to_buffer( d, "That's not a race.\r\nWhat IS your race? ", 0 );
return;
}
if( check_bans( ch, BAN_RACE ) )
{
write_to_buffer( d, "That race is not currently available.\r\nWhat is your race? ", 0 );
return;
}
*/
and...
/*
case CON_GET_NEW_CLASS:
nanny_get_new_class( d, argument )
break;
case CON_GET_NEW_RACE:
nanny_get_new_race( d, argument );
break;
*/
And have a mobile in the area to set the class and race to the desired ones... but even so, on creation... when you mstat the new player their race is 0 and their class is 3.
I was wondering why it choose 3 for class under these circumstances instead of 0 like race.
I did notice it was the same when you created a new mobile with mcreate, it sets the race to 0 and class to 3 automatically. |