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,66 +0,0 @@
2DA V2.0
Label Name First_Save Subs_Save Incu_Hours Dice_1 Dam_1 Type_1 Dice_2 Dam_2 Type_2 Dice_3 Dam_3 Type_3 Type End_Incu_Script 24_Hour_Script
0 Blinding_Sickness 4689 26 26 1 4 1 0 **** **** **** **** **** **** EXTRA **** NW_S3_BlindSick
1 Cackle_Fever 4690 26 26 1 6 1 4 **** **** **** **** **** **** EXTRA **** ****
2 Demon_Fever 4691 28 28 1 6 1 2 **** **** **** **** **** **** SUPER **** Nw_S3_DemonFev
3 Devil_Chills 4692 24 24 1 4 1 0 **** **** **** **** **** **** SUPER **** ****
4 Filth_Fever 4693 22 22 1 3 1 3 3 1 2 **** **** **** EXTRA **** ****
5 Mindfire 4694 22 22 1 4 1 3 **** **** **** **** **** **** EXTRA **** ****
6 Mummy_Rot 4695 30 30 1 6 1 2 **** **** **** **** **** **** SUPER **** ****
7 Red_Ache 4696 25 25 1 6 1 0 **** **** **** **** **** **** EXTRA **** ****
8 Shakes 4697 23 23 1 6 1 0 **** **** **** **** **** **** EXTRA **** ****
9 Slimy_Doom 4698 24 24 1 4 1 1 **** **** **** **** **** **** EXTRA **** ****
10 Red_Slaad_Eggs 4699 27 27 1 6 2 1 6 2 0 6 2 2 EXTRA NW_S3_SlaadEgg ****
11 Ghoul_Rot 4700 28 28 1 6 1 2 6 1 0 **** **** **** SUPER **** ****
12 Zombie_Creep 4701 25 25 1 4 1 2 4 1 1 **** **** **** SUPER **** ****
13 Dread_Blisters 4702 23 23 1 4 1 2 4 1 5 **** **** **** SUPER **** ****
14 Burrow_Maggots 4703 27 27 1 4 1 3 4 1 4 **** **** **** SUPER **** ****
15 Soldier_Shakes 4704 35 35 1 **** **** **** **** **** **** **** **** **** **** **** Nw_S3_SoldShake
16 Vermin_Madness 4705 23 13 1 1 1 3 1 1 4 1 1 5 EXTRA **** ****
17 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
18 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
19 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
20 Contagion_Blinding_Sickness 4689 127 16 1 4 1 0 **** **** **** **** **** **** EXTRA **** NW_S3_BlindSick
21 Contagion_Cackle_Fever 4690 127 16 1 6 1 4 **** **** **** **** **** **** EXTRA **** ****
22 Contagion_Filth_Fever 4693 127 12 1 3 1 3 3 1 2 **** **** **** EXTRA **** ****
23 Contagion_Mindfire 4694 127 12 1 4 1 3 **** **** **** **** **** **** EXTRA **** ****
24 Contagion_Red_Ache 4696 127 15 1 6 1 0 **** **** **** **** **** **** EXTRA **** ****
25 Contagion_Shakes 4697 127 13 1 6 1 0 **** **** **** **** **** **** EXTRA **** ****
26 Contagion_Slimy_Doom 4698 127 14 1 4 1 1 **** **** **** **** **** **** EXTRA **** ****
27 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
28 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
29 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
30 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
31 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
32 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
33 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
34 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
35 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
36 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
37 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
38 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
39 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
40 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
41 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
42 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
43 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
44 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
45 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
46 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
47 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
48 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
49 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
50 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
51 Pestilence_disease 16826251 127 127 0 **** **** **** **** **** **** **** **** **** SUPER **** sp_pest_aux
52 Talonas_Blight 16824947 127 127 2 1 4 2 1 4 5 **** **** **** SUPER **** prc_talona
53 Blue_guts 16829286 127 127 0 **** **** **** **** **** **** **** **** **** SUPER **** prc_blue_guts
54 Soul_Rot 16829287 127 127 0 **** **** **** **** **** **** **** **** **** SUPER **** prc_soul_rot
55 Agony_Addiction **** 127 127 0 **** **** **** **** **** **** **** **** **** SUPER **** prc_addct_ag
56 Baccaran_Addiction **** 127 127 0 **** **** **** **** **** **** **** **** **** SUPER **** prc_addct_bac
57 Devilweed_Addiction **** 127 127 0 **** **** **** **** **** **** **** **** **** SUPER **** prc_addct_dw
58 Luhix_Addiction **** 127 127 0 **** **** **** **** **** **** **** **** **** SUPER **** prc_addct_lhx
59 Mushroom_powder_Addiction **** 127 127 0 **** **** **** **** **** **** **** **** **** SUPER **** prc_addct_msh
60 Sannish_Addiction **** 127 127 0 **** **** **** **** **** **** **** **** **** SUPER **** prc_addct_snh
61 Terran_Brandy_Addiction **** 127 127 0 **** **** **** **** **** **** **** **** **** SUPER **** prc_addct_tb
62 Vodare_Addiction **** 127 127 0 **** **** **** **** **** **** **** **** **** SUPER **** prc_addct_vdr

