forked from Jaysyn/PRC8
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.
76 lines
2.6 KiB
Plaintext
76 lines
2.6 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Name Arrow of Bone event script
|
|
//:: FileName prc_evnt_arrbone.nss
|
|
//:://////////////////////////////////////////////
|
|
/**@file Arrow of Bone
|
|
Necromancy [Death]
|
|
Level: Sorcerer/wizard 7
|
|
Components: V, S, M
|
|
Range: Touch
|
|
Target: One projectile or thrown weapon touched
|
|
Duration: 1 hour/level or until discharged
|
|
Saving Throw: Fortitude partial
|
|
Spell Resistance: Yes
|
|
|
|
You complete the ritual needed to
|
|
cast the spell, scribing arcane runes into
|
|
the item. It changes before your eyes into
|
|
an identical item made of bone. The runes
|
|
glow with dark magic and the weapon feels
|
|
cold to the touch.
|
|
When thrown or fired at a creature as a
|
|
normal ranged attack, the weapon gains
|
|
a +4 enhancement bonus on attack
|
|
rolls and damage rolls. In addition, any
|
|
living creature struck by an arrow of
|
|
bone must succeed on a Fortitude save
|
|
or be instantly slain. A creature that
|
|
makes its save instead takes 3d6 points
|
|
of damage +1 point per caster level
|
|
(maximum +20). Regardless of whether
|
|
the attack hits, the magic of the arrow
|
|
of bone is discharged by the attack, and
|
|
the missile is destroyed.
|
|
|
|
Material Component: A tiny sliver
|
|
of bone and an oil of magic weapon
|
|
|
|
Author: Tenjac
|
|
Created: 6/28/07
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:://////////////////////////////////////////////
|
|
|
|
#include "prc_inc_spells"
|
|
#include "prc_add_spell_dc"
|
|
|
|
void main()
|
|
{
|
|
object oSpellOrigin = OBJECT_SELF;
|
|
object oTarget = PRCGetSpellTargetObject(oSpellOrigin);
|
|
int nSaveDC = PRCGetSaveDC(oTarget,oSpellOrigin);
|
|
object oItem = PRCGetSpellCastItem(oSpellOrigin);
|
|
int nCasterLvl = PRCGetCasterLevel(oSpellOrigin);
|
|
|
|
//SR check
|
|
if(!PRCDoResistSpell(oSpellOrigin, oTarget, (nCasterLvl + SPGetPenetr())) && PRCGetIsAliveCreature(oTarget))
|
|
{
|
|
//Save
|
|
if(PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nSaveDC, SAVING_THROW_TYPE_DEATH))
|
|
{
|
|
int nDam = d6(3) + min(20, nCasterLvl);
|
|
}
|
|
|
|
else
|
|
{
|
|
//Kill it
|
|
effect eDeath = EffectDeath();
|
|
eDeath = SupernaturalEffect(eDeath);
|
|
|
|
DeathlessFrenzyCheck(oTarget);
|
|
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_DEATH), oTarget);
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eDeath, oTarget);
|
|
}
|
|
}
|
|
} |