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

70 lines
2.6 KiB
Plaintext

#include "nc_inc_levelup"
void main()
{
object oLeveling = GetPCLevellingUp();
int nHD = GetHitDice(oLeveling);
if (nHD <= 3)
{
int nStr = GetAbilityScore(oLeveling, ABILITY_STRENGTH, TRUE);
int nDex = GetAbilityScore(oLeveling, ABILITY_DEXTERITY, TRUE);
int nCon = GetAbilityScore(oLeveling, ABILITY_CONSTITUTION, TRUE);
int nWis = GetAbilityScore(oLeveling, ABILITY_WISDOM, TRUE);
int nInt = GetAbilityScore(oLeveling, ABILITY_INTELLIGENCE, TRUE);
int nCha = GetAbilityScore(oLeveling, ABILITY_CHARISMA, TRUE);
if ((nStr <= 3) ||
(nDex <= 3) ||
(nCon <= 3) ||
(nWis <= 3) ||
(nInt <= 3) ||
(nCha <= 3))
{
FloatingTextStringOnCreature("Invalid PC Ability Scores: All ability scores must be 3 or higher.", oLeveling, TRUE);
DelayCommand(2.0f, FloatingTextStringOnCreature("You will have to delete this character & create another one with valid scores.", oLeveling, TRUE));
NC_RelevelPC(oLeveling);
}
}
int nClericLevel = GetLevelByClass(CLASS_TYPE_CLERIC, oLeveling);
if (NC_GetHasClass(CLASS_TYPE_CLERIC, oLeveling)==TRUE)
{
NC_SendMessage(oLeveling, NC_RESPONSE_FOUND_CLERIC);
NC_SendMessage(oLeveling, NC_RESPONSE_CHECK_CLERIC);
if (NC_GetIsTemplar(oLeveling))
{
if (NC_TemplarCheck(oLeveling)==TRUE)
{
NC_RelevelPC(oLeveling);
}
}
else if (!NC_CheckClericElementalDomains(oLeveling) || !NC_CheckClericBasicDomains(oLeveling))
{
NC_SendMessage(oLeveling,NC_RESPONSE_RELEVEL_DOMAIN);
NC_RelevelPC(oLeveling);
}
else if (NC_CheckClassRestrictions(oLeveling))
{
NC_RelevelPC(oLeveling);
}
if (nHD > 2)
{
int nMin = ((nHD * (nHD - 1)) / 2) * 1000;
SetXP(oLeveling, nMin);
}
NC_GiveClericSymbol(oLeveling);
}
else if (NC_CheckClassRestrictions(oLeveling))
{
NC_RelevelPC(oLeveling);
}
//Set total xp cap after 2nd level.
else if (nHD > 2)
{
int nMin = ((nHD * (nHD - 1)) / 2) * 1000;
SetXP(oLeveling, nMin);
}
}