Binary file not shown.

View File

@@ -1,92 +0,0 @@
/*
nw_s0_awaken
This spell makes an animal ally more
powerful, intelligent and robust for the
duration of the spell. Requires the caster to
make a Will save to succeed.
By: Preston Watamaniuk
Created: Aug 10, 2001
Modified: Jun 12, 2006
*/
#include "prc_sp_func"
#include "inc_npc"
//Implements the spell impact, put code here
// if called in many places, return TRUE if
// stored charges should be decreased
// eg. touch attack hits
//
// Variables passed may be changed if necessary
int DoSpell(object oCaster, object oTarget, int nCasterLevel, int nEvent)
{
//Declare major variables
effect eStr = EffectAbilityIncrease(ABILITY_STRENGTH, d4(4));
effect eCon = EffectAbilityIncrease(ABILITY_CONSTITUTION, d4(4));
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
effect eInt;
effect eAttack = EffectAttackIncrease(d4(2));
effect eVis = EffectVisualEffect(VFX_IMP_HOLY_AID);
int nInt = d10();
//int nDuration = 24;
int nMetaMagic = PRCGetMetaMagicFeat();
if(GetAssociateTypeNPC(oTarget) == ASSOCIATE_TYPE_ANIMALCOMPANION && GetMasterNPC(oTarget) == oCaster)
{
if(!GetHasSpellEffect(SPELL_AWAKEN))
{
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(oCaster, SPELL_AWAKEN, FALSE));
//Enter Metamagic conditions
if(nMetaMagic & METAMAGIC_MAXIMIZE)
nInt = 10;//Damage is at max
if(nMetaMagic & METAMAGIC_EMPOWER)
nInt += (nInt/2); //Damage/Healing is +50%
//if(nMetaMagic & METAMAGIC_EXTEND)
// nDuration *= 2; //Duration is +100%
eInt = EffectAbilityIncrease(ABILITY_WISDOM, nInt);
effect eLink = EffectLinkEffects(eStr, eCon);
eLink = EffectLinkEffects(eLink, eAttack);
eLink = EffectLinkEffects(eLink, eInt);
eLink = EffectLinkEffects(eLink, eDur);
eLink = SupernaturalEffect(eLink);
//Apply the VFX impact and effects
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
SPApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oTarget, 0.0f, TRUE, SPELL_AWAKEN, nCasterLevel);
}
}
return TRUE; //return TRUE if spell charges should be decremented
}
void main()
{
if(!X2PreSpellCastCode()) return;
PRCSetSchool(SPELL_SCHOOL_TRANSMUTATION);
object oCaster = OBJECT_SELF;
object oTarget = PRCGetSpellTargetObject();
int nCasterLevel = PRCGetCasterLevel(oCaster);
int nEvent = GetLocalInt(oCaster, PRC_SPELL_EVENT); //use bitwise & to extract flags
if(!nEvent) //normal cast
{
if(GetLocalInt(oCaster, PRC_SPELL_HOLD) && oCaster == oTarget)
{ //holding the charge, casting spell on self
SetLocalSpellVariables(oCaster, 1); //change 1 to number of charges
return;
}
DoSpell(oCaster, oTarget, nCasterLevel, nEvent);
}
else
{
if(nEvent & PRC_SPELL_EVENT_ATTACK)
{
if(DoSpell(oCaster, oTarget, nCasterLevel, nEvent))
DecrementSpellCharges(oCaster);
}
}
PRCSetSchool();
}

View File

@@ -58,7 +58,7 @@ SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_EVOCATION);
{
nDamage = nDamage + (nDamage/2);
}
//nDamage += ApplySpellBetrayalStrikeDamage(oTarget, OBJECT_SELF, FALSE);
nDamage += SpellDamagePerDice(aoeCreator, nLevel);
//Make SR Check
if (!PRCDoResistSpell(aoeCreator, oTarget,nPenetr) )
{

View File

@@ -81,7 +81,7 @@ SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_EVOCATION);
{
nDamage = nDamage + (nDamage/2);
}
//nDamage += ApplySpellBetrayalStrikeDamage(oTarget, OBJECT_SELF, FALSE);
nDamage += SpellDamagePerDice(aoeCreator, nLevel);
// 1.69 change
//Adjust damage according to Reflex Save, Evasion or Improved Evasion
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, PRCGetSaveDC(oTarget,aoeCreator),SAVING_THROW_TYPE_SPELL);

View File

@@ -78,6 +78,7 @@ void main()
if(nMetaMagic & METAMAGIC_EMPOWER)
nDamage += nDamage / 2; //Damage/Healing is +50%
nDamage += SpellDamagePerDice(oCaster, nDice);
//Run the damage through the various reflex save and evasion feats
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, PRCGetSaveDC(oTarget, oCaster), nSaveType);
if(nDamage > 0)

View File

