2026/04/27 Update

Updated expanded spells & abilities.
Updated PEPS.
Updated Markshire Nomeclature.
Full compile.
This commit is contained in:
Jaysyn904
2026-04-27 10:21:53 -04:00
parent 0ec85e91b7
commit 9405f279d5
484 changed files with 1739 additions and 2757 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

@@ -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))

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);

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();

View File

@@ -12,14 +12,30 @@
//:: 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()
{ {
//first, look to see if effect is already activated //:: 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
if ( GetHasSpellEffect(SPELLABILITY_AURA_FEAR, OBJECT_SELF) ) if ( GetHasSpellEffect(SPELLABILITY_AURA_FEAR, OBJECT_SELF) )
{ {
PRCRemoveSpellEffects( SPELLABILITY_AURA_FEAR, OBJECT_SELF, OBJECT_SELF ); PRCRemoveSpellEffects( SPELLABILITY_AURA_FEAR, OBJECT_SELF, 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));
} }

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();

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);
} }
} }

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);
} }
} }
} }

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));
//} //}
} }
} }

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));
}
} }
} }
} }

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);
} }
} }
} }

View File

@@ -5,16 +5,17 @@
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
/* /*
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
//:: Updated On: July 15, 2003 Georg Zoeller - Removed saving throws
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
#include "prc_inc_spells" #include "prc_inc_spells"
//#include "wm_include" //#include "wm_include"
#include "NW_I0_SPELLS" #include "NW_I0_SPELLS"
#include "prc_inc_sp_tch"
void main() void main()
{ {
//if (WildMagicOverride()) { return; } //if (WildMagicOverride()) { return; }
@@ -35,13 +36,15 @@ void main()
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE); effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
effect eLink = EffectLinkEffects(eBolt, eDur); effect eLink = EffectLinkEffects(eBolt, eDur);
//Fire cast spell at event for the specified target //Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_CHARM)); SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_CHARM));
//Make a saving throw check //Make a saving throw check
if (!/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS) && TouchAttackRanged(oTarget)) if (PRCDoRangedTouchAttack(oTarget))
{ {
//Apply the VFX impact and effects
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCount)); //Apply the VFX impact and effects
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCount));
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
} }
} }

View File

@@ -5,15 +5,16 @@
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
/* /*
Creature must make a ranged touch attack to hit Creature must make a ranged touch attack to hit
the intended target. Fortitude save is the intended target.
needed to avoid effect.
*/ */
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk //:: Created By: Preston Watamaniuk
//:: Created On: May 11 , 2001 //:: Created On: May 11 , 2001
//:: Updated On: July 15, 2003 Georg Zoeller - Removed saving throws
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
#include "NW_I0_SPELLS" #include "NW_I0_SPELLS"
#include "prc_inc_spells" #include "prc_inc_spells"
#include "prc_inc_sp_tch"
//#include "wm_include" //#include "wm_include"
void main() void main()
@@ -37,12 +38,12 @@ void main()
//Fire cast spell at event for the specified target //Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_ABILITY_DRAIN_CHARISMA)); SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_ABILITY_DRAIN_CHARISMA));
//Make a saving throw check //Make a saving throw check
if (!/*Fort Save*/ PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE) && TouchAttackRanged(oTarget)) if (PRCDoRangedTouchAttack(oTarget))
{ {
eBolt = EffectAbilityDecrease(ABILITY_CHARISMA, nCount); eBolt = EffectAbilityDecrease(ABILITY_CHARISMA, nCount);
eBolt = SupernaturalEffect(eBolt); eBolt = SupernaturalEffect(eBolt);
//Apply the VFX impact and effects //Apply the VFX impact and effects
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBolt, oTarget, RoundsToSeconds(nHD)); SPApplyEffectToObject(DURATION_TYPE_PERMANENT, eBolt, oTarget, RoundsToSeconds(nHD));
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
} }
} }

View File

