forked from Jaysyn/PRC8
75 lines
2.7 KiB
Plaintext
75 lines
2.7 KiB
Plaintext
|
/*:://////////////////////////////////////////////
|
||
|
//:: Spell Name Ethereal Jaunt
|
||
|
//:: Spell FileName PHS_S_EtheJaunt
|
||
|
//:://////////////////////////////////////////////
|
||
|
//:: In Game Spell desctiption
|
||
|
//:://////////////////////////////////////////////
|
||
|
Transmutation
|
||
|
Level: Clr 7, Sor/Wiz 7
|
||
|
Components: V, S
|
||
|
Casting Time: 1 standard action
|
||
|
Range: Personal
|
||
|
Target: You
|
||
|
Duration: 1 round/level (D)
|
||
|
Saving Throw: None
|
||
|
Spell Resistance: Yes (Harmless)
|
||
|
|
||
|
You become ethereal, along with your equipment. For the duration of the
|
||
|
spell, you are in a place called the Ethereal Plane, which overlaps the
|
||
|
normal, physical, Material Plane. When the spell expires, or you decide to
|
||
|
cancle it by attacking or casting any spell, you return to material existence.
|
||
|
|
||
|
An ethereal creature is invisible, insubstantial and can move through solid
|
||
|
creatures, and only magcal force and abjurations will an ethereal creature.
|
||
|
//:://////////////////////////////////////////////
|
||
|
//:: Spell Effects Applied / Notes
|
||
|
//:://////////////////////////////////////////////
|
||
|
One-person (self) EffectEthereal().
|
||
|
|
||
|
Also has EffectCutseenGhost and immunity to some damage types. Of course,
|
||
|
when a spell is cast (any spell - its simpler that way) or attacks are
|
||
|
made, it cancles the ethrealness.
|
||
|
//:://////////////////////////////////////////////
|
||
|
//:: Created By: Jasperre
|
||
|
//::////////////////////////////////////////////*/
|
||
|
|
||
|
#include "PHS_INC_SPELLS"
|
||
|
|
||
|
void main()
|
||
|
{
|
||
|
// Spell hook check.
|
||
|
if(!PHS_SpellHookCheck(PHS_SPELL_ETHEREAL_JAUNT)) return;
|
||
|
|
||
|
// Declare Major Variables
|
||
|
object oCaster = OBJECT_SELF;
|
||
|
object oTarget = GetSpellTargetObject();// Should be OBJECT_SELF
|
||
|
int nCasterLevel = PHS_GetCasterLevel();
|
||
|
int nMetaMagic = PHS_GetMetaMagicFeat();
|
||
|
|
||
|
// Make sure they are not immune to spells
|
||
|
if(PHS_TotalSpellImmunity(oTarget)) return;
|
||
|
|
||
|
// Determine duration in rounds
|
||
|
float fDuration = PHS_GetDuration(PHS_ROUNDS, nCasterLevel, nMetaMagic);
|
||
|
|
||
|
// Declare effefcts and link
|
||
|
effect eDur = EffectVisualEffect(VFX_DUR_ETHEREAL_VISAGE);
|
||
|
effect eEthereal = EffectEthereal();
|
||
|
effect eGhost = EffectCutsceneGhost();
|
||
|
effect eCessate = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
|
||
|
|
||
|
// Link effects
|
||
|
effect eLink = EffectLinkEffects(eDur, eEthereal);
|
||
|
eLink = EffectLinkEffects(eLink, eGhost);
|
||
|
eLink = EffectLinkEffects(eLink, eCessate);
|
||
|
|
||
|
// Remove pervious castings of it
|
||
|
PHS_RemoveSpellEffectsFromTarget(PHS_SPELL_ETHEREAL_JAUNT, oTarget);
|
||
|
|
||
|
//Fire cast spell at event for the specified target
|
||
|
PHS_SignalSpellCastAt(oTarget, PHS_SPELL_ETHEREAL_JAUNT, FALSE);
|
||
|
|
||
|
// Apply VNF and effect.
|
||
|
PHS_ApplyDuration(oTarget, eLink, fDuration);
|
||
|
}
|