@@ -91,6 +91,7 @@ void main()
if(nMetaMagic & METAMAGIC_EMPOWER)
nDamage += nDamage / 2;
nDamage += SpellDamagePerDice(oCaster, nDice);
//Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, PRCGetSaveDC(oTarget, oCaster), nSaveType);
if(nDamage > 0)

View File

@@ -86,7 +86,7 @@ SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_EVOCATION);
{
nDamage = nDamage + (nDamage/2); //Damage/is +50%
}
//nDamage += ApplySpellBetrayalStrikeDamage(oTarget, OBJECT_SELF, FALSE);
nDamage += SpellDamagePerDice(OBJECT_SELF, nCasterLevel);
CasterLvl +=SPGetPenetr();
@@ -157,6 +157,7 @@ SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_EVOCATION);
{
nDamage = nDamage + (nDamage/2); //Damage/is +50%
}
nDamage += SpellDamagePerDice(OBJECT_SELF, nCasterLevel);
//Adjust damage via Reflex Save or Evasion or Improved Evasion
nDamStrike = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_ELECTRICITY);
//Apply the damage and VFX impact to the current target

View File

@@ -18,7 +18,7 @@
//:: modified by mr_bumpkin Dec 4, 2003
//:: modified by Ornedan Dec 22, 2004 to PnP rules
#include "prc_inc_spells"
#include "prcsp_archmaginc"
#include "prc_add_spell_dc"
@@ -59,7 +59,12 @@ SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_CONJURATION);
if(spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, aoeCreator))
{
//Fire cast spell at event for the specified target
// Check for Mastery of Shaping protection
if(CheckMasteryOfShapes(aoeCreator, oTarget))
{
return; // Target is protected, exit
}
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_CLOUDKILL));
//Concealement by fog happens no matter what

View File

@@ -19,6 +19,7 @@
//:: modified by Ornedan Dec 22, 2004 to PnP rules
#include "prc_inc_spells"
#include "prc_add_spell_dc"
#include "prcsp_archmaginc"
@@ -71,7 +72,14 @@ SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_CONJURATION);
fDelay = PRCGetRandomDelay();
if(spellsIsTarget(oTarget,SPELL_TARGET_STANDARDHOSTILE , aoeCreator) )
{
//Fire cast spell at event for the specified target
if(CheckMasteryOfShapes(aoeCreator, oTarget))
{
// Target is protected by Mastery of Shaping, skip damage
oTarget = GetNextInPersistentObject();
continue;
}
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_CLOUDKILL));
nHD = GetHitDice(oTarget);

View File

@@ -97,7 +97,7 @@ SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_EVOCATION);
{
nDamage = nDamage + (nDamage/2); //Damage/Healing is +50%
}
//nDamage += ApplySpellBetrayalStrikeDamage(oTarget, OBJECT_SELF, FALSE);
nDamage += SpellDamagePerDice(OBJECT_SELF, nCasterLevel);
//Adjust damage according to Reflex Save, Evasion or Improved Evasion
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_COLD);

Binary file not shown.

View File

@@ -69,7 +69,7 @@ SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_EVOCATION);
if(nMetaMagic & METAMAGIC_EMPOWER)
nDamage += nDamage/2;//Damage/Healing is +50%
//nDamage += ApplySpellBetrayalStrikeDamage(oTarget, OBJECT_SELF, FALSE);
nDamage += SpellDamagePerDice(OBJECT_SELF, nCasterLevel);
//Change damage according to Reflex, Evasion and Improved Evasion
int nDC = PRCGetSaveDC(oTarget, oCaster, -1);
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, nSaveType, GetAreaOfEffectCreator());

View File

@@ -86,7 +86,7 @@ SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_NECROMANCY);
{
nDamage = nDamage + (nDamage/2); //Damage/Healing is +50%
}
//nDamage += ApplySpellBetrayalStrikeDamage(oTarget, OBJECT_SELF);
nDamage += SpellDamagePerDice(OBJECT_SELF, 10);
//Set damage effect
eDam = PRCEffectDamage(oTarget, nDamage, DAMAGE_TYPE_DIVINE);
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget);

View File

@@ -71,7 +71,7 @@ void main()
if ((nMetaMagic & METAMAGIC_EMPOWER))
nDamage += nDamage / 2;
//nDamage += ApplySpellBetrayalStrikeDamage(oTarget, OBJECT_SELF, FALSE);
nDamage += SpellDamagePerDice(OBJECT_SELF, nDice);
//Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, (PRCGetSaveDC(oTarget, oCaster)), SAVING_THROW_TYPE_FIRE);
if(nDamage > 0)

View File

@@ -74,7 +74,7 @@ void main()
nDamage = nDamage + (nDamage/2);//Damage/Healing is +50%
int nDC = PRCGetSaveDC(oTarget,OBJECT_SELF);
//Save versus both holy and fire damage
//nDamage2 += ApplySpellBetrayalStrikeDamage(oTarget, OBJECT_SELF, FALSE);
nDamage += SpellDamagePerDice(OBJECT_SELF, nCasterLevel);
nDamage2 = PRCGetReflexAdjustedDamage(nDamage/2, oTarget, (nDC), SAVING_THROW_TYPE_DIVINE);
nDamage = PRCGetReflexAdjustedDamage(nDamage/2, oTarget, (nDC), SAVING_THROW_TYPE_FIRE);
if(nDamage)

