PRC8_fork/nwn/nwnprc/trunk/scripts/prc_dnc_nrvtch.nss

32 lines
846 B
Plaintext
Raw Permalink Normal View History

/*
prc_dnc_nrvtch
Enervating Touch
Negative level on touch
*/
#include "prc_sp_func"
#include "prc_inc_sp_tch"
void main()
{
object oCaster = OBJECT_SELF;
object oTarget = PRCGetSpellTargetObject();
int nClass = GetLevelByClass(CLASS_TYPE_DREAD_NECROMANCER, oCaster);
int nDC = 10 + nClass/2 + GetAbilityModifier(ABILITY_CHARISMA, oCaster);
int iAttackRoll = PRCDoMeleeTouchAttack(oTarget);
if (iAttackRoll > 0)
{
if(!PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE))
{
effect eDrain = EffectNegativeLevel(1);
effect eVis = EffectVisualEffect(VFX_IMP_REDUCE_ABILITY_SCORE);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eDrain, oTarget);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
}
}
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, PRCGetSpellId()));
}