@@ -5,16 +5,17 @@
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
/* /*
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
//:: Updated On: July 15, 2003 Georg Zoeller - Removed saving throws
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
#include "NW_I0_SPELLS" #include "NW_I0_SPELLS"
#include "prc_inc_spells" #include "prc_inc_spells"
//#include "wm_include" //#include "wm_include"
#include "prc_inc_sp_tch"
void main() void main()
{ {
@@ -41,7 +42,7 @@ void main()
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC,SAVING_THROW_TYPE_COLD); nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC,SAVING_THROW_TYPE_COLD);
//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)
@@ -53,8 +54,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);
} }
} }
} }

View File

@@ -5,15 +5,16 @@
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
/* /*
Creature must make a ranged touch attack to hit Creature must make a ranged touch attack to hit
the intended target. Fort save is the intended target.
needed to avoid effect.
*/ */
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk //:: Created By: Preston Watamaniuk
//:: Created On: May 11 , 2001 //:: Created On: May 11 , 2001
//:: Updated On: July 15, 2003 Georg Zoeller - Removed saving throws
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
#include "NW_I0_SPELLS"
#include "prc_inc_spells" #include "prc_inc_spells"
#include "prc_inc_sp_tch"
#include "NW_I0_SPELLS"
//#include "wm_include" //#include "wm_include"
void main() void main()
@@ -37,12 +38,12 @@ void main()
//Fire cast spell at event for the specified target //Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_ABILITY_DRAIN_CONSTITUTION)); SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_ABILITY_DRAIN_CONSTITUTION));
//Make a saving throw check //Make a saving throw check
if (!/*Fort Save*/ PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE) && TouchAttackRanged(oTarget)) if (PRCDoRangedTouchAttack(oTarget))
{ {
eBolt = EffectAbilityDecrease(ABILITY_CONSTITUTION, nCount); eBolt = EffectAbilityDecrease(ABILITY_CONSTITUTION, nCount);
eBolt = SupernaturalEffect(eBolt); eBolt = SupernaturalEffect(eBolt);
//Apply the VFX impact and effects //Apply the VFX impact and effects
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBolt, oTarget, RoundsToSeconds(nHD)); SPApplyEffectToObject(DURATION_TYPE_PERMANENT, eBolt, oTarget, RoundsToSeconds(nHD));
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
} }
} }

View File

@@ -5,16 +5,18 @@
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
/* /*
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
//:: Updated On: July 15, 2003 Georg Zoeller - Removed saving throws
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
#include "prc_inc_spells" #include "prc_inc_spells"
//#include "wm_include" #include "prc_inc_sp_tch"
#include "NW_I0_SPELLS" #include "NW_I0_SPELLS"
//#include "wm_include"
void main() void main()
{ {
//if (WildMagicOverride()) { return; } //if (WildMagicOverride()) { return; }
@@ -37,12 +39,12 @@ void main()
eLink = EffectLinkEffects(eLink, eVis); eLink = EffectLinkEffects(eLink, eVis);
//Fire cast spell at event for the specified target //Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_CONFUSE)); SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_CONFUSE));
//Make a saving throw check //Make a saving throw check
if (!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS) && TouchAttackRanged(oTarget)) if (PRCDoRangedTouchAttack(oTarget))
{ {
//Apply the VFX impact and effects //Apply the VFX impact and effects
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCount)); SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCount));
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis2, oTarget); SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis2, oTarget);
} }
} }

View File

@@ -5,14 +5,15 @@
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
/* /*
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
//:: Updated On: July 15, 2003 Georg Zoeller - Removed saving throws
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
#include "prc_inc_spells" #include "prc_inc_spells"
#include "prc_inc_sp_tch"
//#include "wm_include" //#include "wm_include"
#include "NW_I0_SPELLS" #include "NW_I0_SPELLS"
void main() void main()
@@ -39,9 +40,9 @@ void main()
//Fire cast spell at event for the specified target //Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_DAZE)); SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_DAZE));
//Make a saving throw check //Make a saving throw check
if (!/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS) && TouchAttackRanged(oTarget)) if (PRCDoRangedTouchAttack(oTarget))
{ {
//Apply the VFX impact and effects //Apply the VFX impact and effects
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCount)); SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCount));
} }
} }

View File

@@ -5,15 +5,16 @@
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
/* /*
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
//:: Updated On: July 15, 2003 Georg Zoeller - Removed saving throws
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
#include "NW_I0_SPELLS"
#include "prc_inc_spells" #include "prc_inc_spells"
#include "prc_inc_sp_tch"
#include "NW_I0_SPELLS"
//#include "wm_include" //#include "wm_include"
void main() void main()
@@ -34,14 +35,11 @@ void main()
//Fire cast spell at event for the specified target //Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_DEATH)); SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_DEATH));
//Make a saving throw check //Make a saving throw check
if(TouchAttackRanged(oTarget)) if(PRCDoRangedTouchAttack(oTarget))
{ {
if(!PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_DEATH))
{
//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); //ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
}
} }
} }

View File

@@ -5,15 +5,16 @@
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
/* /*
Creature must make a ranged touch attack to hit Creature must make a ranged touch attack to hit
the intended target. Fort save is the intended target.
needed to avoid effect.
*/ */
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk //:: Created By: Preston Watamaniuk
//:: Created On: May 11 , 2001 //:: Created On: May 11 , 2001
//:: Updated On: July 15, 2003 Georg Zoeller - Removed saving throws
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
#include "NW_I0_SPELLS"
#include "prc_inc_spells" #include "prc_inc_spells"
#include "prc_inc_sp_tch"
#include "NW_I0_SPELLS"
//#include "wm_include" //#include "wm_include"
void main() void main()
@@ -37,12 +38,12 @@ void main()
//Fire cast spell at event for the specified target //Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_ABILITY_DRAIN_DEXTERITY)); SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_ABILITY_DRAIN_DEXTERITY));
//Make a saving throw check //Make a saving throw check
if (!/*Fort Save*/ PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE) && TouchAttackRanged(oTarget)) if (PRCDoRangedTouchAttack(oTarget))
{ {
eBolt = EffectAbilityDecrease(ABILITY_DEXTERITY, nCount); eBolt = EffectAbilityDecrease(ABILITY_DEXTERITY, nCount);
eBolt = SupernaturalEffect(eBolt); eBolt = SupernaturalEffect(eBolt);
//Apply the VFX impact and effects //Apply the VFX impact and effects
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBolt, oTarget, RoundsToSeconds(nHD)); SPApplyEffectToObject(DURATION_TYPE_PERMANENT, eBolt, oTarget, RoundsToSeconds(nHD));
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
} }
} }