View File

@@ -64,7 +64,7 @@ void main()
nDamage = 6 * nDice;
if(nMetaMagic & METAMAGIC_EMPOWER)
nDamage = nDamage + (nDamage/2);
nDamage += SpellDamagePerDice(oCaster, nDice);
//Adjust the damage based on Reflex Save, Evasion and Improved Evasion
int nDC = PRCGetSaveDC(oTarget, oCaster);
nDamage2 = PRCGetReflexAdjustedDamage(nDamage/2, oTarget, nDC, nSaveType);

View File

@@ -95,7 +95,7 @@ SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_EVOCATION);
{
nDamage = FloatToInt( IntToFloat(nDamage) * 1.5 );
}
//nDamage += ApplySpellBetrayalStrikeDamage(oTarget, OBJECT_SELF, FALSE);
nDamage += SpellDamagePerDice(OBJECT_SELF, nDamageDice);
int nDC = PRCGetSaveDC(oTarget,OBJECT_SELF);
//Make a will save for half damage and negation of daze effect

View File

@@ -104,6 +104,7 @@ SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_CONJURATION);
{
nModify += (nModify/2); //Damage/Healing is +50%
}
nModify += SpellDamagePerDice(OBJECT_SELF, 1);
if (GetLevelByClass(CLASS_TYPE_HEALER, OBJECT_SELF))
nModify += GetAbilityModifier(ABILITY_CHARISMA, OBJECT_SELF);
//Make Fort save

View File

@@ -125,6 +125,8 @@ int DoSpell(object oCaster, object oTarget, int nSpellID)
nHeal = d12(nDice);
if((nMetaMagic & METAMAGIC_MAXIMIZE) || iBlastFaith)
nHeal = 12 * nDice;
nHeal += SpellDamagePerDice(oCaster, nDice);
}
else
{

View File

@@ -93,6 +93,7 @@ SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_NECROMANCY);
{
nDamage = nDamage + nDamage / 2;
}
nDamage += SpellDamagePerDice(OBJECT_SELF, nCasterLvl);
if(/*Fort Save*/ PRCMySavingThrow(SAVING_THROW_FORT, oTarget, (nDC), SAVING_THROW_TYPE_NONE, OBJECT_SELF, fDelay))
{
if (GetHasMettle(oTarget, SAVING_THROW_FORT))

View File

@@ -1,90 +0,0 @@
/*
nw_s0_imprinvis
Target creature can attack and cast spells while
invisible
By: Preston Watamaniuk
Created: Jan 7, 2002
Modified: Jun 12, 2006
*/
void ReapplyInvis(object oTarget, effect eInvis, float fDur, int CasterLvl);
#include "prc_sp_func"
void ReapplyInvis(object oTarget, effect eInvis, float fDur, int CasterLvl)
{
if(!PRCGetHasEffect(EFFECT_TYPE_INVISIBILITY, oTarget) && GetHasSpellEffect(SPELL_IMPROVED_INVISIBILITY))
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eInvis, oTarget, fDur,TRUE,-1,CasterLvl);
DelayCommand(1.0, ReapplyInvis(oTarget, eInvis, fDur-1.0, CasterLvl));
}
//Implements the spell impact, put code here
// if called in many places, return TRUE if
// stored charges should be decreased
// eg. touch attack hits
//
// Variables passed may be changed if necessary
int DoSpell(object oCaster, object oTarget, int nCasterLevel, int nEvent)
{
int bBio = GetPRCSwitch(PRC_BIOWARE_INVISIBILITY);
float fDur;
effect eImpact = EffectVisualEffect(VFX_IMP_HEAD_MIND);
effect eVis = EffectVisualEffect(VFX_DUR_INVISIBILITY);
effect eInvis = EffectInvisibility(bBio ? INVISIBILITY_TYPE_NORMAL : INVISIBILITY_TYPE_IMPROVED);
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
effect eCover = EffectConcealment(25 + (nCasterLevel/10) ); //era 50 diminui para 25 +castrlvl/10
effect eLink = EffectLinkEffects(eDur, eCover);
eLink = EffectLinkEffects(eLink, eVis);
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_IMPROVED_INVISIBILITY, FALSE));
int CasterLvl = nCasterLevel;
int nDuration = CasterLvl/4; //alterei aqui para metade da duracao
if (GetHasFeat(FEAT_INSIDIOUSMAGIC,OBJECT_SELF) && GetHasFeat(FEAT_SHADOWWEAVE,oTarget))
nDuration = nDuration*2;
int nMetaMagic = PRCGetMetaMagicFeat();
//Enter Metamagic conditions
if (CheckMetaMagic(nMetaMagic, METAMAGIC_EXTEND))
{
nDuration = nDuration *2; //Duration is +100%
}
fDur = bBio ? TurnsToSeconds(nDuration) : RoundsToSeconds(nDuration);
//Apply the VFX impact and effects
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oTarget);
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, fDur,TRUE,-1,CasterLvl);
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eInvis, oTarget, fDur,TRUE,-1,CasterLvl);
DelayCommand(1.0, ReapplyInvis(oTarget, eInvis, fDur, CasterLvl));
return TRUE; //return TRUE if spell charges should be decremented
}
void main()
{
object oCaster = OBJECT_SELF;
int nCasterLevel = PRCGetCasterLevel(oCaster);
PRCSetSchool(GetSpellSchool(PRCGetSpellId()));
if (!X2PreSpellCastCode()) return;
object oTarget = PRCGetSpellTargetObject();
int nEvent = GetLocalInt(oCaster, PRC_SPELL_EVENT); //use bitwise & to extract flags
if(!nEvent) //normal cast
{
if(GetLocalInt(oCaster, PRC_SPELL_HOLD) && oCaster == oTarget)
{ //holding the charge, casting spell on self
SetLocalSpellVariables(oCaster, 1); //change 1 to number of charges
return;
}
DoSpell(oCaster, oTarget, nCasterLevel, nEvent);
}
else
{
if(nEvent & PRC_SPELL_EVENT_ATTACK)
{
if(DoSpell(oCaster, oTarget, nCasterLevel, nEvent))
DecrementSpellCharges(oCaster);
}
}
PRCSetSchool();
}

