Re: [opinion] races

From: Thomas Pedersen (classic@cloud9.net)
Date: 10/14/96


Just a little sidetrack:

Why does everybody bake the races into the initial menu? A lot of new
players have no idea about races, even less about stats when they select a
new char.  I've coded it so people have to wait until level 5 to select a
race (thus they would have a good idea what to be, and also the option to
switch race.) I'll probably do the same for classes, make everybody born
'class-less humans', and let them do some research to find out which
skills, spells etc. that exist for that class.

IMHO.

:)


On Sun, 13 Oct 1996, Admin of The Keep wrote:

> On Sun, 13 Oct 1996, Brian Williams - Nashak wrote:
> 
> > I forgot what all you need to add to the code for races.. I had races a
> > long time ago, but.. hey my memory is bad.. :P anyways.. could someone
> > post the good old race.c, and a text of where to add everything?
> 
>   Never heard of race.c, myself, nor have I ever looked at any of the
>   public releases of races; I just know how I do it...  The fun way... :)
>   Short of my nifty race selection mode (anyone seen that?  heh, it's
>   actually easier than many people think :)), it's fairly basic.
> 
>   I use a table instead of seperate strings, etc.  Like:
> 
>     struct race_data {
>        char *name;
>        char *abbrev;
>        int mod_stats[6];
>     };
> 
>   For most MUDs this is an adequate representation of the use of races
>   in the MUD...  Of course, it can get MUCH more complex (eg., my races
>   have functions assigned to them, starting skills, etc., etc., etc.).
>   Basically we have a format of:
> 
>     struct race_data Races[NUM_RACES] = {
>       { "Human"		, "Hum", {  0,   0,   0,   0,   0,   0 } },
>       { "Elf"		, "Elf", { -2,   2,   1,   1,  -2,   0 } }
>     };
> 
>   Presuming you have defined the following in 'structs.h':
> 
>     #define RACE_HUMAN		0
>     #define RACE_ELF		1
> 
>     #define NUM_RACES		2
> 
>   Now you can make races modify stats (on my MUD races determine the roll
>   of stats, max/min) by doing:
> 
>     ch->real_abils.str += Races[GET_RACE(ch)].mod_stats[0];
>     ch->real_abils.intel += Races[GET_RACE(ch)].mod_stats[1];
>     ch->real_abils.wis += Races[GET_RACE(ch)].mod_stats[2];
>     ch->real_abils.dex += Races[GET_RACE(ch)].mod_stats[3];
>     ch->real_abils.con += Races[GET_RACE(ch)].mod_stats[4];
>     ch->real_abils.cha += Races[GET_RACE(ch)].mod_stats[5];
> 
>   Create your race selection code:
> 
>     -in "structs.h"-
>     #define CON_QRACE			xx /* change 'xx' to first avail.
> 				            * nubmer */
> 
>     -in "interpreter.c" (I think?  I dunno, I moved nanny to a new file)-
>     case CON_QRACE:
>       for (x = 0; x < NUM_RACES; x++)
>         if (is_abbrev(arg, Races[x].abbrev))
>           break;
>       if (x < 0 || x >= NUM_RACES) {
>         send_to_char("That's an invalid race!\r\n", d->character);
>         for (x = 0; x < NUM_RACES; x++) {
>           sprintf(buf, "[%s] %s\r\n", Races[x].abbrev, Races[x].name);
>           send_to_char(buf, d->character);
>         }
>         SEND_TO_Q("Race: ", d);
>       }
>       GET_RACE(ch) = x;
>       break;
> 
>   You'll need to add support for display the races (as show just below
>   "That's an invalid race!") to whatever con state you want to come
>   before it and make CON_QRACE call the next con state, too.  Probably
>   you'll want to add passing to CON_QRACE to CON_QSEX and then have
>   CON_QRACE copy the code from the bottom of CON_QSEX that sends them
>   to CON_QCLASS so you end up going from gender selection to race
>   selection to class selection.
> 
>   BTW, you'll want to put:
>     extern struct race_data Races[NUM_RACES];
> 
>   At the end of "structs.h" so that it's global to all files.
> 
>   <*=-+Daniel+-=*>
>   "Forgive me father, for I am sin."
> 
> 
> +-----------------------------------------------------------+
> | Ensure that you have read the CircleMUD Mailing List FAQ: |
> |   http://cspo.queensu.ca/~fletcher/Circle/list_faq.html   |
> +-----------------------------------------------------------+
> 


* Classic@Cloud9.net * tpedersen@kraft.com *
* http://www.cloud9.net/~classic *
* visit Darklord MUD at pody.westnet.com 5000 *

+-----------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
|   http://cspo.queensu.ca/~fletcher/Circle/list_faq.html   |
+-----------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/18/00 PST