View File

@@ -12,9 +12,11 @@
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk //:: Created By: Preston Watamaniuk
//:: Created On: May 11 , 2001 //:: Created On: May 11 , 2001
//:: Updated On: July 15, 2003 Georg Zoeller - Removed saving throws
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
#include "NW_I0_SPELLS"
#include "prc_inc_spells" #include "prc_inc_spells"
#include "prc_inc_sp_tch"
#include "NW_I0_SPELLS"
//#include "wm_include" //#include "wm_include"
void main() void main()
@@ -65,9 +67,9 @@ void main()
//Assign effect and chosen disease //Assign effect and chosen disease
effect eBolt = EffectDisease(nDisease); effect eBolt = EffectDisease(nDisease);
//Make the ranged touch attack. //Make the ranged touch attack.
if (TouchAttackRanged(oTarget)) if (PRCDoRangedTouchAttack(oTarget))
{ {
//Apply the VFX impact and effects //Apply the VFX impact and effects
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBolt, oTarget); SPApplyEffectToObject(DURATION_TYPE_PERMANENT, eBolt, oTarget);
} }
} }

View File

@@ -5,15 +5,16 @@
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
/* /*
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
//:: Updated On: July 15, 2003 Georg Zoeller - Removed saving throws
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
#include "NW_I0_SPELLS"
#include "prc_inc_spells" #include "prc_inc_spells"
#include "prc_inc_sp_tch"
#include "NW_I0_SPELLS"
//#include "wm_include" //#include "wm_include"
void main() void main()
@@ -44,10 +45,10 @@ void main()
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_DOMINATE)); SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_DOMINATE));
//Make a saving throw check //Make a saving throw check
if (!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS) && TouchAttackRanged(oTarget)) if (PRCDoRangedTouchAttack(oTarget))
{ {
//Apply the VFX impact and effects //Apply the VFX impact and effects
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCount)); SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCount));
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
} }
} }

View File

@@ -11,9 +11,11 @@
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk //:: Created By: Preston Watamaniuk
//:: Created On: May 11 , 2001 //:: Created On: May 11 , 2001
//:: Updated On: July 15, 2003 Georg Zoeller - Removed saving throws
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
#include "NW_I0_SPELLS"
#include "prc_inc_spells" #include "prc_inc_spells"
#include "prc_inc_sp_tch"
#include "NW_I0_SPELLS"
//#include "wm_include" //#include "wm_include"
void main() void main()
@@ -37,9 +39,9 @@ void main()
//Fire cast spell at event for the specified target //Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_FIRE)); SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_FIRE));
//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_FIRE); //nDamage = GetReflexAdjustedDamage(nDamage, oTarget, nDC,SAVING_THROW_TYPE_FIRE);
//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)
@@ -47,12 +49,12 @@ void main()
nDamage *= 2; nDamage *= 2;
} }
//Set damage effect //Set damage effect
eBolt = EffectDamage(nDamage, DAMAGE_TYPE_FIRE); eBolt = PRCEffectDamage(oTarget, nDamage, DAMAGE_TYPE_FIRE);
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);
} }
} }
} }

View File

@@ -5,15 +5,16 @@
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
/* /*
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
//:: Updated On: July 15, 2003 Georg Zoeller - Removed saving throws
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
#include "NW_I0_SPELLS"
#include "prc_inc_spells" #include "prc_inc_spells"
#include "prc_inc_sp_tch"
#include "NW_I0_SPELLS"
//#include "wm_include" //#include "wm_include"
void main() void main()
@@ -37,12 +38,12 @@ void main()
//Fire cast spell at event for the specified target //Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_ABILITY_DRAIN_INTELLIGENCE)); SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_ABILITY_DRAIN_INTELLIGENCE));
//Make a saving throw check //Make a saving throw check
if (!/*Fort Save*/ PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE) && TouchAttackRanged(oTarget)) if (PRCDoRangedTouchAttack(oTarget))
{ {
eBolt = EffectAbilityDecrease(ABILITY_INTELLIGENCE, nCount); eBolt = EffectAbilityDecrease(ABILITY_INTELLIGENCE, nCount);
eBolt = SupernaturalEffect(eBolt); eBolt = SupernaturalEffect(eBolt);
//Apply the VFX impact and effects //Apply the VFX impact and effects
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBolt, oTarget, RoundsToSeconds(nHD)); SPApplyEffectToObject(DURATION_TYPE_PERMANENT, eBolt, oTarget, RoundsToSeconds(nHD));
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
} }
} }

