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:
@@ -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);
|
||||
|
||||
|
3894
trunk/scripts/prc_enforce_mark.nss
Normal file
3894
trunk/scripts/prc_enforce_mark.nss
Normal file
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
|
@@ -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);
|
||||
|
Reference in New Issue
Block a user