Further file organization
Further file organization
This commit is contained in:
91
nwn/nwnprc/trunk/smp/phs_s_removecurs.nss
Normal file
91
nwn/nwnprc/trunk/smp/phs_s_removecurs.nss
Normal file
@@ -0,0 +1,91 @@
|
||||
/*:://////////////////////////////////////////////
|
||||
//:: 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);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user