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.
40 lines
1.4 KiB
Plaintext
40 lines
1.4 KiB
Plaintext
///////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// DoEnergyImmunity - Apply a 24 hour immunity to one element to the
|
|
// target.
|
|
// nDamageType - the damage type (DAMAGE_TYPE_xxx) to be immune to
|
|
// nVfx - The visual effect to use at cast time.
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////
|
|
|
|
#include "prc_inc_spells"
|
|
|
|
void DoEnergyImmunity (int nDamageType, int nVfx)
|
|
{
|
|
PRCSetSchool(SPELL_SCHOOL_TRANSMUTATION);
|
|
|
|
object oTarget = PRCGetSpellTargetObject();
|
|
|
|
// Determine the duration
|
|
float fDuration = PRCGetMetaMagicDuration(HoursToSeconds(24));
|
|
|
|
// Build a list of the duration effects which includes the actually immunity
|
|
// effect and all visual effects.
|
|
effect eList = EffectDamageResistance(nDamageType, 9999, 0);
|
|
effect eDur = EffectVisualEffect(VFX_DUR_PROTECTION_ELEMENTS);
|
|
eList = EffectLinkEffects(eList, eDur);
|
|
eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
|
|
eList = EffectLinkEffects(eList, eDur);
|
|
|
|
// Fire cast spell at event for the specified target
|
|
PRCSignalSpellEvent(oTarget, FALSE, SPELL_ENERGY_IMMUNITY);
|
|
|
|
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eList, oTarget, fDuration, TRUE, -1, PRCGetCasterLevel(OBJECT_SELF));
|
|
SPApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(nVfx), oTarget);
|
|
|
|
PRCSetSchool();
|
|
}
|
|
|
|
// Test main
|
|
//void main(){}
|