View File

@@ -61,7 +61,7 @@ int CasterLvl = PRCGetCasterLevel();
{
nDamage = nDamage + (nDamage/2); //Damage/Healing is +50%
}
//nDamage += ApplySpellBetrayalStrikeDamage(oTarget, OBJECT_SELF, FALSE);
nDamage += SpellDamagePerDice(GetAreaOfEffectCreator(), 4);
//Adjust damage for Reflex Save, Evasion and Improved Evasion
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, PRCGetSaveDC(oTarget, GetAreaOfEffectCreator(), SPELL_INCENDIARY_CLOUD), SAVING_THROW_TYPE_FIRE, GetAreaOfEffectCreator());
// Apply effects to the currently selected target.

View File

@@ -54,7 +54,8 @@ SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_EVOCATION);
int EleDmg = GetLocalInt(OBJECT_SELF, "IC_Damage");
oTarget = GetFirstInPersistentObject(OBJECT_SELF,OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE);
//oTarget = GetFirstInPersistentObject(OBJECT_SELF,OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE);
oTarget = MyFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF), FALSE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE);
//Declare the spell shape, size and the location.
while(GetIsObjectValid(oTarget))
{
@@ -76,7 +77,7 @@ SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_EVOCATION);
{
nDamage = nDamage + (nDamage/2); //Damage/Healing is +50%
}
//nDamage += ApplySpellBetrayalStrikeDamage(oTarget, OBJECT_SELF, FALSE);
nDamage += SpellDamagePerDice(aoeCreator, 4);
int nDC = PRCGetSaveDC(oTarget,aoeCreator);
//Adjust damage for Reflex Save, Evasion and Improved Evasion
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC,SAVING_THROW_TYPE_FIRE, aoeCreator);
@@ -91,7 +92,8 @@ SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_EVOCATION);
}
}
//Select the next target within the spell shape.
oTarget = GetNextInPersistentObject(OBJECT_SELF,OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE);
//oTarget = GetNextInPersistentObject(OBJECT_SELF,OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE);
oTarget = MyNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF), FALSE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE);
}

View File

@@ -97,7 +97,7 @@ SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_EVOCATION);
{
nDamage = nDamage + (nDamage/2); //Damage/Healing is +50%
}
//nDamage += ApplySpellBetrayalStrikeDamage(oTarget, OBJECT_SELF, FALSE);
nDamage += SpellDamagePerDice(OBJECT_SELF, nCasterLevel);
//Adjust damage based on Reflex Save, Evasion and Improved Evasion
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC,SAVING_THROW_TYPE_ELECTRICITY);
//Set damage effect

View File

@@ -85,7 +85,7 @@ SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_EVOCATION);
{
nDamage = nDamage + (nDamage/2); //Damage/Healing is +50%
}
//nDamage += ApplySpellBetrayalStrikeDamage(oTarget, OBJECT_SELF, FALSE);
nDamage += SpellDamagePerDice(OBJECT_SELF, 20);
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, (nDC),SAVING_THROW_TYPE_FIRE);
//Set the damage effect
eFire = PRCEffectDamage(oTarget, nDamage, EleDmg);

View File

@@ -84,7 +84,7 @@ SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_ILLUSION);
{
nDamage = FloatToInt( IntToFloat(nDamage) * 1.5 );
}
//nDamage += ApplySpellBetrayalStrikeDamage(oTarget, OBJECT_SELF);
nDamage += SpellDamagePerDice(OBJECT_SELF, 3);
//Set the damage property
eDam = PRCEffectDamage(oTarget, nDamage, DAMAGE_TYPE_MAGICAL);
//Apply the damage effect and VFX impact