View File

@@ -5,15 +5,16 @@
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
/* /*
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
//:: Updated On: July 15, 2003 Georg Zoeller - Removed saving throws
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
#include "NW_I0_SPELLS"
#include "prc_inc_spells" #include "prc_inc_spells"
#include "prc_inc_sp_tch"
#include "NW_I0_SPELLS"
//#include "wm_include" //#include "wm_include"
void main() void main()
@@ -41,8 +42,8 @@ void main()
if (!/*Reflex Save*/ PRCMySavingThrow(SAVING_THROW_REFLEX, oTarget, nDC) && TouchAttackRanged(oTarget)) if (!/*Reflex Save*/ PRCMySavingThrow(SAVING_THROW_REFLEX, oTarget, nDC) && TouchAttackRanged(oTarget))
{ {
//Apply the VFX impact and effects //Apply the VFX impact and effects
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eBolt, oTarget, RoundsToSeconds(3)); SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eBolt, oTarget, RoundsToSeconds(3));
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget); SPApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget);
} }
} }

View File

@@ -4,15 +4,16 @@
//:: Copyright (c) 2001 Bioware Corp. //:: Copyright (c) 2001 Bioware Corp.
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
/* /*
Does 1d6 per level to a single target. Reflex Does 1d6 per level to a single target.
save for half
*/ */
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk //:: Created By: Preston Watamaniuk
//:: Created On: Aug 10, 2001 //:: Created On: Aug 10, 2001
//:: Updated On: July 15, 2003 Georg Zoeller - Removed saving throws
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
#include "NW_I0_SPELLS"
#include "prc_inc_spells" #include "prc_inc_spells"
#include "prc_inc_sp_tch"
#include "NW_I0_SPELLS"
//#include "wm_include" //#include "wm_include"
void main() void main()
@@ -37,9 +38,9 @@ void main()
//Fire cast spell at event for the specified target //Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_LIGHTNING)); SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_LIGHTNING));
//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_ELECTRICITY); //nDamage = GetReflexAdjustedDamage(nDamage, oTarget, nDC,SAVING_THROW_TYPE_ELECTRICITY);
//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)
@@ -47,13 +48,11 @@ void main()
nDamage *= 2; nDamage *= 2;
} }
//Set damage effect //Set damage effect
eBolt = EffectDamage(nDamage, DAMAGE_TYPE_ELECTRICAL); eBolt = PRCEffectDamage(oTarget, nDamage, DAMAGE_TYPE_ELECTRICAL);
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);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLightning, oTarget, 1.7);
} }
} }
} }

View File

@@ -5,15 +5,16 @@
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
/* /*
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
//:: Updated On: July 15, 2003 Georg Zoeller - Removed saving throws
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
#include "NW_I0_SPELLS"
#include "prc_inc_spells" #include "prc_inc_spells"
#include "prc_inc_sp_tch"
#include "NW_I0_SPELLS"
//#include "wm_include" //#include "wm_include"
void main() void main()
@@ -38,12 +39,12 @@ void main()
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_LEVEL_DRAIN)); SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_LEVEL_DRAIN));
//Make a saving throw check //Make a saving throw check
if (!/*Fort Save*/ PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE) && TouchAttackRanged(oTarget)) if (PRCDoRangedTouchAttack(oTarget))
{ {
//eBolt = LEVEL DRAIN EFFECT //eBolt = LEVEL DRAIN EFFECT
eBolt = SupernaturalEffect(eBolt); eBolt = SupernaturalEffect(eBolt);
//Apply the VFX impact and effects //Apply the VFX impact and effects
ApplyEffectToObject(DURATION_TYPE_INSTANT, eBolt, oTarget); SPApplyEffectToObject(DURATION_TYPE_PERMANENT, eBolt, oTarget);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
} }
} }

View File

