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:
File diff suppressed because it is too large
Load Diff
@@ -21,8 +21,42 @@ void MindStab(object oPC, object oTarget);
|
||||
// ---------------
|
||||
// BEGIN FUNCTIONS
|
||||
// ---------------
|
||||
void SweepingStrike(object oCaster, object oTarget)
|
||||
{
|
||||
// Prevent multiple sweeping strikes from the same primary target in the same attack sequence
|
||||
string sAttackKey = "SweepingStrike_" + ObjectToString(oCaster) + "_" + ObjectToString(oTarget);
|
||||
if(GetLocalInt(oCaster, sAttackKey))
|
||||
return;
|
||||
|
||||
// Mark this attack sequence as processed
|
||||
SetLocalInt(oCaster, sAttackKey, TRUE);
|
||||
DelayCommand(0.5, DeleteLocalInt(oCaster, sAttackKey));
|
||||
|
||||
// Find valid secondary target
|
||||
location lTarget = GetLocation(oTarget);
|
||||
object oAreaTarget = MyFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM, lTarget, TRUE, OBJECT_TYPE_CREATURE);
|
||||
|
||||
while(GetIsObjectValid(oAreaTarget))
|
||||
{
|
||||
// Must be different from primary target and within melee range of both
|
||||
if(oAreaTarget != oTarget &&
|
||||
oAreaTarget != oCaster &&
|
||||
GetIsInMeleeRange(oAreaTarget, oCaster) &&
|
||||
GetIsInMeleeRange(oAreaTarget, oTarget) &&
|
||||
GetIsReactionTypeHostile(oAreaTarget, oCaster))
|
||||
{
|
||||
// Perform the sweeping strike attack
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_STUN);
|
||||
object oWeap = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oCaster);
|
||||
PerformAttack(oAreaTarget, oCaster, eVis, 0.0, 0, 0, GetWeaponDamageType(oWeap), "Sweeping Strike Hit", "Sweeping Strike Miss");
|
||||
break; // Only one sweeping strike per primary attack
|
||||
}
|
||||
oAreaTarget = MyNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM, lTarget, TRUE, OBJECT_TYPE_CREATURE);
|
||||
}
|
||||
}
|
||||
|
||||
void SweepingStrike(object oCaster, object oTarget)
|
||||
|
||||
/* void SweepingStrike(object oCaster, object oTarget)
|
||||
{
|
||||
int nValidTarget = FALSE;
|
||||
int nRandom = Random(9999);
|
||||
@@ -61,7 +95,7 @@ void SweepingStrike(object oCaster, object oTarget)
|
||||
}// end while - Target loop
|
||||
DelayCommand(1.0, DeleteLocalInt(oCaster, sKillSwitch));
|
||||
}
|
||||
|
||||
*/
|
||||
void MindStab(object oPC, object oTarget)
|
||||
{
|
||||
SetLocalInt(oPC, "ShadowCloudMind", TRUE);
|
||||
@@ -76,4 +110,6 @@ void MindStab(object oPC, object oTarget)
|
||||
DelayCommand(1.0, DeleteLocalObject(oPC, "PsionicTarget"));
|
||||
DeleteLocalInt(oPC, "MindStabDur");
|
||||
//DelayCommand(0.33, AssignCommand(oPC, ActionAttack(oTarget)));
|
||||
}
|
||||
}
|
||||
|
||||
//void main (){}
|
||||
@@ -696,7 +696,28 @@ void main()
|
||||
if (GetAlignmentGoodEvil(oMeldshaper) == ALIGNMENT_EVIL)
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyDamageBonus(DamageTypeToIPConst(GetWeaponDamageType(oItem)), IPDamageConstant((nEssentia*2) + nBonus)), 9999.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, TRUE);
|
||||
}
|
||||
if (GetHasSpellEffect(MELD_NECROCARNUM_WEAPON, oMeldshaper))
|
||||
if (GetHasSpellEffect(MELD_NECROCARNUM_WEAPON, oMeldshaper))
|
||||
{
|
||||
// Get current enhancement bonus
|
||||
int nCurrentEnh = IPGetWeaponEnhancementBonus(oItem, FALSE);
|
||||
|
||||
// Calculate needed enhancement to reach +3 total
|
||||
int nNeededEnh = 3 - nCurrentEnh;
|
||||
if (nNeededEnh > 0)
|
||||
{
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyEnhancementBonus(nNeededEnh), 9999.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, TRUE);
|
||||
// Add matching penalty to keep attack bonus unchanged
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyEnhancementPenalty(nNeededEnh), 9999.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, TRUE);
|
||||
}
|
||||
|
||||
if (GetIsMeldBound(oMeldshaper, MELD_NECROCARNUM_WEAPON) == CHAKRA_HANDS || GetIsMeldBound(oMeldshaper, MELD_NECROCARNUM_WEAPON) == CHAKRA_DOUBLE_HANDS)
|
||||
{
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER, 1), 9999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
||||
AddEventScript(oItem, EVENT_ITEM_ONHIT, "moi_events", TRUE, FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
/* if (GetHasSpellEffect(MELD_NECROCARNUM_WEAPON, oMeldshaper))
|
||||
{
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyAttackBonus(3), 9999.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, TRUE);
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyAttackPenalty(3), 9999.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, TRUE);
|
||||
@@ -706,7 +727,7 @@ void main()
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER, 1), 9999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
||||
AddEventScript(oItem, EVENT_ITEM_ONHIT, "moi_events", TRUE, FALSE);
|
||||
}
|
||||
}
|
||||
} */
|
||||
if (GetIsMeldBound(oMeldshaper, MELD_MAULING_GAUNTLETS) == CHAKRA_ARMS || GetIsMeldBound(oMeldshaper, MELD_MAULING_GAUNTLETS) == CHAKRA_DOUBLE_ARMS)
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyKeen(), 9999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,16 @@
|
||||
#include "moi_inc_moifunc"
|
||||
#include "inc_dynconv"
|
||||
|
||||
// Add this function to handle delayed processing
|
||||
void DelayedChakraBindUnequip(object oMeldshaper, object oItem)
|
||||
{
|
||||
// Check if we're still in a valid state
|
||||
if(GetIsObjectValid(oMeldshaper) && GetIsObjectValid(oItem))
|
||||
{
|
||||
ChakraBindUnequip(oMeldshaper, oItem);
|
||||
}
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
int nEvent = GetRunningEvent();
|
||||
@@ -12,6 +22,7 @@ void main()
|
||||
{
|
||||
case EVENT_ONPLAYERREST_FINISHED: oMeldshaper = GetLastBeingRested(); break;
|
||||
case EVENT_ONCLIENTENTER: oMeldshaper = GetEnteringObject(); break;
|
||||
case EVENT_ONPLAYEREQUIPITEM: oMeldshaper = GetItemLastEquippedBy(); break;
|
||||
|
||||
default:
|
||||
oMeldshaper = OBJECT_SELF;
|
||||
@@ -38,7 +49,7 @@ void main()
|
||||
AssignCommand(oMeldshaper, ClearAllActions(TRUE));
|
||||
SetLocalInt(oMeldshaper, "MeldshapeClass", CLASS_TYPE_INCARNATE);
|
||||
StartDynamicConversation("moi_meldshapecnv", oMeldshaper, DYNCONV_EXIT_NOT_ALLOWED, FALSE, TRUE, oMeldshaper);
|
||||
}
|
||||
}
|
||||
else if(nEvent == EVENT_ONPLAYEREQUIPITEM)
|
||||
{
|
||||
oMeldshaper = GetItemLastEquippedBy();
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
/*
|
||||
/*
|
||||
|
||||
moi_mld_necrowpn
|
||||
|
||||
20/1/20 by Stratovarius
|
||||
|
||||
Necrocarnum Weapon
|
||||
@@ -58,7 +61,7 @@ void main()
|
||||
effect eLink = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
||||
|
||||
if (nEssentia) eLink = EffectLinkEffects(eLink, NecrocarnumWeapon(nEssentia));
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, SupernaturalEffect(eLink), oMeldshaper, 9999.0);
|
||||
DelayCommand(0.1f, SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, SupernaturalEffect(eLink), oMeldshaper, 9999.0));
|
||||
|
||||
IPSafeAddItemProperty(GetPCSkin(oMeldshaper), ItemPropertyBonusFeat(IP_CONST_MELD_NECROCARNUM_WEAPON), 9999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
Binary file not shown.
@@ -77057,15 +77057,15 @@ Tortoise shell slows a creature's movement as if it were wearing heavy armor. An
|
||||
<entry id="213318" lang="en" sex="m">Tortoise Shell (18)</entry>
|
||||
<entry id="213319" lang="en" sex="m">Sanctify Ki Strike</entry>
|
||||
<entry id="213320" lang="en" sex="m">Type of Feat: Exalted
|
||||
Prerequisite: Improved Unarmed Strike, CHA 15, Ki strike
|
||||
Prerequisite: Improved Unarmed Strike, CHA 15, Ki strike, Good alignment.
|
||||
Specifics: A Your unarmed strikes deal 1 extra point of damage to evil creatures, or 1d4 points to evil outsiders and evil undead. In addition, they are considered good-aligned for purposes of overcoming damage reduction.</entry>
|
||||
<entry id="213321" lang="en" sex="m">Holy Ki Strike</entry>
|
||||
<entry id="213322" lang="en" sex="m">Type of Feat: Exalted
|
||||
Prerequisite: Improved Unarmed Strike, CHA 15, Ki strike, Sanctify Ki Strike
|
||||
Prerequisite: Improved Unarmed Strike, CHA 15, Ki strike, Sanctify Ki Strike, good alignment
|
||||
Specifics: Your unarmed strike deals 2d6 points of extra holy damage to evil creatures. In addition, it is considered holy, which means that it can bypass the damage reduction of some evil outsiders. This does not stack with the extra damage from the Sanctify Ki Strike feat.</entry>
|
||||
<entry id="213323" lang="en" sex="m">Fist of the Heavens</entry>
|
||||
<entry id="213324" lang="en" sex="m">Type of Feat: Exalted
|
||||
Prerequisite: Improved Unarmed Strike, WIS 15, Sanctify Ki Strike
|
||||
Prerequisite: Improved Unarmed Strike, WIS 15, Sanctify Ki Strike, good alignment
|
||||
Specifics: The saving throw DC of your Stunning Fist increases by 2 when you use it against an evil creature. If the stunning attack succeeds, the creature is staggered for 1 round following the round it is stunned.</entry>
|
||||
<entry id="213325" lang="en" sex="m">Vow of Abstinence</entry>
|
||||
<entry id="213326" lang="en" sex="m">Type of Feat: Exalted
|
||||
|
||||
Reference in New Issue
Block a user