forked from Jaysyn/PRC8
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.
92 lines
2.9 KiB
Plaintext
92 lines
2.9 KiB
Plaintext
/*:://////////////////////////////////////////////
|
|
//:: Spell Name Remove Curse
|
|
//:: Spell FileName PHS_S_RemoveCurs
|
|
//:://////////////////////////////////////////////
|
|
//:: In Game Spell desctiption
|
|
//:://////////////////////////////////////////////
|
|
Abjuration
|
|
Level: Brd 3, Clr 3, Pal 3, Sor/Wiz 4
|
|
Components: V, S
|
|
Casting Time: 1 standard action
|
|
Range: Touch
|
|
Target: Creature or item touched
|
|
Duration: Instantaneous
|
|
Saving Throw: Will negates (harmless)
|
|
Spell Resistance: Yes (harmless)
|
|
|
|
Remove curse instantaneously removes all curses on an object or a creature.
|
|
Remove curse does not remove the curse from a cursed shield, weapon, or suit
|
|
of armor, although the spell typically enables the creature afflicted with
|
|
any such cursed item to remove and get rid of it. Certain special curses
|
|
may not be countered by this spell or may be countered only by a caster of
|
|
a certain level or higher.
|
|
|
|
Remove curse counters and dispels bestow curse.
|
|
//:://////////////////////////////////////////////
|
|
//:: Spell Effects Applied / Notes
|
|
//:://////////////////////////////////////////////
|
|
In addtion to "Curses" this spell can remove:
|
|
|
|
- "Seal Magic" if the caster of this spell's caster level is >= the level
|
|
of the "Seal Magic"'s spell caster.
|
|
-
|
|
|
|
Added before other remove spells.
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Jasperre
|
|
//::////////////////////////////////////////////*/
|
|
|
|
#include "PHS_INC_SPELLS"
|
|
|
|
void main()
|
|
{
|
|
// Spell Hook Check.
|
|
if(!PHS_SpellHookCheck(PHS_SPELL_REMOVE_CURSE)) return;
|
|
|
|
// Declare Major Variables
|
|
object oCaster = OBJECT_SELF;
|
|
object oTarget = GetSpellTargetObject();
|
|
int nCasterLevel = PHS_GetCasterLevel();
|
|
int nType, nSpell;
|
|
|
|
// Delcare immunity effects
|
|
effect eVis = EffectVisualEffect(VFX_IMP_REMOVE_CONDITION);
|
|
|
|
// Apply VFX
|
|
PHS_ApplyVFX(oTarget, eVis);
|
|
|
|
// Signal spell cast at
|
|
PHS_SignalSpellCastAt(oTarget, PHS_SPELL_REMOVE_CURSE, FALSE);
|
|
|
|
// We remove all effect of poison, and some other spell effects too.
|
|
effect eCheck = GetFirstEffect(oTarget);
|
|
// Loop effects
|
|
while(GetIsEffectValid(eCheck))
|
|
{
|
|
nType = GetEffectType(eCheck);
|
|
nSpell = GetEffectSpellId(eCheck);
|
|
// Special case spells
|
|
switch(nSpell)
|
|
{
|
|
// Must beat the effect's caster level
|
|
case PHS_SPELL_SEAL_MAGIC:
|
|
{
|
|
if(nCasterLevel >= GetLocalInt(GetEffectCreator(eCheck), "PHS_SPELL_CAST_BY_LEVEL_" + IntToString(PHS_SPELL_SEAL_MAGIC)))
|
|
{
|
|
// Remove
|
|
RemoveEffect(oTarget, eCheck);
|
|
}
|
|
}
|
|
default:
|
|
{
|
|
// - Remove all curses
|
|
if(nType == EFFECT_TYPE_CURSE)
|
|
{
|
|
RemoveEffect(oTarget, eCheck);
|
|
}
|
|
}
|
|
}
|
|
eCheck = GetNextEffect(oTarget);
|
|
}
|
|
}
|