8 Commits

Author SHA1 Message Date
Jaysyn904
9405f279d5 2026/04/27 Update
Updated expanded spells & abilities.
Updated PEPS.
Updated Markshire Nomeclature.
Full compile.
2026-04-27 10:21:53 -04:00
Jaysyn904
0ec85e91b7 2026/02/08 Update
Added & activated PRCX.
Full compile.
2026-02-08 23:43:01 -05:00
Jaysyn904
f0453e0f90 2026/02/05 Update
Disabled the PRC_XP_SIMPLE_LA switch.
Full compile.
2026-02-05 14:38:04 -05:00
Jaysyn904
223d71f051 2025/12/01 Updated
Removed unneeded 2DAs from top hak.
Updated NWNxEE libraries
Updated PEPS
Updated nim tooling.
Updated NPC template scripts.
Full compile.
2025-12-01 13:05:25 -05:00
Jaysyn904
9142d652cd 2025/10/24 Update
Renamed and reassociated Expanded Ability hak.
Updated Drow creatures to work with PEPS.
2025-10-24 07:34:20 -04:00
Jaysyn904
051ddf5d7f Updated dm_forge_confg
Updated dm_forge_confg.
Full compile.
2025-10-21 20:01:20 -04:00
Jaysyn904
cbf0febd8b 2025/10/21 Update
Added PEPS AI.
Hopefully stopped "bleed" bug after being healed from dying.
Full compile.
2025-10-21 10:30:05 -04:00
Jaysyn904
aa4680cac9 2025/09/16 Update
XP System was turned off somehow.
2025-09-16 12:36:52 -04:00
1094 changed files with 179041 additions and 34544 deletions

View File

@@ -1,5 +1,5 @@
:loop :loop
"C:\NWN Work\nwnsc.exe" -o -w -n "C:\Games\Steam\steamapps\common\Neverwinter Nights" -i "D:\NWN Repos\PoA_PRC8\_haks\poa_exp_abilities";"D:\NWN Repos\PRC8\nwn\nwnprc\trunk\include" "D:\NWN Repos\PoA_PRC8\_haks\poa_exp_abilities\*.nss" "C:\NWN Work\nwnsc.exe" -o -w -n "C:\Games\Steam\steamapps\common\Neverwinter Nights" -i "D:\NWN Repos\PoA_PRC8\_haks\poa_exp_ability";"D:\NWN Repos\PRC8\nwn\nwnprc\trunk\include" "D:\NWN Repos\PoA_PRC8\_haks\poa_exp_ability\*.nss"
if %errorLevel% == -1 goto :loop if %errorLevel% == -1 goto :loop
"C:\NWN Work\nwnsc.exe" -o -w -n "C:\Games\Steam\steamapps\common\Neverwinter Nights" -i "D:\NWN Repos\PoA_PRC8\_haks\poa_exp_spells";"D:\NWN Repos\PRC8\nwn\nwnprc\trunk\include" "D:\NWN Repos\PoA_PRC8\_haks\poa_exp_spells\*.nss" "C:\NWN Work\nwnsc.exe" -o -w -n "C:\Games\Steam\steamapps\common\Neverwinter Nights" -i "D:\NWN Repos\PoA_PRC8\_haks\poa_exp_spells";"D:\NWN Repos\PRC8\nwn\nwnprc\trunk\include" "D:\NWN Repos\PoA_PRC8\_haks\poa_exp_spells\*.nss"

View File

@@ -8,8 +8,8 @@
"CompileModels": false "CompileModels": false
}, },
{ {
"Name": "poa_exp_abilities", "Name": "poa_exp_ability",
"Path": "./poa_exp_abilities/", "Path": "./poa_exp_ability/",
"CompileModels": false "CompileModels": false
}, },
{ {

Binary file not shown.

View File

@@ -71,6 +71,7 @@ SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_NECROMANCY);
//Enter Metamagic conditions //Enter Metamagic conditions
//-------------------------------------------------------------------------- //--------------------------------------------------------------------------
nDamage = PRCMaximizeOrEmpower(6,nDDice,nMetaMagic); nDamage = PRCMaximizeOrEmpower(6,nDDice,nMetaMagic);
nDamage += SpellDamagePerDice(OBJECT_SELF, nDDice);
int nDuration = nCasterLevel/3; int nDuration = nCasterLevel/3;
if ((nMetaMagic & METAMAGIC_EXTEND)) if ((nMetaMagic & METAMAGIC_EXTEND))

Binary file not shown.

View File

@@ -51,7 +51,7 @@ void main()
nDamage = nDamage / 2; nDamage = nDamage / 2;
} }
//Set the damage effect //Set the damage effect
eDam = EffectDamage(nDamage, DAMAGE_TYPE_COLD); eDam = PRCEffectDamage(oTarget, nDamage, DAMAGE_TYPE_COLD);
//Apply the VFX constant and damage effect //Apply the VFX constant and damage effect
ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget); ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);

Binary file not shown.

View File

