Updated Release Archive. Fixed Mage-killer prereqs. Removed old LETO & ConvoCC related files. Added organized spell scroll store. Fixed Gloura spellbook. Various TLK fixes. Reorganized Repo. Removed invalid user folders. Added DocGen back in.
86 lines
2.9 KiB
Plaintext
86 lines
2.9 KiB
Plaintext
/*:://////////////////////////////////////////////
|
||
//:: Spell Name Dismissal
|
||
//:: Spell FileName PHS_S_Dismissal
|
||
//:://////////////////////////////////////////////
|
||
//:: In Game Spell desctiption
|
||
//:://////////////////////////////////////////////
|
||
Abjuration
|
||
Level: Clr 4, Sor/Wiz 5
|
||
Components: V, S, DF
|
||
Casting Time: 1 standard action
|
||
Range: Close (8M)
|
||
Target: One extraplanar creature
|
||
Duration: Instantaneous
|
||
Saving Throw: Will negates; see text
|
||
Spell Resistance: Yes
|
||
|
||
This spell forces an extraplanar creature (outsider) back to its proper
|
||
plane if it fails a special Will save
|
||
(DC = spell’s save DC - creature’s HD + your caster level). If the spell
|
||
is successful, the creature is instantly whisked away, but there is a 20%
|
||
chance of actually sending the subject to a plane other than its own.
|
||
//:://////////////////////////////////////////////
|
||
//:: Spell Effects Applied / Notes
|
||
//:://////////////////////////////////////////////
|
||
We can't do this completely unless we know this outsider isn't already
|
||
on thier plane!
|
||
|
||
But the rest is easy enough.
|
||
//:://////////////////////////////////////////////
|
||
//:: Created By: Jasperre
|
||
//::////////////////////////////////////////////*/
|
||
|
||
#include "PHS_INC_SPELLS"
|
||
|
||
void main()
|
||
{
|
||
// Spell hook check.
|
||
if(!PHS_SpellHookCheck(PHS_SPELL_DISMISSAL)) return;
|
||
|
||
// Declare Major Variables
|
||
object oCaster = OBJECT_SELF;
|
||
object oTarget = GetSpellTargetObject();
|
||
int nMetaMagic = PHS_GetMetaMagicFeat();
|
||
int nCasterLevel = PHS_GetCasterLevel();
|
||
|
||
// The save DC:
|
||
// DC = spell’s save DC - creature’s HD + your caster level
|
||
int nSpellSaveDC = PHS_GetSpellSaveDC() - GetHitDice(oTarget) + nCasterLevel;
|
||
|
||
// Declare effects
|
||
effect eVis = EffectVisualEffect(VFX_IMP_UNSUMMON);
|
||
|
||
// Needs to be a non-PvP person, and an outsider race
|
||
if(GetRacialType(oTarget) == RACIAL_TYPE_OUTSIDER &&
|
||
!GetIsReactionTypeFriendly(oTarget))
|
||
{
|
||
// Signal spell cast at
|
||
PHS_SignalSpellCastAt(oTarget, PHS_SPELL_DISMISSAL);
|
||
|
||
// Check spell resistance
|
||
if(!PHS_SpellResistanceCheck(oCaster, oTarget))
|
||
{
|
||
// Will save against the effects
|
||
if(!PHS_SavingThrow(SAVING_THROW_WILL, oTarget, nSpellSaveDC))
|
||
{
|
||
// Failed - send them back
|
||
if(GetIsPC(oTarget))
|
||
{
|
||
// Kill PC's (as they'll be shapechanged, most likely)
|
||
PHS_ApplyDeathByDamageAndVFX(oTarget, eVis);
|
||
}
|
||
else
|
||
{
|
||
// Destroy them for no XP
|
||
if(PHS_CanCreatureBeDestroyed(oTarget))
|
||
{
|
||
// Apply AOE visual
|
||
PHS_ApplyLocationVFX(GetLocation(oTarget), eVis);
|
||
DestroyObject(oTarget);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|