@@ -5,15 +5,16 @@
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
/* /*
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
//:: Updated On: July 15, 2003 Georg Zoeller - Removed saving throws
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
#include "NW_I0_SPELLS"
#include "prc_inc_spells" #include "prc_inc_spells"
#include "prc_inc_sp_tch"
#include "NW_I0_SPELLS"
//#include "wm_include" //#include "wm_include"
void main() void main()
@@ -40,9 +41,9 @@ void main()
//Fire cast spell at event for the specified target //Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_PARALYZE)); SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_PARALYZE));
//Make a saving throw check //Make a saving throw check
if (!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC) && TouchAttackRanged(oTarget)) if (PRCDoRangedTouchAttack(oTarget))
{ {
//Apply the VFX impact and effects //Apply the VFX impact and effects
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCount)); SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCount));
} }
} }

View File

@@ -12,8 +12,9 @@
//:: Created By: Preston Watamaniuk //:: Created By: Preston Watamaniuk
//:: Created On: May 22, 2001 //:: Created On: May 22, 2001
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
#include "NW_I0_SPELLS"
#include "prc_inc_spells" #include "prc_inc_spells"
#include "prc_inc_sp_tch"
#include "NW_I0_SPELLS"
//#include "wm_include" //#include "wm_include"
void main() void main()
@@ -34,6 +35,7 @@ void main()
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_POISON)); SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_POISON));
//Determine the poison type based on the Racial Type and HD //Determine the poison type based on the Racial Type and HD
// June 3/04: Bugfix for some screwy if statements.
switch (nRacial) switch (nRacial)
{ {
case RACIAL_TYPE_OUTSIDER: case RACIAL_TYPE_OUTSIDER:
@@ -41,11 +43,11 @@ void main()
{ {
nPoison = POISON_QUASIT_VENOM; nPoison = POISON_QUASIT_VENOM;
} }
else if (nHD > 9 && nHD < 13) else if (nHD < 13)
{ {
nPoison = POISON_BEBILITH_VENOM; nPoison = POISON_BEBILITH_VENOM;
} }
else if (nHD >= 13) else //if (nHD >= 13) //if statement not actually needed...
{ {
nPoison = POISON_PIT_FIEND_ICHOR; nPoison = POISON_PIT_FIEND_ICHOR;
} }
@@ -55,27 +57,27 @@ void main()
{ {
nPoison = POISON_TINY_SPIDER_VENOM; nPoison = POISON_TINY_SPIDER_VENOM;
} }
else if (nHD <= 3 && nHD < 6) else if (nHD < 6)
{ {
nPoison = POISON_SMALL_SPIDER_VENOM; nPoison = POISON_SMALL_SPIDER_VENOM;
} }
else if (nHD <= 6 && nHD < 9) else if (nHD < 9)
{ {
nPoison = POISON_MEDIUM_SPIDER_VENOM; nPoison = POISON_MEDIUM_SPIDER_VENOM;
} }
else if (nHD <= 9 && nHD < 12) else if (nHD < 12)
{ {
nPoison = POISON_LARGE_SPIDER_VENOM; nPoison = POISON_LARGE_SPIDER_VENOM;
} }
else if (nHD <= 12 && nHD < 15) else if (nHD < 15)
{ {
nPoison = POISON_HUGE_SPIDER_VENOM; nPoison = POISON_HUGE_SPIDER_VENOM;
} }
else if (nHD <= 15 && nHD < 18) else if (nHD < 18)
{ {
nPoison = POISON_GARGANTUAN_SPIDER_VENOM; nPoison = POISON_GARGANTUAN_SPIDER_VENOM;
} }
else if (nHD >= 18) else //if (nHD >= 18)
{ {
nPoison = POISON_COLOSSAL_SPIDER_VENOM; nPoison = POISON_COLOSSAL_SPIDER_VENOM;
} }
@@ -85,27 +87,27 @@ void main()
{ {
nPoison = POISON_NIGHTSHADE; nPoison = POISON_NIGHTSHADE;
} }
else if (nHD <= 3 && nHD < 6) else if (nHD < 6)
{ {
nPoison = POISON_BLADE_BANE; nPoison = POISON_BLADE_BANE;
} }
else if (nHD <= 6 && nHD < 9) else if (nHD < 9)
{ {
nPoison = POISON_BLOODROOT; nPoison = POISON_BLOODROOT;
} }
else if (nHD <= 9 && nHD < 12) else if (nHD < 12)
{ {
nPoison = POISON_LARGE_SPIDER_VENOM; nPoison = POISON_LARGE_SPIDER_VENOM;
} }
else if (nHD <= 12 && nHD < 15) else if (nHD < 15)
{ {
nPoison = POISON_LICH_DUST; nPoison = POISON_LICH_DUST;
} }
else if (nHD <= 15 && nHD < 18) else if (nHD < 18)
{ {
nPoison = POISON_DARK_REAVER_POWDER; nPoison = POISON_DARK_REAVER_POWDER;
} }
else if (nHD >= 18 ) else //if (nHD >= 18 )
{ {
nPoison = POISON_BLACK_LOTUS_EXTRACT; nPoison = POISON_BLACK_LOTUS_EXTRACT;
} }
@@ -113,11 +115,11 @@ void main()
break; break;
} }
//Make a ranged touch attack //Make a ranged touch attack
if (TouchAttackRanged (oTarget)) if (PRCDoRangedTouchAttack (oTarget))
{ {
ePoison = EffectPoison(nPoison); ePoison = EffectPoison(nPoison);
//Apply effects //Apply effects
ApplyEffectToObject(DURATION_TYPE_PERMANENT, ePoison, oTarget); SPApplyEffectToObject(DURATION_TYPE_PERMANENT, ePoison, oTarget);
} }
} }

View File

@@ -5,15 +5,16 @@
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
/* /*
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
//:: Updated On: July 15, 2003 Georg Zoeller - Removed saving throws
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
#include "NW_I0_SPELLS"
#include "prc_inc_spells" #include "prc_inc_spells"
#include "prc_inc_sp_tch"
#include "NW_I0_SPELLS"
//#include "wm_include" //#include "wm_include"
void main() void main()
@@ -37,10 +38,9 @@ void main()
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_SHARDS)); SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_SHARDS));
//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); //nDamage = GetReflexAdjustedDamage(nDamage, oTarget, nDC);
//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)
@@ -52,7 +52,7 @@ 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);
} }
} }
} }

View File

@@ -5,15 +5,16 @@
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
/* /*
Creature must make a ranged touch attack to hit Creature must make a ranged touch attack to hit
the intended target. Reflex save is the intended target.
needed to or avoid effect.
*/ */
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk //:: Created By: Preston Watamaniuk
//:: Created On: June 18 , 2001 //:: Created On: June 18 , 2001
//:: Updated On: July 15, 2003 Georg Zoeller - Removed saving throws
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
#include "NW_I0_SPELLS"
#include "prc_inc_spells" #include "prc_inc_spells"
#include "prc_inc_sp_tch"
#include "NW_I0_SPELLS"
//#include "wm_include" //#include "wm_include"
void main() void main()
@@ -38,10 +39,10 @@ void main()
//Fire cast spell at event for the specified target //Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_SLOW)); SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_SLOW));
//Make a saving throw check //Make a saving throw check
if (!/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS) && TouchAttackRanged(oTarget)) if (PRCDoRangedTouchAttack(oTarget))
{ {
//Apply the VFX impact and effects //Apply the VFX impact and effects
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCount)); SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCount));
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
} }
} }