@@ -47,10 +47,10 @@ void main()
{ {
nDamage = nDamage / 2; nDamage = nDamage / 2;
} }
eDam = EffectDamage(nDamage, DAMAGE_TYPE_ELECTRICAL); eDam = PRCEffectDamage(oTarget, nDamage, DAMAGE_TYPE_ELECTRICAL);
//Apply the VFX impact and effects //Apply the VFX impact and effects
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget)); SPApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget);
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
} }
//Get next target in spell area //Get next target in spell area
oTarget = GetNextInPersistentObject(); oTarget = GetNextInPersistentObject();

Binary file not shown.

View File

@@ -12,13 +12,29 @@
//:: Created By: Preston Watamaniuk //:: Created By: Preston Watamaniuk
//:: Created On: May 25, 2001 //:: Created On: May 25, 2001
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
//:: Modified By: Brian Greinke
//:: Modified On: 2004/01/30
//:: Re: Added disable/reenable support
//:://////////////////////////////////////////////
//:: Modified By: Jaysyn
//:: Modified On: 2023/02/11
//:: Re: Added PnP Aura behavior support
//:://////////////////////////////////////////////
// Modified 2004/01/30 (Brian Greinke) // Modified 2004/01/30 (Brian Greinke)
// Added disable/reenable support // Added disable/reenable support
#include "prc_alterations" #include "prc_alterations"
#include "utl_i_sqluuid"
void main() void main()
{ {
//:: Declare major variables
object oMob = GetAreaOfEffectCreator();
int bPNPAuras = GetPRCSwitch(PRC_PNP_FEAR_AURAS);
string sMobUUID = GetObjectUUID(oMob);
//first, look to see if effect is already activated //first, look to see if effect is already activated
if ( GetHasSpellEffect(SPELLABILITY_AURA_FEAR, OBJECT_SELF) ) if ( GetHasSpellEffect(SPELLABILITY_AURA_FEAR, OBJECT_SELF) )
{ {
@@ -58,5 +74,5 @@ if(GetLocalInt(GetArea(oCaster), "JAIL")==1)
//Set and apply AOE object //Set and apply AOE object
effect eAOE = EffectAreaOfEffect(AOE_MOB_FEAR); effect eAOE = EffectAreaOfEffect(AOE_MOB_FEAR);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eAOE, OBJECT_SELF, HoursToSeconds(100)); SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eAOE, OBJECT_SELF, HoursToSeconds(100));
} }

Binary file not shown.

View File

@@ -49,9 +49,9 @@ void main()
nDamage = nDamage / 2; nDamage = nDamage / 2;
} }
//Set the damage effect //Set the damage effect
eDam = EffectDamage(nDamage, DAMAGE_TYPE_FIRE); eDam = PRCEffectDamage(oTarget, nDamage, DAMAGE_TYPE_FIRE);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget); SPApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget);
} }
//Get next target in spell area //Get next target in spell area
oTarget = GetNextInPersistentObject(); oTarget = GetNextInPersistentObject();

Binary file not shown.

View File

@@ -26,8 +26,7 @@ void main()
int nDuration = 1 + (GetHitDice(oNPC)/3); int nDuration = 1 + (GetHitDice(oNPC)/3);
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC); int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
int nDC = 10 +nCHAMod+ (GetHitDice(oNPC)/2); int nDC = 10 +nCHAMod+ (GetHitDice(oNPC)/2);
int nLevel = GetCasterLevel(OBJECT_SELF); int nLevel = PRCGetCasterLevel(OBJECT_SELF);
int nMetaMagic = PRCGetMetaMagicFeat();
effect eVis = EffectVisualEffect(VFX_IMP_DOOM); effect eVis = EffectVisualEffect(VFX_IMP_DOOM);
effect eLink = CreateDoomEffectsLink(); effect eLink = CreateDoomEffectsLink();
@@ -39,8 +38,8 @@ void main()
//Spell Resistance and Saving throw //Spell Resistance and Saving throw
if (!/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC)) if (!/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC))
{ {
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink , oTarget, TurnsToSeconds(nDuration)); SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink , oTarget, TurnsToSeconds(nDuration));
} }
} }
} }

View File

@@ -12,12 +12,12 @@
//:: Created By: Preston Watamaniuk //:: Created By: Preston Watamaniuk
//:: Created On:Jan 8, 2002, 2001 //:: Created On:Jan 8, 2002, 2001
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
#include "NW_I0_SPELLS" #include "prc_inc_spells"
//#include "wm_include" //#include "wm_include"
void main() void main()
{ {
//Declare major variables //Declare major variables
effect eProt = CreateProtectionFromAlignmentLink(ALIGNMENT_EVIL); effect eProt = PRCCreateProtectionFromAlignmentLink(ALIGNMENT_EVIL);
effect eGlobe = EffectSpellLevelAbsorption(3, 0); effect eGlobe = EffectSpellLevelAbsorption(3, 0);
effect eDur = EffectVisualEffect(VFX_DUR_GLOBE_MINOR); effect eDur = EffectVisualEffect(VFX_DUR_GLOBE_MINOR);
@@ -30,6 +30,6 @@ void main()
if(GetIsFriend(oTarget, GetAreaOfEffectCreator())) if(GetIsFriend(oTarget, GetAreaOfEffectCreator()))
{ {
//Apply the VFX impact and effects //Apply the VFX impact and effects
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oTarget); SPApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oTarget);
} }
} }

