8 class slot support for arcane & divine casters

8 class slot support for arcane & divine casters.  Added Marker feat enforcement script.  Expanded LA buyoff to 60 HD.  Marker feat constant bug fixes.
This commit is contained in:
Jaysyn904
2023-08-03 18:47:42 -04:00
parent a701b00420
commit d3de7f3987
20 changed files with 4307 additions and 73264 deletions

View File

@@ -1934,8 +1934,8 @@ int ReserveFeats()
int nClass = GetPrimarySpellcastingClass(oPC);
int nLevel = GetLevelByClass(nClass, oPC);
if (GetIsDivineClass(nClass, oPC)) nLevel += GetDivinePRCLevels(oPC);
else if (GetIsArcaneClass(nClass, oPC)) nLevel += GetArcanePRCLevels(oPC);
if (GetIsDivineClass(nClass, oPC)) nLevel += GetDivinePRCLevels(oPC, nClass);
else if (GetIsArcaneClass(nClass, oPC)) nLevel += GetArcanePRCLevels(oPC, nClass);
int nSpellLevelKnown = GetMaxSpellLevelForCasterLevel(nClass, nLevel);

File diff suppressed because it is too large Load Diff

View File

@@ -46,6 +46,9 @@ void main()
// Check to see which special prc requirements (i.e. those that can't be done)
// through the .2da's, the newly leveled up player meets.
DelayCommand(0.5, ExecuteScript("prc_prereq", oPC)); // Delayed so that deleveling gets to happen before it.
//:: Run PrC marker feat check
ExecuteScript("prc_enforce_mark", oPC);
ExecuteScript("prc_enforce_feat", oPC);
ExecuteScript("prc_enforce_psi", oPC);
//Restore Power Points for Psionics

View File

@@ -165,13 +165,29 @@ void Dragonheart(object oPC)
}
void Cultist(object oPC)
{
SetLocalInt(oPC, "PRC_PrereqCultist", 1);
// Can't be arcane
int i;
for (i = 1; i <= 8; i++)
{
if (GetIsArcaneClass(GetClassByPosition(i, oPC)))
{
SetLocalInt(oPC, "PRC_PrereqCultist", 0);
break;
}
}
}
/* void Cultist(object oPC)
{
SetLocalInt(oPC, "PRC_PrereqCultist", 1);
// Can't be arcane
if(!GetIsArcaneClass(GetClassByPosition(1, oPC)) && (!GetIsArcaneClass(GetClassByPosition(2, oPC)) || GetClassByPosition(2, oPC) == CLASS_TYPE_CULTIST_SHATTERED_PEAK))
SetLocalInt(oPC, "PRC_PrereqCultist", 0);
}
} */
void Shifter(object oPC, int iArcSpell, int iDivSpell)
{
@@ -1316,7 +1332,7 @@ void main()
if (!bFirstDivClassFound &&
GetPrimaryDivineClass(oPC) == nClass)
{
nLevel += GetDivinePRCLevels(oPC);
nLevel += GetDivinePRCLevels(oPC, nClass);
bFirstDivClassFound = TRUE;
}
int nAbility = GetAbilityScoreForClass(nClass, oPC);
@@ -1357,7 +1373,7 @@ void main()
if (!bFirstArcClassFound &&
(GetPrimaryArcaneClass(oPC) == nClass || nMonsterCaster))
{
nLevel += GetArcanePRCLevels(oPC);
nLevel += GetArcanePRCLevels(oPC, nClass);
bFirstArcClassFound = TRUE;
}
int nAbility = GetAbilityScoreForClass(nClass, oPC);