View File

@@ -5,15 +5,16 @@
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
/* /*
Creature must make a ranged touch attack to hit Creature must make a ranged touch attack to hit
the intended target. Fort save is the intended target.
needed to avoid effect.
*/ */
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk //:: Created By: Preston Watamaniuk
//:: Created On: May 11 , 2001 //:: Created On: May 11 , 2001
//:: Updated On: July 15, 2003 Georg Zoeller - Removed saving throws
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
#include "NW_I0_SPELLS"
#include "prc_inc_spells" #include "prc_inc_spells"
#include "prc_inc_sp_tch"
#include "NW_I0_SPELLS"
//#include "wm_include" //#include "wm_include"
void main() void main()
@@ -37,12 +38,12 @@ void main()
//Fire cast spell at event for the specified target //Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_ABILITY_DRAIN_STRENGTH)); SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_ABILITY_DRAIN_STRENGTH));
//Make a saving throw check //Make a saving throw check
if (!/*Fort Save*/ PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE) && TouchAttackRanged(oTarget)) if (PRCDoRangedTouchAttack(oTarget))
{ {
eBolt = EffectAbilityDecrease(ABILITY_STRENGTH, nCount); eBolt = EffectAbilityDecrease(ABILITY_STRENGTH, nCount);
eBolt = SupernaturalEffect(eBolt); eBolt = SupernaturalEffect(eBolt);
//Apply the VFX impact and effects //Apply the VFX impact and effects
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBolt, oTarget, RoundsToSeconds(nHD)); SPApplyEffectToObject(DURATION_TYPE_PERMANENT, eBolt, oTarget);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
} }
} }

View File

@@ -5,15 +5,16 @@
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
/* /*
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
//:: Updated On: July 15, 2003 Georg Zoeller - Removed saving throws
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
#include "NW_I0_SPELLS"
#include "prc_inc_spells" #include "prc_inc_spells"
#include "prc_inc_sp_tch"
#include "NW_I0_SPELLS"
//#include "wm_include" //#include "wm_include"
void main() void main()
@@ -41,10 +42,10 @@ void main()
//Fire cast spell at event for the specified target //Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_STUN)); SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_STUN));
//Make a saving throw check //Make a saving throw check
if (!/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS) && TouchAttackRanged(oTarget)) if (PRCDoRangedTouchAttack(oTarget))
{ {
//Apply the VFX impact and effects //Apply the VFX impact and effects
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCount)); SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCount));
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
} }
} }

View File

@@ -10,9 +10,12 @@
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk //:: Created By: Preston Watamaniuk
//:: Created On: Jan 28, 2002 //:: Created On: Jan 28, 2002
//:: Updated On: July 15, 2003 Georg Zoeller - Removed saving throws
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
#include "NW_I0_SPELLS"
#include "prc_inc_spells" #include "prc_inc_spells"
#include "prc_inc_sp_tch"
#include "NW_I0_SPELLS"
#include "x2_inc_switches"
//#include "wm_include" //#include "wm_include"
void main() void main()
@@ -36,9 +39,12 @@ void main()
//Fire cast spell at event for the specified target //Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_WEB)); SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_WEB));
//Make a saving throw check //Make a saving throw check
if (!PRCMySavingThrow(SAVING_THROW_REFLEX, oTarget, nDC) && TouchAttackRanged(oTarget)) if (PRCDoRangedTouchAttack(oTarget))
{ {
//Apply the VFX impact and effects if( !GetHasFeat(FEAT_WOODLAND_STRIDE, oTarget) && GetCreatureFlag(OBJECT_SELF, CREATURE_VAR_IS_INCORPOREAL) != TRUE )
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCount)); {
//Apply the VFX impact and effects
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCount));
}
} }
} }

View File

@@ -5,15 +5,16 @@
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
/* /*
Creature must make a ranged touch attack to hit Creature must make a ranged touch attack to hit
the intended target. Fort save is the intended target.
needed to avoid effect.
*/ */
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk //:: Created By: Preston Watamaniuk
//:: Created On: May 11 , 2001 //:: Created On: May 11 , 2001
//:: Updated On: July 15, 2003 Georg Zoeller - Removed saving throws
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
#include "NW_I0_SPELLS"
#include "prc_inc_spells" #include "prc_inc_spells"
#include "prc_inc_sp_tch"
#include "NW_I0_SPELLS"
//#include "wm_include" //#include "wm_include"
void main() void main()
@@ -37,12 +38,12 @@ void main()
//Fire cast spell at event for the specified target //Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_ABILITY_DRAIN_WISDOM)); SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_ABILITY_DRAIN_WISDOM));
//Make a saving throw check //Make a saving throw check
if (!/*Fort Save*/ PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE) && TouchAttackRanged(oTarget)) if (PRCDoRangedTouchAttack(oTarget))
{ {
eBolt = EffectAbilityDecrease(ABILITY_WISDOM, nCount); eBolt = EffectAbilityDecrease(ABILITY_WISDOM, nCount);
eBolt = SupernaturalEffect(eBolt); eBolt = SupernaturalEffect(eBolt);
//Apply the VFX impact and effects //Apply the VFX impact and effects
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBolt, oTarget); SPApplyEffectToObject(DURATION_TYPE_PERMANENT, eBolt, oTarget);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
} }
} }

