PRC8/trunk/smp/phs_s_mindblank.nss

74 lines
2.6 KiB
Plaintext
Raw Normal View History

/*:://////////////////////////////////////////////
//:: Spell Name Mind Blank
//:: Spell FileName PHS_S_MindBlank
//:://////////////////////////////////////////////
//:: In Game Spell desctiption
//:://////////////////////////////////////////////
Abjuration
Level: Protection 8, Sor/Wiz 8
Components: V, S
Casting Time: 1 standard action
Range: Close (8M)
Target: One creature
Duration: 24 hours
Saving Throw: Will negates (harmless)
Spell Resistance: Yes (harmless)
The subject is protected from all devices and spells that detect, influence,
or read emotions or thoughts. This spell protects against all mind-affecting
spells and effects as well as information gathering by divination spells or
effects. Mind blank even foils limited wish, miracle, and wish spells when
they are used in such a way as to affect the subject<63>s mind or to gain
information about it. In the case of scrying that scans an area the creature
is in, such as arcane eye, the spell works but the creature simply isn<73>t
detected. Scrying attempts that are targeted specifically at the subject do
not work at all.
//:://////////////////////////////////////////////
//:: Spell Effects Applied / Notes
//:://////////////////////////////////////////////
Immunity: Mind spells applied.
Pretty simple, eh?
OK, Ok, we'll also add in, just in case, any of the other mind-effecting
effects, as immunities.
Only protection - it doesn't cure anything.
//:://////////////////////////////////////////////
//:: Created By: Jasperre
//::////////////////////////////////////////////*/
#include "PHS_INC_SPELLS"
void main()
{
// Spell Hook Check.
if(!PHS_SpellHookCheck(PHS_SPELL_MIND_BLANK)) return;
// Declare major variables
object oCaster = OBJECT_SELF;
object oTarget = GetSpellTargetObject();
int nMetaMagic = PHS_GetMetaMagicFeat();
// Duration is 24 hours
float fDuration = PHS_GetDuration(PHS_HOURS, 24, nMetaMagic);
// Declare effects
effect eImmuneMind = EffectImmunity(IMMUNITY_TYPE_MIND_SPELLS);
effect eDur = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_POSITIVE);
effect eCessate = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
// Link effects
effect eLink = EffectLinkEffects(eImmuneMind, eDur);
eLink = EffectLinkEffects(eLink, eCessate);
// Remove previous effects
PHS_RemoveSpellEffectsFromTarget(PHS_SPELL_MIND_BLANK, oTarget);
// Signal spell cast at
PHS_SignalSpellCastAt(oTarget, PHS_SPELL_MIND_BLANK, FALSE);
// Apply effects to the target
PHS_ApplyDuration(oTarget, eLink, fDuration);
}