View File

@@ -54,13 +54,12 @@ int DoSpell(object oCaster, object oTarget, int nCasterLevel)
if(!PRCDoResistSpell(oCaster, oTarget, nPenetr))
{
int nDamage = PRCMaximizeOrEmpower(nPenetr, 1, nMetaMagic); //alterei o 3 para nPenetr
nDamage += SpellDamagePerDice(oCaster, 1);
//Apply the VFX impact and damage effect
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
// perform ranged touch attack and apply sneak attack if any exists
ApplyTouchAttackDamage(oCaster, oTarget, iAttackRoll, nDamage, EleDmg);
PRCBonusDamage(oTarget);
}
}
effect eRay = EffectBeam(VFX_BEAM_COLD, oCaster, BODY_NODE_HAND, !iAttackRoll);

Binary file not shown.

View File

@@ -1,109 +0,0 @@
/*
nw_s0_sanctuary
Makes the target creature invisible to hostile
creatures unless they make a Will Save to ignore
the Sanctuary Effect
By: Preston Watamaniuk
Created: Jan 7, 2002
Modified: Jun 29, 2006
Flaming_Sword: added greater sanctuary
cleaned up
*/
#include "prc_sp_func"
#include "prc_inc_teleport"
#include "prc_add_spell_dc"
//Implements the spell impact, put code here
// if called in many places, return TRUE if
// stored charges should be decreased
// eg. touch attack hits
//
// Variables passed may be changed if necessary
int DoSpell(object oCaster, object oTarget, int nCasterLevel, int nEvent)
{
int nSpellID = PRCGetSpellId();
int bSanc = (nSpellID == SPELL_SANCTUARY);
effect eSanc = bSanc ? EffectSanctuary((PRCGetSaveDC(oTarget,oCaster))) : EffectEthereal();
effect eLink = EffectLinkEffects(EffectVisualEffect(VFX_DUR_SANCTUARY), eSanc);
eLink = EffectLinkEffects(eLink, EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE));
float fDuration = bSanc ? RoundsToSeconds(1+(nCasterLevel/10)) : TurnsToSeconds(1+(nCasterLevel/10));
int nMetaMagic = PRCGetMetaMagicFeat();
if (CheckMetaMagic(nMetaMagic, METAMAGIC_EXTEND))
fDuration *= 2; //Duration is +100%
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, nSpellID, FALSE));
if(bSanc || GetCanTeleport(oTarget, GetLocation(oTarget), FALSE, TRUE))
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, fDuration,TRUE,-1,nCasterLevel);
return TRUE; //return TRUE if spell charges should be decremented
}
void main()
{
//teste cooldown
//Spell Time Lock duration (in seconds, use float values)
float iLockTimer = 240.0;
//Defining time variables
float f120togo = ( 120 - iLockTimer ) * -1;
float f60togo = ( 60 - iLockTimer ) * -1;
float f10togo = ( 10 - iLockTimer ) * -1;
//Checking spell's caster
object oTarget = PRCGetSpellTargetObject();
//Checking if he used GS recently
int iTimer = GetLocalInt(oTarget, "GSTimer");
if (iTimer == 0) //teste
{
SetLocalInt(oTarget, "GSTimer", 1);
//Change: Checking target's area
object oArea = GetArea(oTarget);
object oCaster = OBJECT_SELF;
int nCasterLevel = PRCGetCasterLevel(oCaster);
PRCSetSchool(GetSpellSchool(PRCGetSpellId()));
if (!X2PreSpellCastCode()) return;
//object oTarget = PRCGetSpellTargetObject();
int nEvent = GetLocalInt(oCaster, PRC_SPELL_EVENT); //use bitwise & to extract flags
if(!nEvent) //normal cast
{
if(GetLocalInt(oCaster, PRC_SPELL_HOLD) && oCaster == oTarget)
{ //holding the charge, casting spell on self
SetLocalSpellVariables(oCaster, 1); //change 1 to number of charges
return;
}
DoSpell(oCaster, oTarget, nCasterLevel, nEvent);
}
else
{
if(nEvent & PRC_SPELL_EVENT_ATTACK)
{
if(DoSpell(oCaster, oTarget, nCasterLevel, nEvent))
DecrementSpellCharges(oCaster);
}
}
PRCSetSchool();
SendMessageToAllDMs("Player "+ObjectToString(oCaster)+" has just cast Greater Sanctuary. He is currently in "+ObjectToString(oArea)+".");
SendMessageToPC(oTarget, "Greater Sanctuary has a timer of "+FloatToString(iLockTimer, 3, 1)+" seconds. You may not use GS again for this period of time. Attempting to do so will spend the spell while producing no effect.");
DelayCommand(f120togo, SendMessageToPC(oTarget, "You have two minutes left on your Greater Sanctuary Lock Timer."));
DelayCommand(f60togo, SendMessageToPC(oTarget, "You have one minute left on your Greater Sanctuary Lock Timer."));
DelayCommand(f10togo, SendMessageToPC(oTarget, "You have 10 seconds left on your Greater Sanctuary Lock Timer."));
DelayCommand(iLockTimer, SendMessageToPC(oTarget, "Greater Sanctuary is once again available for use."));
DelayCommand(iLockTimer, SetLocalInt(oTarget, "GSTimer", 0));
}
else
{
SendMessageToPC(oTarget, "You have used Greater Sanctuary too recently, the effect has been cancelled");
}
}

