2026/04/27 Update
Updated expanded spells & abilities. Updated PEPS. Updated Markshire Nomeclature. Full compile.
This commit is contained in:
@@ -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.
Binary file not shown.
@@ -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();
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
@@ -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) )
|
||||
{
|
||||
|
||||
Binary file not shown.
@@ -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);
|
||||
|
||||
Binary file not shown.
@@ -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)
|
||||
|
||||
Binary file not shown.
@@ -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)
|
||||
|
||||
Binary file not shown.
@@ -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
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -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
|
||||
|
||||
Binary file not shown.
@@ -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);
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -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.
Binary file not shown.
@@ -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());
|
||||
|
||||
Binary file not shown.
@@ -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);
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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)
|
||||
|
||||
Binary file not shown.
@@ -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)
|
||||
|
||||
Binary file not shown.
@@ -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);
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -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
|
||||
|
||||
Binary file not shown.
@@ -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
|
||||
|
||||
Binary file not shown.
@@ -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
|
||||
{
|
||||
|
||||
Binary file not shown.
@@ -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))
|
||||
|
||||
Binary file not shown.
@@ -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();
|
||||
}
|
||||
Binary file not shown.
@@ -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.
|
||||
|
||||
Binary file not shown.
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Binary file not shown.
@@ -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
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -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);
|
||||
|
||||
Binary file not shown.
@@ -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
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -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.
Binary file not shown.
@@ -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");
|
||||
}
|
||||
|
||||
}
|
||||
Binary file not shown.
@@ -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
|
||||
|
||||
Binary file not shown.
@@ -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.
Binary file not shown.
@@ -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));
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -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;
|
||||
|
||||
Binary file not shown.
@@ -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.
|
||||
|
||||
Binary file not shown.
@@ -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);
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -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)
|
||||
{
|
||||
|
||||
Binary file not shown.
@@ -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.
@@ -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.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -91,7 +91,7 @@ void main()
|
||||
{
|
||||
nDam = d8(nCasterLevel);
|
||||
}
|
||||
|
||||
nDam += SpellDamagePerDice(oPC, 10);
|
||||
effect eDam = PRCEffectDamage(oObject, nDam, nDamType);
|
||||
|
||||
//Apply
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -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.
@@ -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.
Binary file not shown.
@@ -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
Reference in New Issue
Block a user