2026/04/03
Summon Undead now uses PRCGetSpellId(). Ectoplasmic Enhancement now doesn't quit after testing a non-undead. Warmage no longer has infinite casts of Disrupt Undead. Crushing Despair now respects Mind Immunity. Incendiary Cloud now uses MyFirstObjectInShape() and MyNextObjectInShape(). Tweaked prc_s_spellb.nss to always pass oPC to GetSlotCount() since the function is OBJECT_INVALID by default. Tweaked prc_prereq.nss to always pass oPC to GetSlotCount() since the function is OBJECT_INVALID by default. Form of Doom's Fear Aura now respects Mind Immunity and Fear Immunity. Dread Necromancer's Fear Aura now respects Mind Immunity. Summon Undead skeletons not how the correct resistances. Enlighted Fist & Dragon Disciple can now qualify for Improved Spell Resistance. Cerebremancer can now take Bane Magic.
This commit is contained in:
@@ -258,8 +258,8 @@ void main()
|
||||
int nAbilityScore = GetAbilityScoreForClass(nClass, oPC);
|
||||
int nClassLevel = GetLevelByPosition(i, oPC);
|
||||
if(nClassLevel
|
||||
&& (GetSlotCount(nClassLevel, 0, nAbilityScore, nClass)
|
||||
|| GetSlotCount(nClassLevel, 1, nAbilityScore, nClass)))
|
||||
&& (GetSlotCount(nClassLevel, 0, nAbilityScore, nClass, oPC)
|
||||
|| GetSlotCount(nClassLevel, 1, nAbilityScore, nClass, oPC)))
|
||||
{
|
||||
string sClassName = GetStringByStrRef(StringToInt(Get2DACache("classes", "Name", nClass)));
|
||||
GenerateSpellsMemorizedCache(nClass, oPC);
|
||||
@@ -291,7 +291,7 @@ void main()
|
||||
{
|
||||
// for every spell level, determine the slot count, and if it is non-zero add a choice
|
||||
// we do not break out of the loop on an empty slot count, because of bonus slot counts from items there might be gaps
|
||||
if(GetSlotCount(nCasterLevel, nSpellSlotLevel, nAbilityScore, nClass))
|
||||
if(GetSlotCount(nCasterLevel, nSpellSlotLevel, nAbilityScore, nClass, oPC))
|
||||
{
|
||||
AddChoice(sChoiceSpellLevel +IntToString(nSpellSlotLevel), nSpellSlotLevel, oPC);
|
||||
nChoiceAdded = TRUE;
|
||||
|
||||
@@ -34,7 +34,7 @@ void main()
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(GetAreaOfEffectCreator(), SPELLABILITY_AURA_FEAR));
|
||||
//Make a saving throw check
|
||||
if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_FEAR) && !GetIsImmune(oTarget, IMMUNITY_TYPE_FEAR))
|
||||
if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_FEAR) && !GetIsImmune(oTarget, IMMUNITY_TYPE_FEAR) && !GetIsImmune(oTarget, IMMUNITY_TYPE_MIND_SPELLS))
|
||||
{
|
||||
//Apply the VFX impact and effects
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectShaken(), oTarget, RoundsToSeconds(GetLevelByClass(CLASS_TYPE_DREAD_NECROMANCER, GetAreaOfEffectCreator())));
|
||||
|
||||
@@ -1877,7 +1877,7 @@ void main()
|
||||
|
||||
for(nSpellLevel = 0; nSpellLevel <= 9; nSpellLevel++)
|
||||
{
|
||||
int nSlots = GetSlotCount(nLevel, nSpellLevel, nAbility, nClass);
|
||||
int nSlots = GetSlotCount(nLevel, nSpellLevel, nAbility, nClass, oPC);
|
||||
if(nSlots > 0)
|
||||
{
|
||||
SetLocalInt(oPC, "PRC_AllSpell"+IntToString(nSpellLevel), 0);
|
||||
@@ -1928,7 +1928,7 @@ void main()
|
||||
|
||||
for(nSpellLevel = 0; nSpellLevel <= 9; nSpellLevel++)
|
||||
{
|
||||
int nSlots = GetSlotCount(nLevel, nSpellLevel, nAbility, nClass);
|
||||
int nSlots = GetSlotCount(nLevel, nSpellLevel, nAbility, nClass, oPC);
|
||||
if(nSlots > 0)
|
||||
{
|
||||
SetLocalInt(oPC, "PRC_AllSpell"+IntToString(nSpellLevel), 0);
|
||||
|
||||
Reference in New Issue
Block a user