2026/04/27 Update
Fighter was missing Weapon Proficiency: Scythe. Tentative fix for Sweeping Strike + Eldritch Glaive. Fixed Necrocarnum Weapon reducing AB. Updated creature abilities to more closely follow PnP. Updated tlk for Sanctified & Holy Ki Strike.
This commit is contained in:
@@ -15,10 +15,12 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
int nHD = GetHitDice(GetAreaOfEffectCreator());
|
||||
nHD = nHD/3+1;
|
||||
int nDC = 10 + nHD/3;
|
||||
//:: Declare major variables
|
||||
object oNPC = GetAreaOfEffectCreator();
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nZap = 1 + (nHD / 3);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 + nCHAMod + (nHD/2);
|
||||
int nDamage;
|
||||
effect eDam;
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_LIGHTNING_S);
|
||||
@@ -28,7 +30,7 @@ void main()
|
||||
{
|
||||
if(GetIsEnemy(oTarget, GetAreaOfEffectCreator()))
|
||||
{
|
||||
nDamage = d4(nHD);
|
||||
nDamage = d4(nZap);
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_AURA_ELECTRICITY));
|
||||
//Make a saving throw check
|
||||
@@ -38,8 +40,8 @@ void main()
|
||||
}
|
||||
eDam = PRCEffectDamage(oTarget, nDamage, DAMAGE_TYPE_ELECTRICAL);
|
||||
//Apply the VFX impact and effects
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget);
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget);
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||
}
|
||||
//Get next target in spell area
|
||||
oTarget = GetNextInPersistentObject();
|
||||
|
||||
@@ -19,19 +19,20 @@ void main()
|
||||
{
|
||||
//Declare major variables
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
object oNPC = OBJECT_SELF;
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCONMod = GetAbilityModifier(ABILITY_CONSTITUTION, oNPC);
|
||||
int nDC = 10 +nCONMod+ (nHD/2);
|
||||
int nCount = nHD/2;
|
||||
if (nCount == 0) { nCount = 1; }
|
||||
int nDamage = d6(nCount);
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_ACID_S);
|
||||
effect eBolt;
|
||||
int nDC = 10 + (nHD/2);
|
||||
int nCount = nHD /2;
|
||||
if (nCount == 0)
|
||||
{
|
||||
nCount = 1;
|
||||
}
|
||||
|
||||
int nDamage = d6(nCount);
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_ACID));
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_ACID));
|
||||
|
||||
//Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
|
||||
//nDamage = GetReflexAdjustedDamage(nDamage, oTarget, nDC,SAVING_THROW_TYPE_ACID);
|
||||
//Make a ranged touch attack
|
||||
|
||||
@@ -19,19 +19,22 @@
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
int nCount = (nHD + 1) / 2;
|
||||
nCount = PRCGetScaledDuration(nCount, oTarget);
|
||||
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_CHARM);
|
||||
effect eBolt = EffectCharmed();
|
||||
eBolt = GetScaledEffect(eBolt, oTarget);
|
||||
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||
effect eLink = EffectLinkEffects(eBolt, eDur);
|
||||
|
||||
int nDC = 10 + (nHD/2);
|
||||
int nCount = (nHD + 1) / 2;
|
||||
nCount = PRCGetScaledDuration(nCount, oTarget);
|
||||
|
||||
//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_CHARM));
|
||||
//Make a saving throw check
|
||||
if (PRCDoRangedTouchAttack(oTarget))
|
||||
|
||||
@@ -18,18 +18,19 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
int nCount = nHD / 3;
|
||||
if (nCount == 0) { nCount = 1; }
|
||||
int nDamage = d6(nCount);
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
|
||||
effect eBolt;
|
||||
int nDC = 10 + (nHD/2);
|
||||
int nCount = (nHD /3);
|
||||
if (nCount == 0)
|
||||
{
|
||||
nCount = 1;
|
||||
}
|
||||
int nDamage = d6(nCount);
|
||||
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_ABILITY_DRAIN_CHARISMA));
|
||||
//Make a saving throw check
|
||||
|
||||
@@ -18,21 +18,22 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
int nCount = nHD/2;
|
||||
if (nCount == 0) { nCount = 1; }
|
||||
int nDamage = d6(nCount);
|
||||
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_FROST_S);
|
||||
effect eBolt;
|
||||
int nDC = 10 + (nHD/2);
|
||||
int nCount = nHD /2;
|
||||
if (nCount == 0)
|
||||
{
|
||||
nCount = 1;
|
||||
}
|
||||
|
||||
int nDamage = d6(nCount);
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_COLD));
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_COLD));
|
||||
//Make a ranged touch attack
|
||||
int nTouch = PRCDoRangedTouchAttack(oTarget);
|
||||
if(nTouch > 0)
|
||||
|
||||
@@ -18,20 +18,22 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
int nCount = (nHD /3);
|
||||
if (nCount == 0) { nCount = 1; }
|
||||
int nDamage = d6(nCount);
|
||||
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
|
||||
effect eBolt;
|
||||
int nDC = 10 + (nHD/2);
|
||||
int nCount = (nHD /3);
|
||||
if (nCount == 0)
|
||||
{
|
||||
nCount = 1;
|
||||
}
|
||||
int nDamage = d6(nCount);
|
||||
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_ABILITY_DRAIN_CONSTITUTION));
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_ABILITY_DRAIN_CONSTITUTION));
|
||||
//Make a saving throw check
|
||||
if (PRCDoRangedTouchAttack(oTarget))
|
||||
{
|
||||
|
||||
@@ -18,17 +18,22 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
effect eVis2 = EffectVisualEffect(VFX_IMP_CONFUSION_S);
|
||||
effect eVis = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DISABLED);
|
||||
effect eBolt = EffectConfused();
|
||||
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||
effect eLink = EffectLinkEffects(eBolt, eDur);
|
||||
eLink = EffectLinkEffects(eLink, eVis);
|
||||
int nDC = 10 + (nHD/2);
|
||||
int nCount = (nHD + 1) / 2;
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
int nCount = (nHD + 1) / 2;
|
||||
nCount = GetScaledDuration(nCount, oTarget);
|
||||
|
||||
effect eVis2 = EffectVisualEffect(VFX_IMP_CONFUSION_S);
|
||||
effect eVis = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DISABLED);
|
||||
effect eBolt = EffectConfused();
|
||||
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||
effect eLink = EffectLinkEffects(eBolt, eDur);
|
||||
eLink = EffectLinkEffects(eLink, eVis);
|
||||
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_CONFUSE));
|
||||
|
||||
@@ -18,21 +18,25 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
effect eVis = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DISABLED);
|
||||
effect eBolt = EffectDazed();
|
||||
eBolt = GetScaledEffect(eBolt, oTarget);
|
||||
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||
effect eLink = EffectLinkEffects(eBolt, eDur);
|
||||
eLink = EffectLinkEffects(eLink, eVis);
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
int nCount = (nHD + 1) / 2;
|
||||
nCount = GetScaledDuration(nCount, oTarget);
|
||||
|
||||
effect eVis = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DISABLED);
|
||||
effect eBolt = EffectDazed();
|
||||
eBolt = GetScaledEffect(eBolt, oTarget);
|
||||
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||
effect eLink = EffectLinkEffects(eBolt, eDur);
|
||||
eLink = EffectLinkEffects(eLink, eVis);
|
||||
|
||||
int nDC = 10 + (nHD/2);
|
||||
int nCount = (nHD + 1) / 2;
|
||||
nCount = PRCGetScaledDuration(nCount, oTarget);
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_DAZE));
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_DAZE));
|
||||
//Make a saving throw check
|
||||
if (PRCDoRangedTouchAttack(oTarget))
|
||||
{
|
||||
|
||||
@@ -13,19 +13,23 @@
|
||||
//:: Updated On: July 15, 2003 Georg Zoeller - Removed saving throws
|
||||
//:://////////////////////////////////////////////
|
||||
#include "prc_inc_spells"
|
||||
#include "prc_inc_sp_tch"
|
||||
#include "prc_inc_sp_tch"
|
||||
#include "NW_I0_SPELLS"
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_DEATH);
|
||||
effect eBolt = EffectDeath();
|
||||
int nDC = 10 + (nHD/2);
|
||||
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_DEATH));
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_DEATH));
|
||||
//Make a saving throw check
|
||||
if(PRCDoRangedTouchAttack(oTarget))
|
||||
{
|
||||
|
||||
@@ -18,20 +18,22 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
int nCount = (nHD + 1) / 2;
|
||||
if (nCount == 0) { nCount = 1; }
|
||||
int nDamage = d6(nCount);
|
||||
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
|
||||
effect eBolt;
|
||||
int nDC = 10 + (nHD/2);
|
||||
int nCount = (nHD /3);
|
||||
if (nCount == 0)
|
||||
{
|
||||
nCount = 1;
|
||||
}
|
||||
int nDamage = d6(nCount);
|
||||
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_ABILITY_DRAIN_DEXTERITY));
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_ABILITY_DRAIN_DEXTERITY));
|
||||
//Make a saving throw check
|
||||
if (PRCDoRangedTouchAttack(oTarget))
|
||||
{
|
||||
|
||||
@@ -20,12 +20,15 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nRacial = GetRacialType(OBJECT_SELF);
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nRacial = MyPRCGetRacialType(oNPC);
|
||||
int nDisease;
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_DISEASE));
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_DISEASE));
|
||||
|
||||
//Here we use the racial type of the attacker to select an
|
||||
//appropriate disease.
|
||||
@@ -38,7 +41,7 @@ void main()
|
||||
nDisease = DISEASE_FILTH_FEVER;
|
||||
break;
|
||||
case RACIAL_TYPE_OUTSIDER:
|
||||
if(GetTag(OBJECT_SELF) == "NW_SLAADRED")
|
||||
if(GetTag(oNPC) == "NW_SLAADRED")
|
||||
{
|
||||
nDisease = DISEASE_RED_SLAAD_EGGS;
|
||||
}
|
||||
|
||||
@@ -18,23 +18,28 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_DOMINATE_S);
|
||||
effect eBolt = EffectDominated();
|
||||
eBolt = GetScaledEffect(eBolt, oTarget);
|
||||
effect eVis2 = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DOMINATED);
|
||||
eBolt = GetScaledEffect(eBolt, oTarget);
|
||||
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||
effect eLink = EffectLinkEffects(eBolt, eDur);
|
||||
eLink = EffectLinkEffects(eLink, eVis2);
|
||||
|
||||
int nDC = 10 + (nHD/2);
|
||||
int nCount = (nHD + 1) / 2;
|
||||
nCount = PRCGetScaledDuration(nCount, oTarget);
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
int nCount = (nHD + 1) / 2;
|
||||
if (nCount == 0) { nCount = 1; }
|
||||
nCount = GetScaledDuration(nCount, oTarget);
|
||||
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_DOMINATE_S);
|
||||
effect eBolt = EffectDominated();
|
||||
eBolt = GetScaledEffect(eBolt, oTarget);
|
||||
effect eVis2 = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DOMINATED);
|
||||
eBolt = GetScaledEffect(eBolt, oTarget);
|
||||
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||
effect eLink = EffectLinkEffects(eBolt, eDur);
|
||||
eLink = EffectLinkEffects(eLink, eVis2);
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_DOMINATE));
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_DOMINATE));
|
||||
|
||||
//Make a saving throw check
|
||||
if (PRCDoRangedTouchAttack(oTarget))
|
||||
{
|
||||
|
||||
@@ -19,21 +19,21 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
int nCount = nHD/2;
|
||||
if (nCount == 0) { nCount = 1; }
|
||||
int nDamage = d6(nCount);
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_FLAME_S);
|
||||
effect eBolt;
|
||||
int nDC = 10 + (nHD/2);
|
||||
int nCount = nHD /2;
|
||||
if (nCount == 0)
|
||||
{
|
||||
nCount = 1;
|
||||
}
|
||||
|
||||
int nDamage = d6(nCount);
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_FIRE));
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_FIRE));
|
||||
//Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
|
||||
//nDamage = GetReflexAdjustedDamage(nDamage, oTarget, nDC,SAVING_THROW_TYPE_FIRE);
|
||||
//Make a ranged touch attack
|
||||
|
||||
@@ -18,20 +18,21 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
int nCount = (nHD + 1) / 2;
|
||||
if (nCount == 0) { nCount = 1; }
|
||||
int nDamage = d6(nCount);
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
|
||||
effect eBolt;
|
||||
int nDC = 10 + (nHD/2);
|
||||
int nCount = (nHD /3);
|
||||
if (nCount == 0)
|
||||
{
|
||||
nCount = 1;
|
||||
}
|
||||
int nDamage = d6(nCount);
|
||||
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_ABILITY_DRAIN_INTELLIGENCE));
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_ABILITY_DRAIN_INTELLIGENCE));
|
||||
//Make a saving throw check
|
||||
if (PRCDoRangedTouchAttack(oTarget))
|
||||
{
|
||||
|
||||
@@ -18,15 +18,23 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_SONIC);
|
||||
effect eBolt = EffectKnockdown();
|
||||
int nDC = 10 + (nHD/2);
|
||||
effect eDam = PRCEffectDamage(oTarget, d6(), DAMAGE_TYPE_BLUDGEONING);
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_KNOCKDOWN));
|
||||
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
int nCount = nHD/2;
|
||||
if (nCount == 0) { nCount = 1; }
|
||||
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_SONIC);
|
||||
effect eBolt = EffectKnockdown();
|
||||
effect eDam = EffectDamage(d6(), DAMAGE_TYPE_BLUDGEONING);
|
||||
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_KNOCKDOWN));
|
||||
//Make a saving throw check
|
||||
if (PRCDoRangedTouchAttack(oTarget))
|
||||
{
|
||||
|
||||
@@ -17,20 +17,21 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
effect eLightning = EffectBeam(VFX_BEAM_LIGHTNING, OBJECT_SELF,BODY_NODE_HAND);
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
int nCount = nHD/2;
|
||||
if (nCount == 0) { nCount = 1; }
|
||||
int nDamage = d6(nCount);
|
||||
|
||||
effect eLightning = EffectBeam(VFX_BEAM_LIGHTNING, OBJECT_SELF,BODY_NODE_HAND);
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_LIGHTNING_S);
|
||||
effect eBolt;
|
||||
int nDC = 10 + (nHD/2);
|
||||
int nCount = nHD /2;
|
||||
if (nCount == 0)
|
||||
{
|
||||
nCount = 1;
|
||||
}
|
||||
|
||||
int nDamage = d6(nCount);
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_LIGHTNING));
|
||||
//Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
|
||||
@@ -51,6 +52,4 @@ void main()
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eBolt, oTarget);
|
||||
}
|
||||
}
|
||||
//SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||
//SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLightning, oTarget, 1.8);
|
||||
}
|
||||
|
||||
@@ -18,21 +18,23 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
int nCount = nHD/5;
|
||||
if (nCount == 0) { nCount = 1; }
|
||||
int nDamage = d6(nCount);
|
||||
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
|
||||
effect eBolt = EffectNegativeLevel(1);
|
||||
int nDC = 10 + (nHD/2);
|
||||
int nCount = nHD /5;
|
||||
if (nCount == 0)
|
||||
{
|
||||
nCount = 1;
|
||||
}
|
||||
|
||||
int nDamage = d6(nCount);
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_LEVEL_DRAIN));
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_LEVEL_DRAIN));
|
||||
|
||||
//Make a saving throw check
|
||||
if (PRCDoRangedTouchAttack(oTarget))
|
||||
{
|
||||
|
||||
@@ -18,20 +18,24 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
effect eVis = EffectVisualEffect(VFX_DUR_PARALYZED);
|
||||
effect eBolt = EffectParalyze();
|
||||
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||
effect eLink = EffectLinkEffects(eBolt, eDur);
|
||||
eLink = EffectLinkEffects(eLink, eVis);
|
||||
|
||||
int nDC = 10 + (nHD/2);
|
||||
int nCount = (nHD + 1) / 2;
|
||||
nCount = PRCGetScaledDuration(nCount, oTarget);
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
int nCount = (nHD + 1) / 2;
|
||||
if (nCount == 0) { nCount = 1; }
|
||||
nCount = GetScaledDuration(nCount, oTarget);
|
||||
|
||||
effect eVis = EffectVisualEffect(VFX_DUR_PARALYZED);
|
||||
effect eBolt = EffectParalyze();
|
||||
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||
effect eLink = EffectLinkEffects(eBolt, eDur);
|
||||
eLink = EffectLinkEffects(eLink, eVis);
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_PARALYZE));
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_PARALYZE));
|
||||
//Make a saving throw check
|
||||
if (PRCDoRangedTouchAttack(oTarget))
|
||||
{
|
||||
|
||||
@@ -18,14 +18,17 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
effect ePoison;
|
||||
int nPoison;
|
||||
int nRacial = MyPRCGetRacialType(OBJECT_SELF);
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nRacial = MyPRCGetRacialType(OBJECT_SELF);
|
||||
int nPoison;
|
||||
effect ePoison;
|
||||
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_POISON));
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_POISON));
|
||||
|
||||
//Determine the poison type based on the Racial Type and HD
|
||||
// June 3/04: Bugfix for some screwy if statements.
|
||||
|
||||
@@ -18,20 +18,22 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
int nCount = (nHD + 1) / 2;
|
||||
if (nCount == 0) { nCount = 1; }
|
||||
int nDamage = d6(nCount);
|
||||
|
||||
effect eBolt;
|
||||
int nDC = 10 + (nHD/2);
|
||||
int nCount = nHD /2;
|
||||
if (nCount == 0)
|
||||
{
|
||||
nCount = 1;
|
||||
}
|
||||
|
||||
int nDamage = d6(nCount);
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_SHARDS));
|
||||
|
||||
//Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
|
||||
//nDamage = GetReflexAdjustedDamage(nDamage, oTarget, nDC);
|
||||
//Make a ranged touch attack
|
||||
|
||||
@@ -18,18 +18,23 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
int nCount = (nHD + 1) / 2;
|
||||
if (nCount == 0) { nCount = 1; }
|
||||
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_SLOW);
|
||||
effect eBolt = EffectSlow();
|
||||
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||
effect eLink = EffectLinkEffects(eBolt, eDur);
|
||||
int nDC = 10 + (nHD/2);
|
||||
int nCount = (nHD + 1) / 2;
|
||||
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_SLOW));
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_SLOW));
|
||||
//Make a saving throw check
|
||||
if (PRCDoRangedTouchAttack(oTarget))
|
||||
{
|
||||
|
||||
@@ -18,18 +18,19 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
int nCount = (nHD + 1) / 2;
|
||||
if (nCount == 0) { nCount = 1; }
|
||||
int nDamage = d6(nCount);
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
|
||||
effect eBolt;
|
||||
int nDC = 10 + (nHD/2);
|
||||
int nCount = (nHD /3);
|
||||
if (nCount == 0)
|
||||
{
|
||||
nCount = 1;
|
||||
}
|
||||
int nDamage = d6(nCount);
|
||||
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_ABILITY_DRAIN_STRENGTH));
|
||||
//Make a saving throw check
|
||||
@@ -41,4 +42,4 @@ void main()
|
||||
SPApplyEffectToObject(DURATION_TYPE_PERMANENT, eBolt, oTarget);
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -18,19 +18,25 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_STUN);
|
||||
effect eBolt = EffectStunned();
|
||||
eBolt = GetScaledEffect(eBolt, oTarget);
|
||||
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||
effect eLink = EffectLinkEffects(eBolt, eDur);
|
||||
int nDC = 10 + (nHD/2);
|
||||
int nCount = (nHD + 1) / 2;
|
||||
nCount = PRCGetScaledDuration(nCount, oTarget);
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
int nCount = (nHD + 1) / 2;
|
||||
if (nCount == 0) { nCount = 1; }
|
||||
nCount = GetScaledDuration(nCount, oTarget);
|
||||
int nDamage = d6(nCount);
|
||||
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_STUN);
|
||||
effect eBolt = EffectStunned();
|
||||
eBolt = GetScaledEffect(eBolt, oTarget);
|
||||
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||
effect eLink = EffectLinkEffects(eBolt, eDur);
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_STUN));
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_STUN));
|
||||
//Make a saving throw check
|
||||
if (PRCDoRangedTouchAttack(oTarget))
|
||||
{
|
||||
|
||||
@@ -19,17 +19,21 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCONMod = GetAbilityModifier(ABILITY_CONSTITUTION, oNPC);
|
||||
int nDC = 10 +nCONMod+ (nHD/2);
|
||||
int nCount = 1 + (nHD /2);
|
||||
if (nCount == 0) { nCount = 1; }
|
||||
effect eVis = EffectVisualEffect(VFX_DUR_WEB);
|
||||
effect eStick = EffectEntangle();
|
||||
effect eLink = EffectLinkEffects(eVis, eStick);
|
||||
|
||||
int nDC = 10 + (nHD/2);
|
||||
int nCount = (nHD + 1) / 2;
|
||||
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_WEB));
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_WEB));
|
||||
//Make a saving throw check
|
||||
if (PRCDoRangedTouchAttack(oTarget))
|
||||
{
|
||||
|
||||
@@ -18,20 +18,21 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
int nCount = (nHD /3);
|
||||
if (nCount == 0) { nCount = 1; }
|
||||
int nDamage = d6(nCount);
|
||||
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
|
||||
effect eBolt;
|
||||
int nDC = 10 + (nHD/2);
|
||||
int nCount = (nHD /3);
|
||||
if (nCount == 0)
|
||||
{
|
||||
nCount = 1;
|
||||
}
|
||||
int nDamage = d6(nCount);
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BOLT_ABILITY_DRAIN_WISDOM));
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_BOLT_ABILITY_DRAIN_WISDOM));
|
||||
//Make a saving throw check
|
||||
if (PRCDoRangedTouchAttack(oTarget))
|
||||
{
|
||||
|
||||
@@ -17,11 +17,15 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget;
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
int nDamage;
|
||||
int nLoop = nHD / 3;
|
||||
int nDC = 10 + (nHD/2);
|
||||
int nLoop = nHD / 3;
|
||||
float fDelay;
|
||||
if(nLoop == 0)
|
||||
{
|
||||
@@ -33,7 +37,6 @@ void main()
|
||||
nDamage = nDamage + d6(2);
|
||||
}
|
||||
location lTargetLocation = PRCGetSpellTargetLocation();
|
||||
object oTarget;
|
||||
effect eCone;
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_ACID_S);
|
||||
|
||||
@@ -41,14 +44,14 @@ void main()
|
||||
//Get first target in spell area
|
||||
while(GetIsObjectValid(oTarget))
|
||||
{
|
||||
if(!GetIsReactionTypeFriendly(oTarget) && oTarget != OBJECT_SELF)
|
||||
if(!GetIsReactionTypeFriendly(oTarget) && oTarget != oNPC)
|
||||
{
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_CONE_ACID));
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_CONE_ACID));
|
||||
//Determine effect delay
|
||||
fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20;
|
||||
fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||
//Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
|
||||
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, GetSpellSaveDC(),SAVING_THROW_TYPE_ACID);
|
||||
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_ACID);
|
||||
//Set damage effect
|
||||
eCone = PRCEffectDamage(oTarget, nDamage, DAMAGE_TYPE_ACID);
|
||||
if(nDamage > 0)
|
||||
|
||||
@@ -17,21 +17,30 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget;
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
int nDamage;
|
||||
int nDice = nHD / 3;
|
||||
int nDC = 10 + (nHD/2);
|
||||
int nLoop = nHD / 3;
|
||||
|
||||
float fDelay;
|
||||
|
||||
if(nDice == 0)
|
||||
if(nLoop == 0)
|
||||
{
|
||||
nDice = 1;
|
||||
nLoop = 1;
|
||||
}
|
||||
nDice *= 2;
|
||||
|
||||
location lTargetLocation = PRCGetSpellTargetLocation();
|
||||
object oTarget;
|
||||
|
||||
//Calculate the damage
|
||||
for (nLoop; nLoop > 0; nLoop--)
|
||||
{
|
||||
nDamage = nDamage + d6(2);
|
||||
}
|
||||
location lTargetLocation = GetSpellTargetLocation();
|
||||
|
||||
effect eCone;
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_FROST_S);
|
||||
|
||||
@@ -39,14 +48,13 @@ void main()
|
||||
//Get first target in spell area
|
||||
while(GetIsObjectValid(oTarget))
|
||||
{
|
||||
if(!GetIsReactionTypeFriendly(oTarget) && oTarget != OBJECT_SELF)
|
||||
if(!GetIsReactionTypeFriendly(oTarget) && oTarget != oNPC)
|
||||
{
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_CONE_COLD));
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_CONE_COLD));
|
||||
//Determine effect delay
|
||||
fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20;
|
||||
fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||
//Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
|
||||
nDamage = d6(nDice);
|
||||
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_COLD);
|
||||
//Set damage effect
|
||||
eCone = PRCEffectDamage(oTarget, nDamage, DAMAGE_TYPE_COLD);
|
||||
|
||||
@@ -16,13 +16,21 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget;
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nRacial = MyPRCGetRacialType(oNPC);
|
||||
int nDisease;
|
||||
|
||||
location lTargetLocation = PRCGetSpellTargetLocation();
|
||||
object oTarget;
|
||||
|
||||
float fDelay;
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
int nRacial = MyPRCGetRacialType(OBJECT_SELF);
|
||||
int nDisease;
|
||||
|
||||
effect eCone = EffectDisease(nDisease);
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_DISEASE_S);
|
||||
|
||||
//Determine the disease type based on the Racial Type and HD
|
||||
switch (nRacial)
|
||||
{
|
||||
@@ -62,9 +70,7 @@ void main()
|
||||
|
||||
break;
|
||||
}
|
||||
//Set disease effect
|
||||
effect eCone = EffectDisease(nDisease);
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_DISEASE_S);
|
||||
|
||||
oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
|
||||
//Get first target in spell area
|
||||
while(GetIsObjectValid(oTarget))
|
||||
|
||||
@@ -19,12 +19,18 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget;
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
int nDamage;
|
||||
int nLoop = nHD / 3;
|
||||
int nDC = 10 + (nHD/2);
|
||||
int nLoop = nHD / 3;
|
||||
|
||||
float fDelay;
|
||||
|
||||
if(nLoop == 0)
|
||||
{
|
||||
nLoop = 1;
|
||||
@@ -35,22 +41,22 @@ void main()
|
||||
nDamage = nDamage + d6(2);
|
||||
}
|
||||
location lTargetLocation = PRCGetSpellTargetLocation();
|
||||
object oTarget;
|
||||
effect eLightning = EffectBeam(VFX_BEAM_LIGHTNING, OBJECT_SELF,BODY_NODE_HAND);
|
||||
effect eLightning = EffectBeam(VFX_BEAM_LIGHTNING, oNPC, BODY_NODE_HAND);
|
||||
effect eCone;
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_LIGHTNING_S);
|
||||
|
||||
oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE);
|
||||
//Get first target in spell area
|
||||
while(GetIsObjectValid(oTarget))
|
||||
{
|
||||
if(!GetIsReactionTypeFriendly(oTarget) && oTarget != OBJECT_SELF)
|
||||
if(!GetIsReactionTypeFriendly(oTarget) && oTarget != oNPC)
|
||||
{
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_CONE_LIGHTNING));
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_CONE_LIGHTNING));
|
||||
//Determine effect delay
|
||||
fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20;
|
||||
fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||
//Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
|
||||
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, PRCGetSpellSaveDC(), SAVING_THROW_TYPE_ELECTRICITY);
|
||||
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_ELECTRICITY);
|
||||
//Set damage effect
|
||||
eCone = PRCEffectDamage(oTarget, nDamage, DAMAGE_TYPE_ELECTRICAL);
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eLightning,oTarget,0.5);
|
||||
|
||||
@@ -18,11 +18,16 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget;
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
int nDamage;
|
||||
int nLoop = nHD / 3;
|
||||
int nDC = 10 + (nHD/2);
|
||||
int nLoop = nHD / 3;
|
||||
|
||||
float fDelay;
|
||||
if(nLoop == 0)
|
||||
{
|
||||
@@ -34,7 +39,6 @@ void main()
|
||||
nDamage = nDamage + d6(2);
|
||||
}
|
||||
location lTargetLocation = PRCGetSpellTargetLocation();
|
||||
object oTarget;
|
||||
effect eCone;
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_SONIC);
|
||||
|
||||
@@ -49,7 +53,7 @@ void main()
|
||||
//Determine effect delay
|
||||
fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20;
|
||||
//Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
|
||||
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, PRCGetSpellSaveDC(), DAMAGE_TYPE_SONIC);
|
||||
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC,DAMAGE_TYPE_SONIC);
|
||||
//Set damage effect
|
||||
eCone = PRCEffectDamage(oTarget, nDamage, DAMAGE_TYPE_SONIC);
|
||||
DelayCommand(fDelay, SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||
|
||||
@@ -16,32 +16,37 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
int nDamage = GetHitDice(OBJECT_SELF)/5;
|
||||
if (nDamage == 0)
|
||||
{
|
||||
nDamage = 1;
|
||||
}
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget;
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
|
||||
int nDamage = nHD/5;
|
||||
|
||||
if (nDamage == 0) {nDamage = 1;}
|
||||
|
||||
float fDelay;
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
int nDC = 10 + nHD;
|
||||
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
|
||||
effect eHowl;
|
||||
effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE);
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, OBJECT_SELF);
|
||||
//Get first target in spell area
|
||||
object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
|
||||
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||
while(GetIsObjectValid(oTarget))
|
||||
{
|
||||
if(oTarget != OBJECT_SELF)
|
||||
{
|
||||
if(!GetIsReactionTypeFriendly(oTarget))
|
||||
{
|
||||
if(oTarget != oNPC)
|
||||
{
|
||||
if(!GetIsReactionTypeFriendly(oTarget))
|
||||
{
|
||||
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_PULSE_ABILITY_DRAIN_CHARISMA));
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_ABILITY_DRAIN_CHARISMA));
|
||||
//Determine effect delay
|
||||
fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20;
|
||||
fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||
//Make a saving throw check
|
||||
if(!/*FortSave*/PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE, OBJECT_SELF, fDelay))
|
||||
{
|
||||
@@ -55,7 +60,7 @@ void main()
|
||||
}
|
||||
}
|
||||
//Get first target in spell area
|
||||
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
|
||||
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,31 +16,38 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
int nDamage;
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget;
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
int nDamage = d6(nHD);
|
||||
|
||||
float fDelay;
|
||||
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_FROST_S);
|
||||
effect eHowl;
|
||||
float fDelay;
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
int nDC = 10 + nHD;
|
||||
effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_COLD);
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, OBJECT_SELF);
|
||||
effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_COLD);
|
||||
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
|
||||
|
||||
//Get first target in spell area
|
||||
object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
|
||||
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||
while(GetIsObjectValid(oTarget))
|
||||
{
|
||||
if(oTarget != OBJECT_SELF)
|
||||
{
|
||||
if(!GetIsReactionTypeFriendly(oTarget))
|
||||
{
|
||||
if(oTarget != oNPC)
|
||||
{
|
||||
if(!GetIsReactionTypeFriendly(oTarget))
|
||||
{
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_PULSE_COLD));
|
||||
//Roll the damage
|
||||
nDamage = d6(GetHitDice(OBJECT_SELF));
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_COLD));
|
||||
|
||||
//Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
|
||||
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_COLD);
|
||||
//Determine effect delay
|
||||
fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20;
|
||||
fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||
eHowl = PRCEffectDamage(oTarget, nDamage, DAMAGE_TYPE_COLD);
|
||||
if(nDamage > 0)
|
||||
{
|
||||
@@ -51,7 +58,7 @@ void main()
|
||||
}
|
||||
}
|
||||
//Get next target in spell area
|
||||
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
|
||||
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -17,33 +17,40 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
int nDamage = GetHitDice(OBJECT_SELF)/5;
|
||||
if (nDamage == 0)
|
||||
{
|
||||
nDamage = 1;
|
||||
}
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget;
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
|
||||
int nDamage = nHD/5;
|
||||
|
||||
if (nDamage == 0) {nDamage = 1;}
|
||||
|
||||
float fDelay;
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
int nDC = 10 + nHD;
|
||||
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
|
||||
effect eHowl;
|
||||
effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE);
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, OBJECT_SELF);
|
||||
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
|
||||
|
||||
//Get first target in spell area
|
||||
object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
|
||||
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||
while(GetIsObjectValid(oTarget))
|
||||
{
|
||||
if(oTarget != OBJECT_SELF)
|
||||
{
|
||||
if(!GetIsReactionTypeFriendly(oTarget))
|
||||
{
|
||||
if(oTarget != oNPC)
|
||||
{
|
||||
if(!GetIsReactionTypeFriendly(oTarget))
|
||||
{
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_PULSE_ABILITY_DRAIN_CONSTITUTION));
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_ABILITY_DRAIN_CONSTITUTION));
|
||||
//Determine effect delay
|
||||
fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20;
|
||||
fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||
//Make a saving throw check
|
||||
if(!/*FortSave*/PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE, OBJECT_SELF, fDelay))
|
||||
if(!/*FortSave*/PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE, oNPC, fDelay))
|
||||
{
|
||||
//Set the Ability mod and change to supernatural effect
|
||||
eHowl = EffectAbilityDecrease(ABILITY_CONSTITUTION, nDamage);
|
||||
@@ -55,7 +62,7 @@ void main()
|
||||
}
|
||||
}
|
||||
//Get first target in spell area
|
||||
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
|
||||
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -17,27 +17,40 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget;
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
|
||||
int nDamage = nHD/5;
|
||||
|
||||
if (nDamage == 0) {nDamage = 1;}
|
||||
|
||||
float fDelay;
|
||||
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_DEATH);
|
||||
effect eHowl = EffectDeath();
|
||||
float fDelay;
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
int nDC = 10 + nHD;
|
||||
|
||||
effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE);
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, OBJECT_SELF);
|
||||
//Get first target in spell area
|
||||
object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
|
||||
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
|
||||
|
||||
//Get first target in spell area
|
||||
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||
while(GetIsObjectValid(oTarget))
|
||||
{
|
||||
if(!GetIsReactionTypeFriendly(oTarget))
|
||||
{
|
||||
if(oTarget != OBJECT_SELF)
|
||||
{
|
||||
if(!GetIsReactionTypeFriendly(oTarget))
|
||||
{
|
||||
if(oTarget != OBJECT_SELF)
|
||||
{
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_PULSE_DEATH));
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_DEATH));
|
||||
//Determine effect delay
|
||||
fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20;
|
||||
if(!/*FortSave*/PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_DEATH, OBJECT_SELF, fDelay))
|
||||
fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||
if(!/*FortSave*/PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_DEATH, oNPC, fDelay))
|
||||
{
|
||||
//Apply the VFX impact and effects
|
||||
DelayCommand(fDelay, SPApplyEffectToObject(DURATION_TYPE_INSTANT, eHowl, oTarget));
|
||||
@@ -46,7 +59,7 @@ void main()
|
||||
}
|
||||
}
|
||||
//Get next target in spell area
|
||||
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
|
||||
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -17,34 +17,39 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
int nDamage = GetHitDice(OBJECT_SELF)/5;
|
||||
if (nDamage == 0)
|
||||
{
|
||||
nDamage = 1;
|
||||
}
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget;
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
|
||||
int nDamage = nHD/5;
|
||||
|
||||
if (nDamage == 0) {nDamage = 1;}
|
||||
|
||||
float fDelay;
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
int nDC = 10 + nHD;
|
||||
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
|
||||
effect eHowl;
|
||||
effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE);
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, OBJECT_SELF);
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
|
||||
|
||||
//Get first target in spell area
|
||||
object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
|
||||
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||
while(GetIsObjectValid(oTarget))
|
||||
{
|
||||
if(oTarget != OBJECT_SELF)
|
||||
{
|
||||
if(!GetIsReactionTypeFriendly(oTarget))
|
||||
{
|
||||
if(oTarget != oNPC)
|
||||
{
|
||||
if(!GetIsReactionTypeFriendly(oTarget))
|
||||
{
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_PULSE_ABILITY_DRAIN_DEXTERITY));
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_ABILITY_DRAIN_DEXTERITY));
|
||||
//Determine effect delay
|
||||
fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20;
|
||||
fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||
//Make a saving throw check
|
||||
if(!/*FortSave*/PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE, OBJECT_SELF, fDelay))
|
||||
if(!/*FortSave*/PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE, oNPC, fDelay))
|
||||
{
|
||||
//Set the Ability mod and change to supernatural effect
|
||||
eHowl = EffectAbilityDecrease(ABILITY_DEXTERITY, nDamage);
|
||||
@@ -56,7 +61,7 @@ void main()
|
||||
}
|
||||
}
|
||||
//Get first target in spell area
|
||||
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
|
||||
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -15,14 +15,22 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
int nDamage = d6(GetHitDice(OBJECT_SELF));
|
||||
int nRacial = MyPRCGetRacialType(OBJECT_SELF);
|
||||
int nDisease;
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget;
|
||||
|
||||
int nRacial = MyPRCGetRacialType(oNPC);
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nDamage = d6(nHD);
|
||||
int nDisease;
|
||||
|
||||
float fDelay;
|
||||
|
||||
effect eDisease;
|
||||
effect ePulse = EffectVisualEffect(266);
|
||||
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, ePulse, GetLocation(OBJECT_SELF));
|
||||
effect ePulse = EffectVisualEffect(266);
|
||||
effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NATURE);
|
||||
|
||||
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, ePulse, GetLocation(oNPC));
|
||||
|
||||
//Determine the disease type based on the Racial Type
|
||||
switch (nRacial)
|
||||
@@ -46,16 +54,17 @@ void main()
|
||||
nDisease = DISEASE_MINDFIRE;
|
||||
break;
|
||||
}
|
||||
effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NATURE);
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, OBJECT_SELF);
|
||||
//Get first target in spell area
|
||||
object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
|
||||
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
|
||||
|
||||
//Get first target in spell area
|
||||
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||
while(GetIsObjectValid(oTarget))
|
||||
{
|
||||
if(oTarget != OBJECT_SELF)
|
||||
{
|
||||
if(!GetIsReactionTypeFriendly(oTarget))
|
||||
{
|
||||
if(oTarget != oNPC)
|
||||
{
|
||||
if(!GetIsReactionTypeFriendly(oTarget))
|
||||
{
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_PULSE_DISEASE));
|
||||
//Determine effect delay
|
||||
@@ -66,7 +75,7 @@ void main()
|
||||
}
|
||||
}
|
||||
//Get next target in spell area
|
||||
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
|
||||
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -15,32 +15,38 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget;
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
int nDamage;
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_LIGHTNING_S);
|
||||
effect eHowl = EffectVisualEffect(VFX_IMP_PULSE_COLD);
|
||||
DelayCommand(0.5, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eHowl, GetLocation(OBJECT_SELF)));
|
||||
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_LIGHTNING_S);
|
||||
effect eLightning = EffectBeam(VFX_BEAM_LIGHTNING, oNPC, BODY_NODE_CHEST);
|
||||
effect eHowl = EffectVisualEffect(VFX_IMP_PULSE_COLD);
|
||||
|
||||
DelayCommand(0.5, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eHowl, GetLocation(oNPC)));
|
||||
|
||||
effect eLightning = EffectBeam(VFX_BEAM_LIGHTNING, OBJECT_SELF,BODY_NODE_CHEST);
|
||||
float fDelay;
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
int nDC = 10 + nHD;
|
||||
//Get first target in spell area
|
||||
object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
|
||||
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||
while(GetIsObjectValid(oTarget))
|
||||
{
|
||||
if(oTarget != OBJECT_SELF)
|
||||
{
|
||||
if(!GetIsReactionTypeFriendly(oTarget))
|
||||
{
|
||||
if(oTarget != oNPC)
|
||||
{
|
||||
if(!GetIsReactionTypeFriendly(oTarget))
|
||||
{
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_PULSE_LIGHTNING));
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_LIGHTNING));
|
||||
//Roll the damage
|
||||
nDamage = d6(nHD);
|
||||
//Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
|
||||
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_ELECTRICITY);
|
||||
//Determine effect delay
|
||||
fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20;
|
||||
fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||
eHowl = PRCEffectDamage(oTarget, nDamage, DAMAGE_TYPE_ELECTRICAL);
|
||||
if(nDamage > 0)
|
||||
{
|
||||
@@ -52,7 +58,7 @@ void main()
|
||||
}
|
||||
}
|
||||
//Get next target in spell area
|
||||
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
|
||||
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,23 +16,29 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget;
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
int nDamage;
|
||||
|
||||
float fDelay;
|
||||
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_FLAME_S);
|
||||
effect eHowl;
|
||||
float fDelay;
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
int nDC = 10 + nHD;
|
||||
effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_FIRE);
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, OBJECT_SELF);
|
||||
//Get first target in spell area
|
||||
object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
|
||||
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
|
||||
while(GetIsObjectValid(oTarget))
|
||||
{
|
||||
if(oTarget != OBJECT_SELF)
|
||||
{
|
||||
if(!GetIsReactionTypeFriendly(oTarget))
|
||||
{
|
||||
if(oTarget != OBJECT_SELF)
|
||||
{
|
||||
if(!GetIsReactionTypeFriendly(oTarget))
|
||||
{
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_PULSE_FIRE));
|
||||
//Roll the damage
|
||||
|
||||
@@ -16,35 +16,42 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget;
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
int nDamage;
|
||||
|
||||
float fDelay;
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_HEALING_M);
|
||||
effect eVis2 = EffectVisualEffect(VFX_IMP_SUNSTRIKE);
|
||||
effect eHowl;
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
int nDC = 10 + nHD;
|
||||
effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_HOLY);
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, OBJECT_SELF);
|
||||
//Get first target in spell area
|
||||
object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
|
||||
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
|
||||
|
||||
//Get first target in spell area
|
||||
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||
while(GetIsObjectValid(oTarget))
|
||||
{
|
||||
|
||||
//Determine effect delay
|
||||
fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20;
|
||||
fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||
//Roll the amount to heal or damage
|
||||
nDamage = d4(nHD);
|
||||
//If the target is not undead
|
||||
if (MyPRCGetRacialType(oTarget) != RACIAL_TYPE_UNDEAD)
|
||||
{
|
||||
//Make a faction check
|
||||
if(oTarget != OBJECT_SELF)
|
||||
if(oTarget != oNPC)
|
||||
{
|
||||
if(GetIsFriend(oTarget))
|
||||
{
|
||||
if(GetIsFriend(oTarget))
|
||||
{
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_PULSE_HOLY, FALSE));
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_HOLY, FALSE));
|
||||
//Set heal effect
|
||||
eHowl = EffectHeal(nDamage);
|
||||
//Apply the VFX impact and effects
|
||||
@@ -55,8 +62,8 @@ void main()
|
||||
}
|
||||
else
|
||||
{
|
||||
if(!GetIsReactionTypeFriendly(oTarget))
|
||||
{
|
||||
if(!GetIsReactionTypeFriendly(oTarget))
|
||||
{
|
||||
//Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
|
||||
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_DIVINE);
|
||||
//Set damage effect
|
||||
@@ -64,7 +71,7 @@ void main()
|
||||
if(nDamage > 0)
|
||||
{
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_PULSE_HOLY));
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_HOLY));
|
||||
//Apply the VFX impact and effects
|
||||
DelayCommand(fDelay, SPApplyEffectToObject(DURATION_TYPE_INSTANT, eHowl, oTarget));
|
||||
DelayCommand(fDelay, SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis2, oTarget));
|
||||
@@ -72,7 +79,7 @@ void main()
|
||||
}
|
||||
}
|
||||
//Get next target in spell area
|
||||
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
|
||||
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -17,34 +17,41 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
int nDamage = GetHitDice(OBJECT_SELF)/5;
|
||||
if (nDamage == 0)
|
||||
{
|
||||
nDamage = 1;
|
||||
}
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget;
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
|
||||
int nDamage = nHD/5;
|
||||
|
||||
if (nDamage == 0) {nDamage = 1;}
|
||||
|
||||
float fDelay;
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
int nDC = 10 + nHD;
|
||||
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
|
||||
effect eHowl;
|
||||
effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE);
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, OBJECT_SELF);
|
||||
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
|
||||
|
||||
//Get first target in spell area
|
||||
object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
|
||||
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||
while(GetIsObjectValid(oTarget))
|
||||
{
|
||||
if(oTarget != OBJECT_SELF)
|
||||
{
|
||||
if(!GetIsReactionTypeFriendly(oTarget))
|
||||
{
|
||||
if(oTarget != oNPC)
|
||||
{
|
||||
if(!GetIsReactionTypeFriendly(oTarget))
|
||||
{
|
||||
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_PULSE_ABILITY_DRAIN_INTELLIGENCE));
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_ABILITY_DRAIN_INTELLIGENCE));
|
||||
//Determine effect delay
|
||||
fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20;
|
||||
fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||
//Make a saving throw check
|
||||
if(!/*FortSave*/PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE, OBJECT_SELF, fDelay))
|
||||
if(!/*FortSave*/PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE, oNPC, fDelay))
|
||||
{
|
||||
//Set the Ability mod and change to supernatural effect
|
||||
eHowl = EffectAbilityDecrease(ABILITY_INTELLIGENCE, nDamage);
|
||||
|
||||
@@ -17,25 +17,34 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
//:: Declare major variables
|
||||
object oNPC = GetAreaOfEffectCreator();
|
||||
object oTarget = GetEnteringObject();
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
|
||||
float fDelay;
|
||||
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
|
||||
effect eHowl;
|
||||
float fDelay;
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
int nDC = 10 + nHD;
|
||||
effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE);
|
||||
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eImpact, GetLocation(OBJECT_SELF));
|
||||
object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
|
||||
//Get first target in spell area
|
||||
|
||||
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eImpact, GetLocation(oNPC));
|
||||
|
||||
//Get first target in spell area
|
||||
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||
|
||||
while(GetIsObjectValid(oTarget))
|
||||
{
|
||||
if(oTarget != OBJECT_SELF)
|
||||
{
|
||||
if(!GetIsReactionTypeFriendly(oTarget))
|
||||
{
|
||||
fDelay = GetSpellEffectDelay(GetLocation(OBJECT_SELF), oTarget)/20;
|
||||
if(oTarget != oNPC)
|
||||
{
|
||||
if(!GetIsReactionTypeFriendly(oTarget))
|
||||
{
|
||||
fDelay = GetSpellEffectDelay(GetLocation(oNPC), oTarget)/20;
|
||||
//Make a saving throw check
|
||||
if(!PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE, OBJECT_SELF, fDelay))
|
||||
if(!PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE, oNPC, fDelay))
|
||||
{
|
||||
//Apply the VFX impact and effects
|
||||
eHowl = EffectNegativeLevel(1);
|
||||
@@ -45,7 +54,7 @@ void main()
|
||||
}
|
||||
}
|
||||
//Get next target in spell area
|
||||
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
|
||||
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,24 +16,32 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
int nDamage;
|
||||
//:: Declare major variables
|
||||
object oNPC = GetAreaOfEffectCreator();
|
||||
object oTarget = GetEnteringObject();
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
int nDamage;
|
||||
|
||||
float fDelay;
|
||||
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_HEALING_M);
|
||||
effect eVis2 = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
|
||||
effect eHowl;
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
int nDC = 10 + nHD;
|
||||
effect eHowl;
|
||||
effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE);
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, OBJECT_SELF);
|
||||
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
|
||||
|
||||
//Get first target in spell area
|
||||
object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
|
||||
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||
while(GetIsObjectValid(oTarget))
|
||||
{
|
||||
if(oTarget != OBJECT_SELF)
|
||||
{
|
||||
if(oTarget != oNPC)
|
||||
{
|
||||
//Determine effect delay
|
||||
fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20;
|
||||
fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||
//Roll the amount to heal or damage
|
||||
nDamage = d4(nHD);
|
||||
//If the target is undead
|
||||
@@ -43,7 +51,7 @@ void main()
|
||||
if(GetIsFriend(oTarget))
|
||||
{
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_PULSE_HOLY, FALSE));
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_HOLY, FALSE));
|
||||
//Set heal effect
|
||||
eHowl = EffectHeal(nDamage);
|
||||
//Apply the VFX impact and effects
|
||||
@@ -53,8 +61,8 @@ void main()
|
||||
}
|
||||
else
|
||||
{
|
||||
if(!GetIsReactionTypeFriendly(oTarget) && MyPRCGetRacialType(oTarget) != RACIAL_TYPE_UNDEAD)
|
||||
{
|
||||
if(!GetIsReactionTypeFriendly(oTarget) && MyPRCGetRacialType(oTarget) != RACIAL_TYPE_UNDEAD)
|
||||
{
|
||||
//Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
|
||||
nDamage = PRCGetReflexAdjustedDamage(nDamage, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE);
|
||||
//Set damage effect
|
||||
@@ -62,7 +70,7 @@ void main()
|
||||
if(nDamage > 0)
|
||||
{
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_PULSE_HOLY));
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_HOLY));
|
||||
//Apply the VFX impact and effects
|
||||
DelayCommand(fDelay, SPApplyEffectToObject(DURATION_TYPE_INSTANT, eHowl, oTarget));
|
||||
DelayCommand(fDelay, SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis2, oTarget));
|
||||
@@ -71,6 +79,6 @@ void main()
|
||||
}
|
||||
}
|
||||
//Get next target in spell area
|
||||
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
|
||||
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,14 +16,21 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
int nDamage = d6(GetHitDice(OBJECT_SELF));
|
||||
int nRacial = GetRacialType(OBJECT_SELF);
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget;
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCONMod = GetAbilityModifier(ABILITY_CONSTITUTION, oNPC);
|
||||
int nDC = 10 +nCONMod+ (nHD/2);
|
||||
int nRacial = MyPRCGetRacialType(oNPC);
|
||||
int nPoison;
|
||||
|
||||
float fDelay;
|
||||
|
||||
effect ePoison;
|
||||
|
||||
effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NATURE);
|
||||
|
||||
//Determine the poison type based on the Racial Type and HD
|
||||
switch (nRacial)
|
||||
{
|
||||
@@ -102,27 +109,28 @@ void main()
|
||||
}
|
||||
break;
|
||||
}
|
||||
effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NATURE);
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, OBJECT_SELF);
|
||||
//Get first target in spell area
|
||||
object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
|
||||
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
|
||||
|
||||
//Get first target in spell area
|
||||
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||
while(GetIsObjectValid(oTarget))
|
||||
{
|
||||
if(oTarget != OBJECT_SELF)
|
||||
if(oTarget != oNPC)
|
||||
{
|
||||
if(!GetIsReactionTypeFriendly(oTarget))
|
||||
{
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_PULSE_POISON));
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_POISON));
|
||||
//Determine effect delay
|
||||
fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20;
|
||||
fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||
ePoison = EffectPoison(nPoison);
|
||||
//Apply the VFX impact and effects
|
||||
DelayCommand(fDelay, SPApplyEffectToObject(DURATION_TYPE_PERMANENT, ePoison, oTarget));
|
||||
}
|
||||
}
|
||||
//Get next target in spell area
|
||||
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
|
||||
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -15,8 +15,10 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
object oNPC = oNPC;
|
||||
//if (WildMagicOverride()) { return; }
|
||||
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget;
|
||||
|
||||
float fDelay;
|
||||
@@ -29,10 +31,10 @@ void main()
|
||||
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM, GetLocation(oNPC));
|
||||
while(GetIsObjectValid(oTarget))
|
||||
{
|
||||
if(oTarget != oNPC)
|
||||
{
|
||||
if(!GetIsReactionTypeFriendly(oTarget))
|
||||
{
|
||||
if(oTarget != oNPC)
|
||||
{
|
||||
if(!GetIsReactionTypeFriendly(oTarget))
|
||||
{
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_DISEASE));
|
||||
//Determine effect delay
|
||||
@@ -43,6 +45,6 @@ void main()
|
||||
}
|
||||
}
|
||||
//Get next target in spell area
|
||||
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM, GetLocation(oNPC));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,37 +12,45 @@
|
||||
//:: Created By: Preston Watamaniuk
|
||||
//:: Created On: May 14, 2000
|
||||
//:://////////////////////////////////////////////
|
||||
#include "NW_I0_SPELLS"
|
||||
#include "prc_inc_spells"
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
int nDamage = GetHitDice(OBJECT_SELF)/5;
|
||||
if (nDamage == 0)
|
||||
{
|
||||
nDamage = 1;
|
||||
}
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget;
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
|
||||
int nDamage = nHD/5;
|
||||
|
||||
if (nDamage == 0) {nDamage = 1;}
|
||||
|
||||
float fDelay;
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
int nDC = 10 + nHD;
|
||||
|
||||
effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE);
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, OBJECT_SELF);
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
|
||||
effect eHowl;
|
||||
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oNPC);
|
||||
|
||||
//Get first target in spell area
|
||||
object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
|
||||
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||
while(GetIsObjectValid(oTarget))
|
||||
{
|
||||
if(oTarget != OBJECT_SELF)
|
||||
{
|
||||
if(!GetIsReactionTypeFriendly(oTarget))
|
||||
{
|
||||
if(oTarget != oNPC)
|
||||
{
|
||||
if(!GetIsReactionTypeFriendly(oTarget))
|
||||
{
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_PULSE_ABILITY_DRAIN_STRENGTH));
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_ABILITY_DRAIN_STRENGTH));
|
||||
//Determine effect delay
|
||||
fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20;
|
||||
fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||
//Make a saving throw check
|
||||
if(!/*FortSave*/PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE, OBJECT_SELF, fDelay))
|
||||
if(!/*FortSave*/PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE, oNPC, fDelay))
|
||||
{
|
||||
//Set the Ability mod and change to supernatural effect
|
||||
eHowl = EffectAbilityDecrease(ABILITY_STRENGTH, nDamage);
|
||||
@@ -53,8 +61,8 @@ void main()
|
||||
}
|
||||
}
|
||||
}
|
||||
//Get first target in spell area
|
||||
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
|
||||
//Get next target in spell area
|
||||
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -14,15 +14,23 @@
|
||||
//:: Created By: Preston Watamaniuk
|
||||
//:: Created On: Jan 8, 2002
|
||||
//::///////////////////////////////////////////////
|
||||
#include "NW_I0_SPELLS"
|
||||
#include "prc_inc_spells"
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget;
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nSTRMod = GetAbilityModifier(ABILITY_STRENGTH, oNPC);
|
||||
int nDC = 10 +nSTRMod+ (nHD/2);
|
||||
|
||||
effect eDown = EffectKnockdown();
|
||||
effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_WIND);
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, OBJECT_SELF);
|
||||
object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
|
||||
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
|
||||
int nDamage = GetHitDice(OBJECT_SELF) /2;
|
||||
effect eDam;
|
||||
//Get first target in spell area
|
||||
@@ -33,7 +41,7 @@ void main()
|
||||
if(!GetIsReactionTypeFriendly(oTarget) && oTarget != OBJECT_SELF)
|
||||
{
|
||||
//Make a saving throw check
|
||||
if(!PRCMySavingThrow(SAVING_THROW_REFLEX, oTarget, 14))
|
||||
if(!PRCMySavingThrow(SAVING_THROW_REFLEX, oTarget, nDC))
|
||||
{
|
||||
//Apply the VFX impact and effects
|
||||
|
||||
@@ -42,6 +50,6 @@ void main()
|
||||
}
|
||||
//Get next target in spell area
|
||||
}
|
||||
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF));
|
||||
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oNPC));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Pulse: Wisdom Drain
|
||||
//:: NW_S1_PulsDeath
|
||||
//:: NW_S1_PulsWisDr
|
||||
//:: Copyright (c) 2001 Bioware Corp.
|
||||
//:://////////////////////////////////////////////
|
||||
/*
|
||||
@@ -12,35 +12,40 @@
|
||||
//:: Created By: Preston Watamaniuk
|
||||
//:: Created On: May 14, 2000
|
||||
//:://////////////////////////////////////////////
|
||||
#include "NW_I0_SPELLS"
|
||||
#include "prc_inc_spells"
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables
|
||||
int nDamage = GetHitDice(OBJECT_SELF)/5;
|
||||
if (nDamage == 0)
|
||||
{
|
||||
nDamage = 1;
|
||||
}
|
||||
//:: Declare major variables
|
||||
object oNPC = OBJECT_SELF;
|
||||
object oTarget;
|
||||
|
||||
int nHD = GetHitDice(oNPC);
|
||||
int nCHAMod = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
|
||||
int nDC = 10 +nCHAMod+ (nHD/2);
|
||||
|
||||
int nDamage = nHD/5;
|
||||
|
||||
if (nDamage == 0) {nDamage = 1;}
|
||||
|
||||
float fDelay;
|
||||
int nHD = GetHitDice(OBJECT_SELF);
|
||||
int nDC = 10 + nHD;
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
|
||||
effect eHowl;
|
||||
effect eImpact = EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE);
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, OBJECT_SELF);
|
||||
//Get first target in spell area
|
||||
object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM, GetLocation(OBJECT_SELF));
|
||||
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM, GetLocation(OBJECT_SELF));
|
||||
while(GetIsObjectValid(oTarget))
|
||||
{
|
||||
if(!GetIsReactionTypeFriendly(oTarget) && oTarget != OBJECT_SELF)
|
||||
{
|
||||
if(!GetIsReactionTypeFriendly(oTarget) && oTarget != OBJECT_SELF)
|
||||
{
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_PULSE_ABILITY_DRAIN_WISDOM));
|
||||
SignalEvent(oTarget, EventSpellCastAt(oNPC, SPELLABILITY_PULSE_ABILITY_DRAIN_WISDOM));
|
||||
//Determine effect delay
|
||||
fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20;
|
||||
fDelay = GetDistanceBetween(oNPC, oTarget)/20;
|
||||
//Make a saving throw check
|
||||
if(!/*FortSave*/PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE, OBJECT_SELF, fDelay))
|
||||
if(!/*FortSave*/PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE, oNPC, fDelay))
|
||||
{
|
||||
//Set the Ability mod and change to supernatural effect
|
||||
eHowl = EffectAbilityDecrease(ABILITY_WISDOM, nDamage);
|
||||
|
||||
Reference in New Issue
Block a user