551 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			551 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
#include "fincludes"
 | 
						|
#include "ar_inc_massbuff"
 | 
						|
#include "prc_feat_const"
 | 
						|
 | 
						|
const string NC_RESPONSE_RELEVEL_CLASS = "You are not allowed to multi-class with the chosen class. Please Re-level..";
 | 
						|
const string NC_RESPONSE_RELEVEL_DOMAIN = "Illegal Domain combination taken. Please Re-level..";
 | 
						|
const string NC_RESPONSE_RELEVEL_TEMPLAR_DOMAIN = "Illegal Templar Domain combination taken. Please Re-level.." ;
 | 
						|
const string NC_RESPONSE_RELEVEL_NONELEMENTAL_DOMAIN =  "Incorrect Non-Elemental Domain Combination Please Re-level..";
 | 
						|
const string NC_RESPONSE_RELEVEL_ELEMENTAL_DOMAIN = "Incorrect Elemental Domain combination. Please Re-level..";
 | 
						|
const string NC_RESPONSE_CHECK_TEMPLAR =  "Checking Templar Domains";
 | 
						|
const string NC_RESPONSE_CHECK_CLERIC = "Checking Cleric Domains..";
 | 
						|
const string NC_RESPONSE_CHECK_PALADIN = "Checking multi-class Paladin..";
 | 
						|
const string NC_RESPONSE_CHECK_DEFILER = "Checking multi-class Defiler..";
 | 
						|
const string NC_RESPONSE_CECK_CLERIC = "Checking multi-class Cleric..";
 | 
						|
const string NC_RESPONSE_CHECK_DRUID = "Checking Multi-class Druid..";
 | 
						|
const string NC_RESPONSE_TEMPLAR_DOMAIN_CORRECT = "Correct Templar Domain combination taken.";
 | 
						|
const string NC_RESPONSE_FOUND_TEMPLAR_DOMAIN = "Templar Domain chosen...";
 | 
						|
const string NC_RESPONSE_FOUND_CLERIC = "Cleric/Templar Class Found.";
 | 
						|
const string NC_RESPONSE_FOUND_PALADIN = "Paladin Class Found.";
 | 
						|
const string NC_RESPONSE_FOUND_DEFILER = "Defiler Class Found.";
 | 
						|
const string NC_RESPONSE_FOUND_DRUID = "Druid Class Found.";
 | 
						|
const string NC_RESPONSE_FOUND_TEMPLAR ="Templar Class Found";
 | 
						|
const string NC_RESPONSE_CLERIC_SYMBOL = "You are more in-line with your element and able to transform into your element three times per day.";
 | 
						|
const string NC_RESPONSE_CHECK_SUBRACE = "Checking for class restrictions for your race..";
 | 
						|
 | 
						|
 | 
						|
const string SUBRACE_BELGOI="belgoi";
 | 
						|
const string SUBRACE_THRAX="thrax";
 | 
						|
const string SUBRACE_YUANTI="yuan-ti";
 | 
						|
const string SUBRACE_ILLITHID="illithid";
 | 
						|
const string SUBRACE_REGGLID="regglid";
 | 
						|
const string SUBRACE_KIRRE="kirre";
 | 
						|
const string NC_RESPONSE_RELEVEL_SUBRACE="You cannot take this class due to racial restrictions";
 | 
						|
 | 
						|
const int CLASS_TYPE_GLADIATOR =61;
 | 
						|
//const int CLASS_TYPE_PSION=60;
 | 
						|
//The level that a cleric recives their holy symbol.
 | 
						|
const int AR_CLERIC_SYMBOL_LEVEL = 30;
 | 
						|
 | 
						|
//check race restricted classes
 | 
						|
//returns true if oPC's race is restricted from taking nCLASS
 | 
						|
//nCLASS= CLASS_TYPE_*
 | 
						|
int NC_RaceRestrictedClass(object oPC,int nCLASS);
 | 
						|
 | 
						|
//give the cleric symbol by elemental domain
 | 
						|
void NC_GiveClericSymbol(object oPC);
 | 
						|
 | 
						|
//Delevels and relevels the pc
 | 
						|
void NC_DelevelPC(object oPC);
 | 
						|
 | 
						|
//check for cleric domains
 | 
						|
int NC_CheckClericElementalDomains(object oPC);
 | 
						|
 | 
						|
//checks for correct templar domains
 | 
						|
