Further file organization
Further file organization
This commit is contained in:
66
nwn/nwnprc/trunk/spells/sp_revivify.nss
Normal file
66
nwn/nwnprc/trunk/spells/sp_revivify.nss
Normal file
@@ -0,0 +1,66 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Name Revivify
|
||||
//:: FileName sp_revivify.nss
|
||||
//:://////////////////////////////////////////////
|
||||
/** @file Revivify
|
||||
Conjuration (Healing)
|
||||
Level: Clr 5, Hlr 5
|
||||
Components: V,S,M
|
||||
Casting Time: 1 standard action
|
||||
Range: Touch
|
||||
Target: Dead creature touched
|
||||
Duration: Instantaneous
|
||||
Saving Throw: None
|
||||
Spell Resistance: Yes (harmless)
|
||||
|
||||
Revivify miraculously restores life to a recently
|
||||
deceased creature. However, the spell must be cast
|
||||
within 1 round of the victim's dead. Before the
|
||||
soul of the deceased has completely left the body,
|
||||
this spell halts its journey while repairing
|
||||
somewhat the damage to the body. This spell
|
||||
functions like raise dead, except that the raised
|
||||
creature receives no level loss, no Constitution
|
||||
loss, and no loss of spells. The creature is only
|
||||
restored to -1 hit points (but is stable).
|
||||
|
||||
Material Component: Diamonds worth at least 1000 gp.
|
||||
**/
|
||||
///////////////////////////////////////////////////
|
||||
// Author: Tenjac
|
||||
// Date: 6.10.06
|
||||
///////////////////////////////////////////////////
|
||||
|
||||
#include "prc_alterations"
|
||||
#include "prc_inc_spells"
|
||||
|
||||
void main()
|
||||
{
|
||||
if(!X2PreSpellCastCode()) return;
|
||||
|
||||
PRCSetSchool(SPELL_SCHOOL_CONJURATION);
|
||||
|
||||
object oPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
effect eResurrect = EffectResurrection();
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_RAISE_DEAD);
|
||||
|
||||
// Make sure the target is in fact dead
|
||||
if(GetIsDead(oTarget))
|
||||
{
|
||||
// Let the AI know - Special handling
|
||||
PRCSignalSpellEvent(oTarget, FALSE, SPELL_RAISE_DEAD, oPC);
|
||||
|
||||
// Apply effects
|
||||
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, GetLocation(oTarget));
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eResurrect, oTarget);
|
||||
|
||||
// Do special stuff
|
||||
ExecuteScript("prc_pw_raisedead", oPC);
|
||||
if(GetPRCSwitch(PRC_PW_DEATH_TRACKING) && GetIsPC(oTarget))
|
||||
SetPersistantLocalInt(oTarget, "persist_dead", FALSE);
|
||||
}
|
||||
// end if - Deadness check
|
||||
|
||||
PRCSetSchool();
|
||||
}
|
Reference in New Issue
Block a user