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);
 | 
						|
    }
 | 
						|
}
 |