View File

@@ -12,8 +12,8 @@
//:: Created By: Preston Watamaniuk //:: Created By: Preston Watamaniuk
//:: Created On: May 11, 2001 //:: Created On: May 11, 2001
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
#include "NW_I0_SPELLS"
#include "prc_inc_spells" #include "prc_inc_spells"
#include "NW_I0_SPELLS"
//#include "wm_include" //#include "wm_include"
void main() void main()
@@ -36,14 +36,12 @@ void main()
{ {
nLoop = 1; nLoop = 1;
} }
//Calculate the damage
//Calculate the damage
for (nLoop; nLoop > 0; nLoop--) for (nLoop; nLoop > 0; nLoop--)
{ {
nDamage = nDamage + d6(2); nDamage = nDamage + d6(2);
} }
location lTargetLocation = GetSpellTargetLocation(); location lTargetLocation = PRCGetSpellTargetLocation();
effect eCone; effect eCone;
effect eVis = EffectVisualEffect(VFX_IMP_ACID_S); effect eVis = EffectVisualEffect(VFX_IMP_ACID_S);
@@ -60,7 +58,7 @@ void main()
//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 = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_ACID);
//Set damage effect //Set damage effect
eCone = EffectDamage(nDamage, DAMAGE_TYPE_ACID); eCone = PRCEffectDamage(oTarget, nDamage, DAMAGE_TYPE_ACID);
if(nDamage > 0) if(nDamage > 0)
{ {
//Apply the VFX impact and effects //Apply the VFX impact and effects

View File

@@ -12,8 +12,8 @@
//:: Created By: Preston Watamaniuk //:: Created By: Preston Watamaniuk
//:: Created On: May 11, 2001 //:: Created On: May 11, 2001
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
#include "NW_I0_SPELLS"
#include "prc_inc_spells" #include "prc_inc_spells"
#include "NW_I0_SPELLS"
//#include "wm_include" //#include "wm_include"
void main() void main()
@@ -60,12 +60,13 @@ void main()
//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_COLD); nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_COLD);
//Set damage effect //Set damage effect
eCone = EffectDamage(nDamage, DAMAGE_TYPE_COLD); eCone = PRCEffectDamage(oTarget, nDamage, DAMAGE_TYPE_COLD);
DelayCommand(fDelay, SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
if(nDamage > 0) if(nDamage > 0)
{ {
//Apply the VFX impact and effects //Apply the VFX impact and effects
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); DelayCommand(fDelay, SPApplyEffectToObject(DURATION_TYPE_INSTANT, eCone, oTarget));
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eCone, oTarget));
} }
} }
//Get next target in spell area //Get next target in spell area

View File

