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.
64 lines
2.5 KiB
Plaintext
64 lines
2.5 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Storm Mantle
|
|
//:: tm_s0_epstrmmant.nss
|
|
//:://////////////////////////////////////////////
|
|
/*
|
|
Grants all within the casters party within a radius of 10
|
|
to receive a Greater Spell Mantle.
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Nron Ksr
|
|
//:: Created On: March 9, 2004
|
|
//:://////////////////////////////////////////////
|
|
|
|
#include "prc_alterations"
|
|
#include "inc_epicspells"
|
|
|
|
void main()
|
|
{
|
|
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
|
|
SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_ABJURATION);
|
|
|
|
if( !X2PreSpellCastCode() )
|
|
{
|
|
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
|
|
return;
|
|
} // End of Spell Cast Hook
|
|
if (GetCanCastSpell(OBJECT_SELF, SPELL_EPIC_STORM_M))
|
|
{
|
|
//Declare major variables
|
|
object oTarget = GetFirstObjectInShape( SHAPE_SPHERE,
|
|
RADIUS_SIZE_HUGE, PRCGetSpellTargetLocation() );
|
|
effect eVis = EffectVisualEffect( VFX_DUR_SPELLTURNING );
|
|
effect eDur = EffectVisualEffect( VFX_DUR_CESSATE_POSITIVE );
|
|
int nDuration = GetTotalCastingLevel( OBJECT_SELF ); // Bone - changed
|
|
|
|
effect eImpact = EffectVisualEffect( VFX_FNF_LOS_NORMAL_20 );
|
|
ApplyEffectAtLocation( DURATION_TYPE_INSTANT, eImpact, PRCGetSpellTargetLocation() );
|
|
|
|
while( GetIsObjectValid(oTarget) )
|
|
{
|
|
if( spellsIsTarget(oTarget, SPELL_TARGET_ALLALLIES, OBJECT_SELF) )
|
|
{
|
|
//Link Effects are inside the IF to cause a d12 roll on each mantle
|
|
int nAbsorb = d12() + 10;
|
|
effect eAbsob = EffectSpellLevelAbsorption( 9, nAbsorb );
|
|
effect eLink = EffectLinkEffects( eVis, eAbsob );
|
|
eLink = EffectLinkEffects( eLink, eDur );
|
|
|
|
//Fire cast spell at event for the specified target
|
|
SignalEvent( oTarget, EventSpellCastAt(OBJECT_SELF,
|
|
SPELL_GREATER_SPELL_MANTLE, FALSE) );
|
|
PRCRemoveEffectsFromSpell( oTarget, GetSpellId() );
|
|
//Apply the VFX impact and effects
|
|
SPApplyEffectToObject( DURATION_TYPE_TEMPORARY, eLink,
|
|
oTarget, RoundsToSeconds(nDuration), TRUE, -1, GetTotalCastingLevel(OBJECT_SELF) );
|
|
}
|
|
oTarget = GetNextObjectInShape( SHAPE_SPHERE,
|
|
RADIUS_SIZE_HUGE, PRCGetSpellTargetLocation() );
|
|
}
|
|
}
|
|
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
|
|
}
|
|
|