Updated Release Archive. Fixed Mage-killer prereqs. Removed old LETO & ConvoCC related files. Added organized spell scroll store. Fixed Gloura spellbook. Various TLK fixes. Reorganized Repo. Removed invalid user folders. Added DocGen back in.
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);
|
||
}
|
||
}
|