forked from Jaysyn/PRC8
66 lines
2.1 KiB
Plaintext
66 lines
2.1 KiB
Plaintext
|
//::///////////////////////////////////////////////
|
||
|
//:: Dispel Magic
|
||
|
//:: NW_S0_DisMagic.nss
|
||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||
|
//:://////////////////////////////////////////////
|
||
|
//:: Attempts to dispel all magic on a targeted
|
||
|
//:: object, or simply the most powerful that it
|
||
|
//:: can on every object in an area if no target
|
||
|
//:: specified.
|
||
|
//:://////////////////////////////////////////////
|
||
|
//:: Created By: Preston Watamaniuk
|
||
|
//:: Created On: Jan 7, 2002
|
||
|
//:: Updated On: Oct 20, 2003, Georg Zoeller
|
||
|
//:://////////////////////////////////////////////
|
||
|
|
||
|
|
||
|
#include "inv_inc_invfunc"
|
||
|
#include "inv_invokehook"
|
||
|
#include "inc_dispel"
|
||
|
|
||
|
void main()
|
||
|
{
|
||
|
if (!PreInvocationCastCode())
|
||
|
{
|
||
|
// If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
effect eVis = EffectVisualEffect(VFX_IMP_BREACH);
|
||
|
effect eImpact = EffectVisualEffect(VFX_FNF_DISPEL);
|
||
|
object oTarget = PRCGetSpellTargetObject();
|
||
|
location lLocal = PRCGetSpellTargetLocation();
|
||
|
int nCasterLevel = GetInvokerLevel(OBJECT_SELF, GetInvokingClass());
|
||
|
int iTypeDispel = GetLocalInt(GetModule(),"BIODispel");
|
||
|
|
||
|
//--------------------------------------------------------------------------
|
||
|
// Dispel Magic is capped at caster level 10
|
||
|
//--------------------------------------------------------------------------
|
||
|
if(nCasterLevel > 10)
|
||
|
{
|
||
|
nCasterLevel = 10;
|
||
|
}
|
||
|
|
||
|
if (GetIsObjectValid(oTarget))
|
||
|
{
|
||
|
//----------------------------------------------------------------------
|
||
|
// Targeted Dispel - Dispel all
|
||
|
//----------------------------------------------------------------------
|
||
|
if (iTypeDispel)
|
||
|
{
|
||
|
spellsDispelMagic(oTarget, nCasterLevel, eVis, eImpact);
|
||
|
DelayCommand(RoundsToSeconds(1), spellsDispelMagic(oTarget, nCasterLevel, eVis, eImpact));
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
spellsDispelMagicMod(oTarget, nCasterLevel, eVis, eImpact);
|
||
|
DelayCommand(RoundsToSeconds(1), spellsDispelMagicMod(oTarget, nCasterLevel, eVis, eImpact));
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
|