Re: MultiClass -Quad-

From: Ground Zero Enterprises (
Date: 07/10/96

I added one more class to my mud (Bard) and then completely transfered it 
over to Five Multiclass.  Although it still has some inconsitencies in 
it so it would compile i changed GET_CLASS to return your prime 
class and GET_LEVEL to return the level of your prime class I have slowly 
been converting everything to make sense.  If you are srious about doing 
this realize it takes a LOT of changes to many of the basic systems of 
stock circle to keep everything balanced. To give the basic format of 
what i did to get all of that stuff this is what i did:

in structs.h:

byte level;
byte class;

changed to:

int level[NUM_CLASSES];
int class[NUM_CLASSES];

Then so I could have the most freedom getting information about classes 
and levels, the array of levels corresponds to the classes (i.e. level[0] 
is level of class mage, level[1] is cleric etc..) and class corresponds 
to primes (i.e. class[0] is the prime class, class[1] is the secondary 
etc..).  Then i so i wouldnt have to chahnge everything automatically i 
used these macros:

GET_CLASSX(ch, prime)  ((ch)->player.class[(prime)]) <- returns whatever 
class is in 'prime' slot

GET_CLASS(ch)   GET_CLASSX(ch, 0) <- returns prime class

GET_LEVELX(ch, class)  ((ch)->player.level[(class)]) <- returns level of 
'class' this can be used to get the level of a class by type 
(CLASS_MAGIC_USER) or by prime (GET_CLASSX(ch, 2) to get the level of 
their tertiary class)

GET_LEVEL(ch)   GET_LEVELX(ch, GET_CLASS(ch))  <- return level of prime 
class, just to keep all previous GET_LEVEL macros in line untill they can 
be corrected be balanced and logical

This has worked out very well for me.  Although it still has work to b 
done on it (for example, when casting spells, if you are a warrior prime, 
it will use your warriopr level for spell effects).  I also had to redo 
the whole guild system and experience.  I am still in the process of 
changing the practicing system.

Any way thats enough spamming of the list for me,

On Wed, 10 Jul 1996, Wu Tang Clan wrote:

> Has anyone tried to add Quad MultiClass to there mud?
> 	I am trying to created MultiClasses by
> 		Changing GET_LEVEL(ch) ((ch)->player.level) to
> 			 GET_LEVEL(ch,i) ((ch)->player.level[(i)])
> 	and in the structs.h file in the char_data struct
> 		Changing level; to
> 			 level[NUM_CLASSES];
> I know there will have to be alot of changes made throughout the code for
> GET_LEVEL, so i am trying to compile one file at a time.
> But, the first file i tried to compile, which was comm.c, gave numerous
> errors, that i couldn't seem to pinpoint the source of the error.
> Such as comm.c:1663: macro `GET_LEVEL' used with just one arg, but i can
> find where it is calling that macro from...
> If anyone has tried this, or know how to complete this task please reply
> to this mesg.
> Thanks In Advance
> 	WuTang AKA Shame

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