int NC_TemplarCheck(object oPC);
 | 
						|
 | 
						|
//Returns true if oPC has taken levels in nClas : CLASS_TYPE_*
 | 
						|
int NC_GetHasClass(int nCLASS, object oPC);
 | 
						|
 | 
						|
//Returns true if correct classes have been chosen
 | 
						|
int NC_CheckClassRestrictions(object oPC);
 | 
						|
 | 
						|
//returns ture if 2 non-elemental domains are chosen
 | 
						|
int NC_CheckClericBasicDomains(object oPC);
 | 
						|
 | 
						|
//returns true if oPC has chosen any of the Templar Domain feats
 | 
						|
int NC_GetIsTemplar(object oPC);
 | 
						|
 | 
						|
//Sends message to oPC
 | 
						|
void NC_SendMessage(object oPC,string NC_RESPONSE,int nRed=TRUE);
 | 
						|
 | 
						|
int NC_CheckClericElementalDomains(object oPC)
 | 
						|
{
 | 
						|
    int nReturn, nCount;
 | 
						|
    if(GetHasFeat(FEAT_AIR_DOMAIN_POWER, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_EARTH_DOMAIN_POWER, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_FIRE_DOMAIN_POWER, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_WATER_DOMAIN_POWER, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_MAGMA_DOMAIN_POWER, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_SUN_DOMAIN_POWER, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_SILT_DOMAIN_POWER, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_RAIN_DOMAIN_POWER, oPC)) nCount++;
 | 
						|
    if(nCount == 1) nReturn = TRUE;//can only have one elemental domain
 | 
						|
    return nReturn;
 | 
						|
}
 | 
						|
 | 
						|
int NC_CheckClericBasicDomains(object oPC)
 | 
						|
{
 | 
						|
    int nReturn, nCount;
 | 
						|
    if(GetHasFeat(FEAT_ANIMAL_DOMAIN_POWER, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_DEATH_DOMAIN_POWER, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_DESTRUCTION_DOMAIN_POWER, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_EVIL_DOMAIN_POWER, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_GOOD_DOMAIN_POWER, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_HEALING_DOMAIN_POWER, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_KNOWLEDGE_DOMAIN_POWER, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_LUCK_DOMAIN_POWER, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_MAGIC_DOMAIN_POWER, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_PLANT_DOMAIN_POWER, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_PROTECTION_DOMAIN_POWER, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_STRENGTH_DOMAIN_POWER, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_TRAVEL_DOMAIN_POWER, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_TRICKERY_DOMAIN_POWER, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_WAR_DOMAIN_POWER, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_DOMAIN_POWER_DARKNESS, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_DOMAIN_POWER_STORM, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_DOMAIN_POWER_METAL, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_DOMAIN_POWER_PORTAL, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_DOMAIN_POWER_FORCE, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_DOMAIN_POWER_SLIME, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_DOMAIN_POWER_TYRANNY, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_DOMAIN_POWER_DOMINATION, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_DOMAIN_POWER_SPIDER, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_DOMAIN_POWER_UNDEATH, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_DOMAIN_POWER_TIME, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_DOMAIN_POWER_DWARF, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_DOMAIN_POWER_CHARM, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_DOMAIN_POWER_ELF, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_DOMAIN_POWER_FAMILY, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_DOMAIN_POWER_FATE, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_DOMAIN_POWER_GNOME, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_DOMAIN_POWER_ILLUSION, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_DOMAIN_POWER_HATRED, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_DOMAIN_POWER_HALFLING, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_DOMAIN_POWER_NOBILITY, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_DOMAIN_POWER_OCEAN, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_DOMAIN_POWER_ORC, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_DOMAIN_POWER_RENEWAL, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_DOMAIN_POWER_RETRIBUTION, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_DOMAIN_POWER_RUNE, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_DOMAIN_POWER_SPELLS, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_DOMAIN_POWER_SCALEYKIND, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_DOMAIN_POWER_BLIGHTBRINGER, oPC)) nCount++;
 | 
						|
    if(GetHasFeat(FEAT_DOMAIN_POWER_DRAGON, oPC)) nCount++;    
 | 
						|
    if(nCount > 0) nReturn = TRUE;
 | 
						|
    return nReturn;
 | 
						|
}
 | 
						|
 | 
						|