@@ -11,8 +11,8 @@
//:: Created By: Preston Watamaniuk //:: Created By: Preston Watamaniuk
//:: Created On: May 22, 2001 //:: Created On: May 22, 2001
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
#include "NW_I0_SPELLS"
#include "prc_inc_spells" #include "prc_inc_spells"
#include "NW_I0_SPELLS"
//#include "wm_include" //#include "wm_include"
void main() void main()
@@ -27,14 +27,13 @@ void main()
int nRacial = MyPRCGetRacialType(oNPC); int nRacial = MyPRCGetRacialType(oNPC);
int nDisease; int nDisease;
location lTargetLocation = GetSpellTargetLocation(); location lTargetLocation = PRCGetSpellTargetLocation();
float fDelay; float fDelay;
effect eCone = EffectDisease(nDisease); effect eCone = EffectDisease(nDisease);
effect eVis = EffectVisualEffect(VFX_IMP_DISEASE_S); effect eVis = EffectVisualEffect(VFX_IMP_DISEASE_S);
//Determine the disease type based on the Racial Type and HD //Determine the disease type based on the Racial Type and HD
switch (nRacial) switch (nRacial)
{ {
@@ -86,8 +85,8 @@ void main()
//Get the delay time //Get the delay time
fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20; fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20;
//Apply the VFX impact and effects //Apply the VFX impact and effects
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); DelayCommand(fDelay, SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eCone, oTarget)); DelayCommand(fDelay, SPApplyEffectToObject(DURATION_TYPE_INSTANT, eCone, oTarget));
} }
//Get next target in spell area //Get next target in spell area
oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 11.0, lTargetLocation, TRUE); oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 11.0, lTargetLocation, TRUE);

View File

@@ -12,8 +12,10 @@
//:: Created By: Preston Watamaniuk //:: Created By: Preston Watamaniuk
//:: Created On: May 11, 2001 //:: Created On: May 11, 2001
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
//:: Updated Georg Z, 2003-09-02: fixed cone not visible if no damage is done
#include "NW_I0_SPELLS" #include "NW_I0_SPELLS"
#include "prc_inc_spells" #include "prc_inc_spells"
#include "prc_add_spell_dc"
//#include "wm_include" //#include "wm_include"
void main() void main()
@@ -36,14 +38,12 @@ void main()
{ {
nLoop = 1; nLoop = 1;
} }
//Calculate the damage
//Calculate the damage
for (nLoop; nLoop > 0; nLoop--) for (nLoop; nLoop > 0; nLoop--)
{ {
nDamage = nDamage + d6(2); nDamage = nDamage + d6(2);
} }
location lTargetLocation = GetSpellTargetLocation(); location lTargetLocation = PRCGetSpellTargetLocation();
effect eLightning = EffectBeam(VFX_BEAM_LIGHTNING, oNPC, BODY_NODE_HAND); effect eLightning = EffectBeam(VFX_BEAM_LIGHTNING, oNPC, BODY_NODE_HAND);
effect eCone; effect eCone;
effect eVis = EffectVisualEffect(VFX_IMP_LIGHTNING_S); effect eVis = EffectVisualEffect(VFX_IMP_LIGHTNING_S);
@@ -61,13 +61,13 @@ void main()
//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_ELECTRICITY); nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_ELECTRICITY);
//Set damage effect //Set damage effect
eCone = EffectDamage(nDamage, DAMAGE_TYPE_ELECTRICAL); eCone = PRCEffectDamage(oTarget, nDamage, DAMAGE_TYPE_ELECTRICAL);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eLightning,oTarget,0.5);
DelayCommand(fDelay, SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
if(nDamage > 0) if(nDamage > 0)
{ {
//Apply the VFX impact and effects //Apply the VFX impact and effects
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eLightning,oTarget,0.5)); DelayCommand(fDelay, SPApplyEffectToObject(DURATION_TYPE_INSTANT, eCone, oTarget));
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eCone, oTarget));
} }
} }
//Get next target in spell area //Get next target in spell area

View File

@@ -14,6 +14,7 @@
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
#include "prc_inc_spells" #include "prc_inc_spells"
#include "NW_I0_SPELLS" #include "NW_I0_SPELLS"
#include "prc_add_spell_dc"
//#include "wm_include" //#include "wm_include"
void main() void main()
@@ -36,13 +37,12 @@ void main()
{ {
nLoop = 1; nLoop = 1;
} }
//Calculate the damage
//Calculate the damage
for (nLoop; nLoop > 0; nLoop--) for (nLoop; nLoop > 0; nLoop--)
{ {
nDamage = nDamage + d6(2); nDamage = nDamage + d6(2);
} }
location lTargetLocation = GetSpellTargetLocation(); location lTargetLocation = PRCGetSpellTargetLocation();
effect eCone; effect eCone;
effect eVis = EffectVisualEffect(VFX_IMP_SONIC); effect eVis = EffectVisualEffect(VFX_IMP_SONIC);
@@ -60,12 +60,12 @@ void main()
//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,DAMAGE_TYPE_SONIC); nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC,DAMAGE_TYPE_SONIC);
//Set damage effect //Set damage effect
eCone = EffectDamage(nDamage, DAMAGE_TYPE_SONIC); eCone = PRCEffectDamage(oTarget, nDamage, DAMAGE_TYPE_SONIC);
DelayCommand(fDelay, SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
if(nDamage > 0) if(nDamage > 0)
{ {
//Apply the VFX impact and effects //Apply the VFX impact and effects
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); DelayCommand(fDelay, SPApplyEffectToObject(DURATION_TYPE_INSTANT, eCone, oTarget));
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eCone, oTarget));
} }
} }
//Get next target in spell area //Get next target in spell area

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