Jaysyn904 6ec137a24e Updated AMS marker feats
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.
2024-02-11 14:01:05 -05:00

56 lines
2.5 KiB
Plaintext

//::///////////////////////////////////////////////
//:: Epic Spell: Eternal Freedom
//:: Author: Boneshank (Don Armstrong)
#include "prc_alterations"
//#include "x2_inc_spellhook"
#include "inc_epicspells"
#include "inc_dispel"
void main()
{
//Declare major variables
object oTarget = OBJECT_SELF;
object oSkin;
itemproperty ip1 = ItemPropertyImmunityMisc(IP_CONST_IMMUNITYMISC_PARALYSIS);
itemproperty ip2 = ItemPropertySpellImmunitySpecific(IP_CONST_IMMUNITYSPELL_ENTANGLE);
itemproperty ip3 = ItemPropertySpellImmunitySpecific(IP_CONST_IMMUNITYSPELL_SLOW);
itemproperty ip4 = ItemPropertySpellImmunitySpecific(IP_CONST_IMMUNITYSPELL_HOLD_MONSTER);
itemproperty ip5 = ItemPropertySpellImmunitySpecific(IP_CONST_IMMUNITYSPELL_HOLD_PERSON);
itemproperty ip6 = ItemPropertySpellImmunitySpecific(IP_CONST_IMMUNITYSPELL_SLEEP);
itemproperty ip7 = ItemPropertySpellImmunitySpecific(IP_CONST_IMMUNITYSPELL_HOLD_ANIMAL);
itemproperty ip8 = ItemPropertySpellImmunitySpecific(IP_CONST_IMMUNITYSPELL_POWER_WORD_STUN);
itemproperty ip9 = ItemPropertySpellImmunitySpecific(IP_CONST_IMMUNITYSPELL_WEB);
effect eDur = EffectVisualEffect(VFX_DUR_FREEDOM_OF_MOVEMENT);
//Search for and remove the above negative effects
effect eLook = GetFirstEffect(oTarget);
while(GetIsEffectValid(eLook))
{
if(GetEffectType(eLook) == EFFECT_TYPE_PARALYZE ||
GetEffectType(eLook) == EFFECT_TYPE_ENTANGLE ||
GetEffectType(eLook) == EFFECT_TYPE_SLOW ||
GetEffectType(eLook) == EFFECT_TYPE_MOVEMENT_SPEED_DECREASE ||
GetEffectType(eLook) == EFFECT_TYPE_PETRIFY ||
GetEffectType(eLook) == EFFECT_TYPE_SLEEP ||
GetEffectType(eLook) == EFFECT_TYPE_STUNNED)
{
RemoveEffect(oTarget, eLook);
}
eLook = GetNextEffect(oTarget);
}
//Apply properties.
oSkin = GetPCSkin(oTarget);
IPSafeAddItemProperty(oSkin, ip1);
IPSafeAddItemProperty(oSkin, ip2);
IPSafeAddItemProperty(oSkin, ip3);
IPSafeAddItemProperty(oSkin, ip4);
IPSafeAddItemProperty(oSkin, ip5);
IPSafeAddItemProperty(oSkin, ip6);
IPSafeAddItemProperty(oSkin, ip7);
IPSafeAddItemProperty(oSkin, ip8);
IPSafeAddItemProperty(oSkin, ip9);
SPApplyEffectToObject(DURATION_TYPE_PERMANENT, SupernaturalEffect(eDur), oTarget);
}