Binary file not shown.

View File

@@ -41,8 +41,8 @@ void main()
if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS)) if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS))
{ {
//Apply the VFX impact and effects //Apply the VFX impact and effects
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)); SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration));
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
} }
} }
} }

Binary file not shown.

View File

@@ -27,7 +27,7 @@ void main()
int nDuration = GetHitDice(oNPC); int nDuration = GetHitDice(oNPC);
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC); int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
int nRacial = GetRacialType(oTarget); int nRacial = MyPRCGetRacialType(oTarget);
int nDC = 10 + nCHAMod + (GetHitDice(oNPC)/2); int nDC = 10 + nCHAMod + (GetHitDice(oNPC)/2);
if(GetIsEnemy(oTarget)) if(GetIsEnemy(oTarget))
@@ -41,7 +41,7 @@ void main()
//if (!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_FEAR)) //:: This ability only affects animals & they don't get a save. //if (!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_FEAR)) //:: This ability only affects animals & they don't get a save.
//{ //{
//Apply the VFX impact and effects //Apply the VFX impact and effects
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)); SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration));
//} //}
} }
} }

Binary file not shown.

View File

@@ -39,7 +39,7 @@ void main()
if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_DEATH)) if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_DEATH))
{ {
//Apply the VFX impact and effects //Apply the VFX impact and effects
ApplyEffectToObject(DURATION_TYPE_INSTANT, eDeath, oTarget); SPApplyEffectToObject(DURATION_TYPE_INSTANT, eDeath, oTarget);
//ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); //ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
} }
} }

View File

@@ -326,7 +326,7 @@ void main()
else if (nFrost>0) else if (nFrost>0)
FloatingTextStringOnCreature("Frostrage failed, invalid weapon", oPC, FALSE); FloatingTextStringOnCreature("Frostrage failed, invalid weapon", oPC, FALSE);
//Apply the VFX impact and effects //Apply the VFX impact and the actual rage effects
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oPC, fDuration); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oPC, fDuration);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC); ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
@@ -434,6 +434,12 @@ void main()
// to determine what the ability scores become after adding the bonuses to them. // to determine what the ability scores become after adding the bonuses to them.
DelayCommand(0.1, GiveExtraRageBonuses(nCon, StrBeforeBonuses, ConBeforeBonuses, iStr, iCon, nSave, DAMAGE_TYPE_BASE_WEAPON, oPC)); DelayCommand(0.1, GiveExtraRageBonuses(nCon, StrBeforeBonuses, ConBeforeBonuses, iStr, iCon, nSave, DAMAGE_TYPE_BASE_WEAPON, oPC));
if(GetLevelByClass(CLASS_TYPE_FORSAKER, oPC) >= 3) //Run feat script if Forsaker lvl3 to increase AC based on CON, then decrease again after it ends
{
ExecuteScript("prc_forsaker", oPC);
DelayCommand(fDuration + 0.1, ExecuteScript("prc_forsaker", oPC));
}
} }
} }
} }

Binary file not shown.

View File

@@ -5,13 +5,13 @@
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
/* /*
Creature must make a ranged touch attack to hit Creature must make a ranged touch attack to hit
the intended target. Reflex or Will save is the intended target.
needed to halve damage or avoid effect.
*/ */
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk //:: Created By: Preston Watamaniuk
//:: Created On: May 11 , 2001 //:: Created On: May 11 , 2001
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
#include "prc_inc_sp_tch"
#include "NW_I0_SPELLS" #include "NW_I0_SPELLS"
#include "prc_inc_spells" #include "prc_inc_spells"
//#include "wm_include" //#include "wm_include"
@@ -44,10 +44,9 @@ void main()
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_ACID)); SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_ACID));
//Adjust the damage based on the Reflex Save, Evasion and Improved Evasion. //Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC,SAVING_THROW_TYPE_ACID); //nDamage = GetReflexAdjustedDamage(nDamage, oTarget, nDC,SAVING_THROW_TYPE_ACID);
//Make a ranged touch attack //Make a ranged touch attack
int nTouch = TouchAttackRanged(oTarget); int nTouch = PRCDoRangedTouchAttack(oTarget);
if(nTouch > 0) if(nTouch > 0)
{ {
if(nTouch == 2) if(nTouch == 2)
@@ -59,8 +58,8 @@ void main()
if(nDamage > 0) if(nDamage > 0)
{ {
//Apply the VFX impact and effects //Apply the VFX impact and effects
ApplyEffectToObject(DURATION_TYPE_INSTANT, eBolt, oTarget); SPApplyEffectToObject(DURATION_TYPE_INSTANT, eBolt, oTarget);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
} }
} }
} }

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More