View File

@@ -94,7 +94,7 @@ int DoSpell(object oCaster, object oTarget, int nCasterLevel, int nEvent)
nDamage = nDamage + (nDamage/2);
}
//nDamage += ApplySpellBetrayalStrikeDamage(oTarget, OBJECT_SELF, FALSE);
nDamage += SpellDamagePerDice(oCaster, nCasterLevel);
//Set the damage effect
eDam = PRCEffectDamage(oTarget, nDamage, DAMAGE_TYPE_DIVINE);
//Apply the damage effect and VFX impact

View File

@@ -1,81 +0,0 @@
//::///////////////////////////////////////////////
//:: Shadow Shield
//:: NW_S0_ShadShld.nss
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Grants the caster +5 AC and 10 / +3 Damage
Reduction and immunity to death effects
and negative energy damage for 3 Turns per level.
Makes the caster immune Necromancy Spells
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: May 22, 2001
//:://////////////////////////////////////////////
//:: modified by mr_bumpkin Dec 4, 2003
#include "prc_inc_spells"
void main()
{
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_ILLUSION);
/*
Spellcast Hook Code
Added 2003-06-23 by GeorgZ
If you want to make changes to all spells,
check x2_inc_spellhook.nss to find out more
*/
if (!X2PreSpellCastCode())
{
// If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell
return;
}
// End of Spell Cast Hook
//Declare major variables
object oTarget = PRCGetSpellTargetObject();
int CasterLvl = PRCGetCasterLevel(OBJECT_SELF);
int nDuration = CasterLvl;
int nMetaMagic = PRCGetMetaMagicFeat();
//Do metamagic extend check
if (CheckMetaMagic(nMetaMagic, METAMAGIC_EXTEND))
{
nDuration *= 2; //Duration is +100%
}
effect eStone = EffectDamageReduction(CasterLvl, DAMAGE_POWER_PLUS_THREE);
effect eAC = EffectACIncrease(5, AC_NATURAL_BONUS);
effect eVis = EffectVisualEffect(VFX_IMP_DEATH_WARD);
effect eShadow = EffectVisualEffect(VFX_DUR_PROT_SHADOW_ARMOR);
effect eSpell = EffectSpellLevelAbsorption(9, 0, SPELL_SCHOOL_NECROMANCY);
effect eImmDeath = EffectImmunity(IMMUNITY_TYPE_DEATH);
effect eImmNeg = EffectDamageImmunityIncrease(DAMAGE_TYPE_NEGATIVE, 100);
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
//Link major effects
effect eLink = EffectLinkEffects(eStone, eAC);
eLink = EffectLinkEffects(eLink, eVis);
eLink = EffectLinkEffects(eLink, eShadow);
eLink = EffectLinkEffects(eLink, eImmDeath);
eLink = EffectLinkEffects(eLink, eImmNeg);
eLink = EffectLinkEffects(eLink, eDur);
eLink = EffectLinkEffects(eLink, eSpell);
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_SHADOW_SHIELD, FALSE));
//Apply linked effect
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, TurnsToSeconds(nDuration),TRUE,-1,CasterLvl);
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
// Getting rid of the integer used to hold the spells spell school
}

Binary file not shown.

View File

@@ -91,6 +91,7 @@ void main()
nDamage += nDamage / 2;
//Set the damage effect
nDamage += SpellDamagePerDice(oCaster, 1);
effect eDam = PRCEffectDamage(oTarget, nDamage, EleDmg);
//Apply the VFX impact and damage effect
DelayCommand(0.01, SPApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget));

View File

