Updated AMS marker feats. Removed arcane & divine marker feats. Updated Dread Necromancer for epic progression. Updated weapon baseitem models. Updated new weapons for crafting & npc equip. Updated prefix. Updated release archive.
70 lines
2.3 KiB
Plaintext
70 lines
2.3 KiB
Plaintext
/*:://////////////////////////////////////////////
|
||
//:: Spell Name Waves of Exhaustion
|
||
//:: Spell FileName PHS_S_WavesOfExh
|
||
//:://////////////////////////////////////////////
|
||
//:: In Game Spell desctiption
|
||
//:://////////////////////////////////////////////
|
||
Necromancy
|
||
Level: Sor/Wiz 7
|
||
Components: V, S
|
||
Casting Time: 1 standard action
|
||
Range: 20M (60 ft.)
|
||
Area: Cone-shaped burst
|
||
Duration: Instantaneous
|
||
Saving Throw: No
|
||
Spell Resistance: Yes
|
||
|
||
Waves of negative energy cause all living creatures in the spell’s area to
|
||
become exhausted. This spell has no effect on a creature that is already
|
||
exhausted.
|
||
//:://////////////////////////////////////////////
|
||
//:: Spell Effects Applied / Notes
|
||
//:://////////////////////////////////////////////
|
||
Easy, using PHS_ApplyFatigue(), and thats that.
|
||
//:://////////////////////////////////////////////
|
||
//:: Created By: Jasperre
|
||
//::////////////////////////////////////////////*/
|
||
|
||
#include "PHS_INC_SPELLS"
|
||
|
||
void main()
|
||
{
|
||
// Spell hook check
|
||
if(!PHS_SpellHookCheck(PHS_SPELL_WAVES_OF_EXHAUSTION)) return;
|
||
|
||
// Delcare major variables
|
||
object oCaster = OBJECT_SELF;
|
||
object oTarget;
|
||
location lTarget = GetSpellTargetLocation();
|
||
float fDelay;
|
||
|
||
// Declare effects
|
||
effect eVis = EffectVisualEffect(VFX_IMP_REDUCE_ABILITY_SCORE);
|
||
|
||
// Cycle through all objects in the 20M cone.
|
||
oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 20.0, lTarget, TRUE, OBJECT_TYPE_CREATURE);
|
||
while(GetIsObjectValid(oTarget))
|
||
{
|
||
// PvP check
|
||
if(!GetIsReactionTypeFriendly(oTarget) &&
|
||
// Make sure they are not immune to spells
|
||
!PHS_TotalSpellImmunity(oTarget))
|
||
{
|
||
// Signal event
|
||
PHS_SignalSpellCastAt(oTarget, PHS_SPELL_WAVES_OF_EXHAUSTION);
|
||
|
||
// Get delay
|
||
fDelay = GetDistanceToObject(oTarget)/20;
|
||
|
||
// Spell resistance check
|
||
if(!PHS_SpellResistanceCheck(oCaster, oTarget, fDelay))
|
||
{
|
||
// Apply exhaustion
|
||
DelayCommand(fDelay - 0.1, PHS_ApplyFatigue(oTarget, TRUE));
|
||
DelayCommand(fDelay, PHS_ApplyVFX(oTarget, eVis));
|
||
}
|
||
}
|
||
oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 20.0, lTarget, TRUE, OBJECT_TYPE_CREATURE);
|
||
}
|
||
}
|