void NC_RelevelPC(object oPC)
 | 
						|
{
 | 
						|
    int nXP = GetXP(oPC);
 | 
						|
    int nHD = GetHitDice(oPC);
 | 
						|
    int nNewXP = ((nHD * (nHD - 1) * 500) - 1);
 | 
						|
    SetXP(oPC, nNewXP);
 | 
						|
    DelayCommand(1.0, SetXP(oPC, nXP));
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
void NC_GiveClericSymbol(object oPC)
 | 
						|
{
 | 
						|
    string sResRef;
 | 
						|
    if(GetHasFeat(FEAT_AIR_DOMAIN_POWER, oPC)) sResRef = "airsymbol";
 | 
						|
    if(GetHasFeat(FEAT_EARTH_DOMAIN_POWER, oPC)) sResRef = "earthsymbol";
 | 
						|
    if(GetHasFeat(FEAT_FIRE_DOMAIN_POWER, oPC)) sResRef = "firesymbol";
 | 
						|
    if(GetHasFeat(FEAT_WATER_DOMAIN_POWER, oPC)) sResRef = "watersymbol";
 | 
						|
    if(GetHasFeat(FEAT_MAGMA_DOMAIN_POWER, oPC)) sResRef = "magmasymbol";
 | 
						|
    if(GetHasFeat(FEAT_SILT_DOMAIN_POWER, oPC)) sResRef = "siltsymbol";
 | 
						|
    if(GetHasFeat(FEAT_SUN_DOMAIN_POWER, oPC)) sResRef = "sunsymbol";
 | 
						|
    if(GetHasFeat(FEAT_RAIN_DOMAIN_POWER, oPC)) sResRef = "rainsymbol";
 | 
						|
 | 
						|
    if(GetLevelByClass(CLASS_TYPE_CLERIC,oPC)>=AR_CLERIC_SYMBOL_LEVEL)
 | 
						|
        {
 | 
						|
        object oItem = GetItemPossessedBy(oPC,sResRef);
 | 
						|
 | 
						|
        if(!GetIsObjectValid(oItem))
 | 
						|
            {
 | 
						|
            CreateItemOnObject(sResRef, oPC);
 | 
						|
            NC_SendMessage(oPC,NC_RESPONSE_CLERIC_SYMBOL);
 | 
						|
            }
 | 
						|
        }
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
int NC_TemplarCheck(object oPC)
 | 
						|
{
 | 
						|
    NC_SendMessage(oPC, NC_RESPONSE_CHECK_TEMPLAR);
 | 
						|
    int nReturn;
 | 
						|
    if(GetHasFeat(FEAT_TEMPLAR_DOMAIN_POWER, oPC))
 | 
						|
        {
 | 
						|
        if(GetHasFeat(FEAT_DREGOTH_DOMAIN_POWER, oPC) ||
 | 
						|
           GetHasFeat(FEAT_HAMANU_DOMAIN_POWER, oPC) ||
 | 
						|
           GetHasFeat(FEAT_NIBENAY_DOMAIN_POWER, oPC) ||
 | 
						|
           GetHasFeat(FEAT_ORONIS_DOMAIN_POWER, oPC) ||
 | 
						|
           GetHasFeat(FEAT_THEOBA_DOMAIN_POWER, oPC))
 | 
						|
            {
 | 
						|
            NC_SendMessage(oPC, NC_RESPONSE_TEMPLAR_DOMAIN_CORRECT);
 | 
						|
            nReturn = FALSE;
 | 
						|
            }
 | 
						|
        else
 | 
						|
            {
 | 
						|
            NC_SendMessage(oPC, NC_RESPONSE_RELEVEL_TEMPLAR_DOMAIN,TRUE);
 | 
						|
            nReturn = TRUE;
 | 
						|
            }
 | 
						|
        return nReturn;
 | 
						|
        }
 | 
						|
    else
 | 
						|
    {
 | 
						|
        nReturn = TRUE;
 | 
						|
        NC_SendMessage(oPC, NC_RESPONSE_RELEVEL_TEMPLAR_DOMAIN,TRUE);
 | 
						|
        return nReturn;
 | 
						|
    }
 | 
						|
 }
 | 
						|
 | 
						|
int NC_GetHasClass(int nCLASS, object oPC)
 | 
						|
 {
 | 
						|
 | 
						|
        if (GetLevelByClass(nCLASS, oPC)>=1)
 | 
						|
        {
 | 
						|
            return TRUE;
 | 
						|
        }
 | 
						|
        else
 | 
						|
        {
 | 
						|
            return FALSE;
 | 
						|
        }
 | 
						|
 }
 | 
						|
 | 
						|
int NC_CheckClassRestrictions(object oPC)
 | 
						|
    {
 | 
						|
        if (NC_GetHasClass(CLASS_TYPE_PALADIN,oPC))
 | 
						|
            {
 | 
						|
                NC_SendMessage(oPC, NC_RESPONSE_FOUND_PALADIN);
 | 
						|
                NC_SendMessage(oPC, NC_RESPONSE_CHECK_PALADIN);
 | 
						|
                if (NC_GetHasClass(CLASS_TYPE_BARD,oPC)  ||
 | 
						|
                   NC_GetHasClass(CLASS_TYPE_HARPER,oPC)  ||
 | 
						|
                   NC_GetHasClass(CLASS_TYPE_SORCERER,oPC)  ||
 | 
						|
                   NC_GetHasClass(CLASS_TYPE_BLACKGUARD,oPC) ||
 | 
						|
                   NC_GetHasClass(CLASS_TYPE_ASSASSIN,oPC)  ||
 | 
						|
                   NC_GetHasClass(CLASS_TYPE_PALE_MASTER,oPC) ||
 | 
						|
                   NC_RaceRestrictedClass(oPC,CLASS_TYPE_PALADIN))
 | 
						|
                     {
 | 
						|
                     NC_SendMessage(oPC,NC_RESPONSE_RELEVEL_CLASS,TRUE);
 | 
						|
                     return TRUE;
 | 
						|
                     }
 | 
						|
                     return FALSE;
 | 
						|
             }
 | 
						|
        else if (NC_GetHasClass(CLASS_TYPE_SORCERER, oPC))
 | 
						|
                {
 | 
						|
                NC_SendMessage(oPC, NC_RESPONSE_FOUND_DEFILER );
 | 
						|
                NC_SendMessage(oPC, NC_RESPONSE_CHECK_DEFILER );
 | 
						|
 | 
						|
                if (NC_GetHasClass(CLASS_TYPE_BLACKGUARD, oPC) ||
 | 
						|
                    NC_GetHasClass(CLASS_TYPE_DRUID, oPC) ||
 | 
						|
                    NC_GetHasClass(CLASS_TYPE_WIZARD, oPC) ||
 | 
						|
                    NC_GetHasClass(CLASS_TYPE_DIVINE_CHAMPION, oPC) ||
 | 
						|
                    NC_GetHasClass(CLASS_TYPE_SHIFTER, oPC) ||
 | 
						|
                    NC_GetHasClass(CLASS_TYPE_RANGER, oPC) ||
 | 
						|
                    NC_RaceRestrictedClass(oPC,CLASS_TYPE_SORCERER))
 | 
						|
                       {
 | 
						|
                       NC_SendMessage(oPC,NC_RESPONSE_RELEVEL_CLASS,TRUE);
 | 
						|
                       return TRUE;
 | 
						|
                       }
 | 
						|
                else if(NC_GetHasClass(CLASS_TYPE_CLERIC,oPC))
 | 
						|
                        {
 | 
						|
                        if (GetHasFeat(FEAT_MAGMA_DOMAIN_POWER, oPC) ||
 | 
						|
                            GetHasFeat(FEAT_SUN_DOMAIN_POWER, oPC)   ||
 | 
						|
                            GetHasFeat(FEAT_SILT_DOMAIN_POWER, oPC))
 | 
						|
                            {
 | 
						|
                            return FALSE;
 | 
						|
                            }
 | 
						|
                        else
 | 
						|
                            {
 | 
						|
                            NC_SendMessage(oPC,NC_RESPONSE_RELEVEL_CLASS,TRUE);
 | 
						|
                            return TRUE;
 | 
						|
                            }
 | 
						|
                        }
 | 
						|
return FALSE;
 | 
						|
                 }
 | 
						|
 | 
						|
        else if (NC_GetHasClass(CLASS_TYPE_DRUID, oPC))
 | 
						|
                {
 | 
						|
                NC_SendMessage(oPC, NC_RESPONSE_FOUND_DRUID);
 | 
						|
                NC_SendMessage(oPC, NC_RESPONSE_CHECK_DRUID);
 | 
						|
                if (NC_GetHasClass(CLASS_TYPE_SORCERER, oPC) ||
 | 
						|
                    NC_GetHasClass(CLASS_TYPE_HARPER, oPC) ||
 | 
						|
                    NC_GetHasClass(CLASS_TYPE_PALEMASTER, oPC) ||
 | 
						|
                    NC_GetHasClass(CLASS_TYPE_HARPER, oPC) ||
 | 
						|
                    NC_GetHasClass(CLASS_TYPE_ASSASSIN, oPC) ||
 | 
						|
                    NC_GetHasClass(CLASS_TYPE_BLACKGUARD, oPC) ||
 | 
						|
                    NC_RaceRestrictedClass(oPC,CLASS_TYPE_DRUID))
 | 
						|
                       {
 | 
						|
                        NC_SendMessage(oPC,NC_RESPONSE_RELEVEL_CLASS,TRUE);
 | 
						|
                        return TRUE;
 | 
						|
                       }
 | 
						|
                 return FALSE;
 | 
						|
                 }
 | 
						|
        else if (NC_GetHasClass(CLASS_TYPE_HARPER, oPC))
 | 
						|
                {
 | 
						|
                NC_SendMessage(oPC, NC_RESPONSE_FOUND_DRUID);
 | 
						|
                NC_SendMessage(oPC, NC_RESPONSE_CHECK_DRUID);
 | 
						|
                if (NC_GetHasClass(CLASS_TYPE_DRUID, oPC) ||
 | 
						|
                    NC_GetHasClass(CLASS_TYPE_SHIFTER, oPC) ||
 | 
						|
                    NC_GetHasClass(CLASS_TYPE_PALADIN, oPC) ||
 | 
						|
                    NC_GetHasClass(CLASS_TYPE_DIVINE_CHAMPION, oPC) ||
 | 
						|
                    NC_RaceRestrictedClass(oPC,CLASS_TYPE_HARPER))
 | 
						|
                       {
 | 
						|
                        NC_SendMessage(oPC,NC_RESPONSE_RELEVEL_CLASS,TRUE);
 | 
						|
                        return TRUE;
 | 
						|
                       }
 | 
						|
                 return FALSE;
 | 
						|
                 }
 | 
						|
       else if (NC_GetHasClass(CLASS_TYPE_SHIFTER, oPC))
 | 
						|
                {
 | 
						|
                if(NC_RaceRestrictedClass(oPC,CLASS_TYPE_SHIFTER))
 | 
						|
                       {
 | 
						|
                        NC_SendMessage(oPC,NC_RESPONSE_RELEVEL_CLASS,TRUE);
 | 
						|
                        return TRUE;
 | 
						|
                       }
 | 
						|
                 return FALSE;
 | 
						|
                 }
 | 
						|
       else if (NC_GetHasClass(CLASS_TYPE_WIZARD, oPC))
 | 
						|
                {
 | 
						|
                if (NC_RaceRestrictedClass(oPC,CLASS_TYPE_WIZARD))
 | 
						|
                       {
 | 
						|
                        NC_SendMessage(oPC,NC_RESPONSE_RELEVEL_CLASS,TRUE);
 | 
						|
                        return TRUE;
 | 
						|
                       }
 | 
						|
                 return FALSE;
 | 
						|
                 }
 | 
						|
       else if (NC_GetHasClass(CLASS_TYPE_BARD, oPC))
 | 
						|
                {
 | 
						|
                if(NC_RaceRestrictedClass(oPC,CLASS_TYPE_BARD))
 | 
						|
                       {
 | 
						|
                        NC_SendMessage(oPC,NC_RESPONSE_RELEVEL_CLASS,TRUE);
 | 
						|
                        return TRUE;
 | 
						|
                       }
 | 
						|
                 return FALSE;
 | 
						|
                 }
 | 
						|
       else if (NC_GetHasClass(CLASS_TYPE_FIGHTER, oPC))
 | 
						|
                {
 | 
						|
                if(NC_RaceRestrictedClass(oPC,CLASS_TYPE_FIGHTER))
 | 
						|
                       {
 | 
						|
                        NC_SendMessage(oPC,NC_RESPONSE_RELEVEL_CLASS,TRUE);
 | 
						|
                        return TRUE;
 | 
						|
                       }
 | 
						|
                 return FALSE;
 | 
						|
                 }
 | 
						|
       else if (NC_GetHasClass(CLASS_TYPE_MONK, oPC))
 | 
						|
                {
 | 
						|
                if(NC_RaceRestrictedClass(oPC,CLASS_TYPE_MONK))
 | 
						|
                       {
 | 
						|
                        NC_SendMessage(oPC,NC_RESPONSE_RELEVEL_CLASS,TRUE);
 | 
						|
                        return TRUE;
 | 
						|
                       }
 | 
						|
                 return FALSE;
 | 
						|
                 }
 | 
						|
       else if (NC_GetHasClass(CLASS_TYPE_BARBARIAN, oPC))
 | 
						|
                {
 | 
						|
                if(NC_RaceRestrictedClass(oPC,CLASS_TYPE_BARBARIAN))
 | 
						|
                       {
 | 
						|
                        NC_SendMessage(oPC,NC_RESPONSE_RELEVEL_CLASS,TRUE);
 | 
						|
                        return TRUE;
 | 
						|
                       }
 | 
						|
                 return FALSE;
 | 
						|
                 }
 | 
						|
       else if (NC_GetHasClass(CLASS_TYPE_ASSASSIN, oPC))
 | 
						|
                {
 | 
						|
                if(NC_RaceRestrictedClass(oPC,CLASS_TYPE_ASSASSIN))
 | 
						|
                       {
 | 
						|
                        NC_SendMessage(oPC,NC_RESPONSE_RELEVEL_CLASS,TRUE);
 | 
						|
                        return TRUE;
 | 
						|
                       }
 | 
						|
                 return FALSE;
 | 
						|
                 }
 | 
						|
       else if (NC_GetHasClass(CLASS_TYPE_ARCANE_ARCHER, oPC))
 | 
						|
                {
 | 
						|
                if(NC_RaceRestrictedClass(oPC,CLASS_TYPE_ARCANE_ARCHER))
 | 
						|
                       {
 | 
						|
                        NC_SendMessage(oPC,NC_RESPONSE_RELEVEL_CLASS,TRUE);
 | 
						|
                        return TRUE;
 | 
						|
                       }
 | 
						|
                 return FALSE;
 | 
						|
                 }
 | 
						|
        else if (NC_GetHasClass(CLASS_TYPE_BLACKGUARD, oPC))
 | 
						|
                {
 | 
						|
                if(NC_RaceRestrictedClass(oPC,CLASS_TYPE_BLACKGUARD))
 | 
						|
                       {
 | 
						|
                        NC_SendMessage(oPC,NC_RESPONSE_RELEVEL_CLASS,TRUE);
 | 
						|
                        return TRUE;
 | 
						|
                       }
 | 
						|
                 return FALSE;
 | 
						|
                 }
 | 
						|
        else if (NC_GetHasClass(CLASS_TYPE_DIVINE_CHAMPION, oPC))
 | 
						|
                {
 | 
						|
                if(NC_RaceRestrictedClass(oPC,CLASS_TYPE_DIVINE_CHAMPION))
 | 
						|
                       {
 | 
						|
                        NC_SendMessage(oPC,NC_RESPONSE_RELEVEL_CLASS,TRUE);
 | 
						|
                        return TRUE;
 | 
						|
                       }
 | 
						|
                 return FALSE;
 | 
						|
                 }
 | 
						|
        else if (NC_GetHasClass(CLASS_TYPE_DRAGONDISCIPLE, oPC))
 | 
						|
                {
 | 
						|
                if(NC_RaceRestrictedClass(oPC,CLASS_TYPE_DRAGONDISCIPLE))
 | 
						|
                       {
 | 
						|
                        NC_SendMessage(oPC,NC_RESPONSE_RELEVEL_CLASS,TRUE);
 | 
						|
                        return TRUE;
 | 
						|
                       }
 | 
						|
                 return FALSE;
 | 
						|
                 }
 | 
						|
        else if (NC_GetHasClass(CLASS_TYPE_DWARVEN_DEFENDER, oPC))
 | 
						|
                {
 | 
						|
                if(NC_RaceRestrictedClass(oPC,CLASS_TYPE_DWARVEN_DEFENDER))
 | 
						|
                       {
 | 
						|
                        NC_SendMessage(oPC,NC_RESPONSE_RELEVEL_CLASS,TRUE);
 | 
						|
                        return TRUE;
 | 
						|
                       }
 | 
						|
                 return FALSE;
 | 
						|
                 }
 | 
						|
        else if (NC_GetHasClass(CLASS_TYPE_PALEMASTER, oPC))
 | 
						|
                {
 | 
						|
                if(NC_RaceRestrictedClass(oPC,CLASS_TYPE_PALEMASTER))
 | 
						|
                       {
 | 
						|
                        NC_SendMessage(oPC,NC_RESPONSE_RELEVEL_CLASS,TRUE);
 | 
						|
                        return TRUE;
 | 
						|
                       }
 | 
						|
                 return FALSE;
 | 
						|
                 }
 | 
						|
        else if (NC_GetHasClass(CLASS_TYPE_ROGUE, oPC))
 | 
						|
                {
 | 
						|
                if(NC_RaceRestrictedClass(oPC,CLASS_TYPE_ROGUE))
 | 
						|
                       {
 | 
						|
                        NC_SendMessage(oPC,NC_RESPONSE_RELEVEL_CLASS,TRUE);
 | 
						|
                        return TRUE;
 | 
						|
                       }
 | 
						|
                 return FALSE;
 | 
						|
                 }
 | 
						|
        else if (NC_GetHasClass(CLASS_TYPE_SHADOWDANCER, oPC))
 | 
						|
                {
 | 
						|
                if(NC_RaceRestrictedClass(oPC,CLASS_TYPE_SHADOWDANCER))
 | 
						|
                       {
 | 
						|
                        NC_SendMessage(oPC,NC_RESPONSE_RELEVEL_CLASS,TRUE);
 | 
						|
                        return TRUE;
 | 
						|
                       }
 | 
						|
                 return FALSE;
 | 
						|
                 }
 | 
						|
        else if (NC_GetHasClass(CLASS_TYPE_WEAPON_MASTER, oPC))
 | 
						|
                {
 | 
						|
                if(NC_RaceRestrictedClass(oPC,CLASS_TYPE_WEAPON_MASTER))
 | 
						|
                       {
 | 
						|
                        NC_SendMessage(oPC,NC_RESPONSE_RELEVEL_CLASS,TRUE);
 | 
						|
                        return TRUE;
 | 
						|
                       }
 | 
						|
                 return FALSE;
 | 
						|
                 }
 | 
						|
/*        else if (NC_GetHasClass(CLASS_TYPE_PSION, oPC))
 | 
						|
                {
 | 
						|
                if(NC_RaceRestrictedClass(oPC,CLASS_TYPE_PSION))
 | 
						|
                       {
 | 
						|
                        NC_SendMessage(oPC,NC_RESPONSE_RELEVEL_CLASS,TRUE);
 | 
						|
                        return TRUE;
 | 
						|
                       }
 | 
						|
                 return FALSE;
 | 
						|
                 } */  //No more 2e Psions - DMH
 | 
						|
        else if (NC_GetHasClass(CLASS_TYPE_GLADIATOR, oPC))
 | 
						|
                {
 | 
						|
                if(NC_RaceRestrictedClass(oPC,CLASS_TYPE_GLADIATOR))
 | 
						|
                       {
 | 
						|
                        NC_SendMessage(oPC,NC_RESPONSE_RELEVEL_CLASS,TRUE);
 | 
						|
                        return TRUE;
 | 
						|
                       }
 | 
						|
                 return FALSE;
 | 
						|
                 }
 | 
						|
      return FALSE;
 | 
						|
}
 | 
						|
 | 
						|
int NC_GetIsTemplar(object oPC)
 | 
						|
{
 | 
						|
    if(GetHasFeat(FEAT_TEMPLAR_DOMAIN_POWER, oPC) ||
 | 
						|
       GetHasFeat(FEAT_DREGOTH_DOMAIN_POWER, oPC) ||
 | 
						|
       GetHasFeat(FEAT_HAMANU_DOMAIN_POWER, oPC) ||
 | 
						|
       GetHasFeat(FEAT_NIBENAY_DOMAIN_POWER, oPC) ||
 | 
						|
       GetHasFeat(FEAT_ORONIS_DOMAIN_POWER, oPC) ||
 | 
						|
       GetHasFeat(FEAT_THEOBA_DOMAIN_POWER, oPC))
 | 
						|
                 {
 | 
						|
                 NC_SendMessage(oPC,NC_RESPONSE_FOUND_TEMPLAR_DOMAIN);
 | 
						|
                 return TRUE;
 | 
						|
                 }
 | 
						|
                 else
 | 
						|
                 {
 | 
						|
                 return FALSE;
 | 
						|
                 }
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
void NC_SendMessage(object oPC,string NC_RESPONSE,int nRed=FALSE)
 | 
						|
{
 | 
						|
string sColor = "white";
 | 
						|
 | 
						|
    if(nRed=TRUE)
 | 
						|
    {
 | 
						|
    sColor = "lightred";
 | 
						|
    }
 | 
						|
 | 
						|
    ColorToOne(oPC,NC_RESPONSE, sColor);
 | 
						|
}
 | 
						|
 | 
						|
int NC_RaceRestrictedClass(object oPC,int nCLASS,)
 | 
						|
{
 | 
						|
    string sSubRace = GetSubRace(oPC);
 | 
						|
    sSubRace = GetStringLowerCase(sSubRace);
 | 
						|
    int nReturn=FALSE;
 | 
						|
 | 
						|
    if(sSubRace==SUBRACE_BELGOI)
 | 
						|
            {
 | 
						|
            if(nCLASS == CLASS_TYPE_PALADIN)nReturn=TRUE;
 | 
						|
            if(nCLASS == CLASS_TYPE_SHIFTER)nReturn=TRUE;
 | 
						|
            if(nCLASS == CLASS_TYPE_DRUID)nReturn=TRUE;
 | 
						|
            if(nCLASS == CLASS_TYPE_BARD)nReturn=TRUE;
 | 
						|
            if(nCLASS == CLASS_TYPE_WIZARD)nReturn=TRUE;
 | 
						|
            }
 | 
						|
 | 
						|
    if(sSubRace==SUBRACE_THRAX)
 | 
						|
            {
 | 
						|
            if(nCLASS == CLASS_TYPE_PALADIN)nReturn=TRUE;
 | 
						|
            if(nCLASS == CLASS_TYPE_BARD)nReturn=TRUE;
 | 
						|
            }
 | 
						|
    if(sSubRace==SUBRACE_YUANTI)
 | 
						|
            {
 | 
						|
            if(nCLASS == CLASS_TYPE_PALADIN)nReturn=TRUE;
 | 
						|
            if(nCLASS == CLASS_TYPE_SHIFTER)nReturn=TRUE;
 | 
						|
            if(nCLASS == CLASS_TYPE_DRUID)nReturn=TRUE;
 | 
						|
            if(nCLASS == CLASS_TYPE_WIZARD)nReturn=TRUE;
 | 
						|
            }
 | 
						|
 | 
						|
    if(sSubRace==SUBRACE_ILLITHID)
 | 
						|
            {
 | 
						|
            if(nCLASS == CLASS_TYPE_PALADIN)nReturn=TRUE;
 | 
						|
            if(nCLASS == CLASS_TYPE_SHIFTER)nReturn=TRUE;
 | 
						|
            if(nCLASS == CLASS_TYPE_DRUID)nReturn=TRUE;
 | 
						|
            if(nCLASS == CLASS_TYPE_BARD)nReturn=TRUE;
 | 
						|
            if(nCLASS == CLASS_TYPE_RANGER)nReturn=TRUE;
 | 
						|
            }
 | 
						|
    if(sSubRace==SUBRACE_REGGLID)
 | 
						|
            {
 | 
						|
            if(nCLASS == CLASS_TYPE_PALADIN)nReturn=TRUE;
 | 
						|
            if(nCLASS == CLASS_TYPE_SHIFTER)nReturn=TRUE;
 | 
						|
            if(nCLASS == CLASS_TYPE_DRUID)nReturn=TRUE;
 | 
						|
            if(nCLASS == CLASS_TYPE_BARD)nReturn=TRUE;
 | 
						|
            if(nCLASS == CLASS_TYPE_WIZARD)nReturn=TRUE;
 | 
						|
            }
 | 
						|
    if(sSubRace==SUBRACE_KIRRE)
 | 
						|
        {
 | 
						|
            if(nCLASS == CLASS_TYPE_SORCERER)nReturn=TRUE;
 | 
						|
            if(nCLASS == CLASS_TYPE_BARD)nReturn=TRUE;
 | 
						|
        }
 | 
						|
        if(nReturn)NC_SendMessage(oPC,NC_RESPONSE_RELEVEL_SUBRACE);
 | 
						|
        return nReturn;
 | 
						|
}
 | 
						|
 | 
						|
//void main(){}
 |