@@ -46,7 +46,8 @@ SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_CONJURATION);
object oTarget = GetFirstInPersistentObject(OBJECT_SELF,OBJECT_TYPE_CREATURE);
while(GetIsObjectValid(oTarget))
{
int nDamage = d6(CasterLvl) + ApplySpellBetrayalStrikeDamage(oTarget, OBJECT_SELF, FALSE);
int nDamage = d6(CasterLvl);
nDamage += SpellDamagePerDice(GetAreaOfEffectCreator(), 6);
effect eElec = PRCEffectDamage(oTarget, nDamage, ChangedElementalDamage(GetAreaOfEffectCreator(), DAMAGE_TYPE_ELECTRICAL));
if (spellsIsTarget(oTarget, SPELL_TARGET_SELECTIVEHOSTILE, GetAreaOfEffectCreator()))
@@ -59,6 +60,7 @@ SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_CONJURATION);
{
int nDC = PRCGetSaveDC(oTarget,GetAreaOfEffectCreator());
int nAcid = d6(CasterLvl/2);
nAcid += SpellDamagePerDice(GetAreaOfEffectCreator(), 3);
// Acid Sheath adds +1 damage per die to acid descriptor spells
if (GetHasDescriptor(SPELL_STORM_OF_VENGEANCE, DESCRIPTOR_ACID) && GetHasSpellEffect(SPELL_MESTILS_ACID_SHEATH, GetAreaOfEffectCreator()))
nAcid += 3;

View File

@@ -113,7 +113,7 @@ SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_EVOCATION);
nDamage = nDamage + (nDamage/2);
}
//nDamage += ApplySpellBetrayalStrikeDamage(oTarget, OBJECT_SELF, FALSE);
nDamage += SpellDamagePerDice(OBJECT_SELF, nCasterLevel);
int nDC = PRCGetSaveDC(oTarget,OBJECT_SELF);
//Check that a reflex save was made.

View File

@@ -47,6 +47,7 @@ int DoSpell(object oCaster, object oTarget, int nCasterLevel, int nEvent)
nDDice = 20;
int nDamage = PRCMaximizeOrEmpower(6,nDDice,nMetaMagic);
nDamage += SpellDamagePerDice(oCaster, nDDice);
int nDuration = nCasterLevel/2;
if ((nMetaMagic & METAMAGIC_EXTEND))
@@ -86,7 +87,6 @@ int DoSpell(object oCaster, object oTarget, int nCasterLevel, int nEvent)
{
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
ApplyTouchAttackDamage(oCaster, oTarget, iAttackRoll, nDamage, DAMAGE_TYPE_NEGATIVE);
PRCBonusDamage(oTarget);
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVisHeal, oCaster);
PRCRemoveTempHitPoints();
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oCaster, HoursToSeconds(nDuration),TRUE,-1,nCasterLevel);

View File

@@ -53,7 +53,7 @@ SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_EVOCATION);
{
nDamage = nDamage + (nDamage/2); //Damage/Healing is +50%
}
//nDamage += ApplySpellBetrayalStrikeDamage(oTarget, OBJECT_SELF, FALSE);
nDamage += SpellDamagePerDice(GetAreaOfEffectCreator(), 4);
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, (PRCGetSaveDC(oTarget,GetAreaOfEffectCreator())), SAVING_THROW_TYPE_FIRE);
if(nDamage > 0)
{

View File

@@ -72,7 +72,7 @@ SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_EVOCATION);
nDamage = nDamage + (nDamage/2); //Damage/Healing is +50%
}
//nDamage += ApplySpellBetrayalStrikeDamage(oTarget, OBJECT_SELF, FALSE);
nDamage += SpellDamagePerDice(GetAreaOfEffectCreator(), 4);
int nDC = PRCGetSaveDC(oTarget,GetAreaOfEffectCreator());

Binary file not shown.

View File

@@ -105,7 +105,7 @@ SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_ILLUSION);
nDamage = FloatToInt( IntToFloat(nDamage) * 1.5 );
}
//nDamage += ApplySpellBetrayalStrikeDamage(oTarget, OBJECT_SELF, FALSE);
nDamage += SpellDamagePerDice(OBJECT_SELF, 3);
//Set damage effect
eDam = PRCEffectDamage(oTarget, nDamage, DAMAGE_TYPE_MAGICAL);

Binary file not shown.

Binary file not shown.

View File

@@ -91,7 +91,7 @@ void main()
{
nDam = d8(nCasterLevel);
}
nDam += SpellDamagePerDice(oPC, 10);
effect eDam = PRCEffectDamage(oObject, nDam, nDamType);
//Apply

View File

@@ -85,7 +85,7 @@ void main()
{
nDam += (nDam/2);
}
nDam += SpellDamagePerDice(oPC, PRCMin(5, nCasterLvl/2));
if(PRCMySavingThrow(SAVING_THROW_REFLEX, oTarget, nDC)) nDam = (nDam/2);
//Apply damage

Binary file not shown.

View File

@@ -71,7 +71,7 @@ void main()
{
nDam += (nDam/2);
}
nDam += SpellDamagePerDice(oPC, PRCMin(5, nCasterLevel/2));
//save
if(!PRCMySavingThrow(SAVING_THROW_REFLEX, oTarget, PRCGetSaveDC(oTarget, oPC), SAVING_THROW_TYPE_SPELL))
{

Binary file not shown.

View File

@@ -53,7 +53,7 @@ int DoSpell(object oCaster, object oTarget, int nCasterLevel, int nEvent)
int nDam = d6(nDice);
if(nMetaMagic & METAMAGIC_MAXIMIZE) nDam = 6 * nDice;
if(nMetaMagic & METAMAGIC_EMPOWER) nDam += (nDam/2);
nDam += SpellDamagePerDice(oCaster, nDice);
if (PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nSaveDC, SAVING_THROW_TYPE_SPELL))
{
nDam /= 2;

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