NWNDS/nwnds_module/nc_inc_levelup.nss
Jaysyn904 de24f81734 Added NWN Dark Sun module contents
Added NWN Dark Sun module contents.
2021-07-12 21:24:46 -04:00

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(){}