Updated AMS marker feats. Removed arcane & divine marker feats. Updated Dread Necromancer for epic progression. Updated weapon baseitem models. Updated new weapons for crafting & npc equip. Updated prefix. Updated release archive.
84 lines
2.5 KiB
Plaintext
84 lines
2.5 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Name Liquid Pain
|
|
//:: FileName sp_liquid_pain.nss
|
|
//:://////////////////////////////////////////////
|
|
/**@file Liquid Pain
|
|
Necromancy
|
|
Level: Pain 4, Sor/Wiz 4
|
|
Components: V, S, F
|
|
Casting Time: 1 day
|
|
Range: Touch
|
|
Target: One living creature
|
|
Duration: Permanent
|
|
Saving Throw: Fortitude negates
|
|
Spell Resistance: Yes
|
|
|
|
The caster takes a subject already in great pain,
|
|
wracked with disease, the victim of torture, or
|
|
dying of a wound, for example-and captures its pain
|
|
in liquid form. This physical manifestation of agony
|
|
can be used to create magic items or enhance spells. It
|
|
can also be used as a potent drug.
|
|
|
|
Focus: A jar, vial, or other container for the liquid pain.
|
|
|
|
Author: Tenjac
|
|
Created: 5/19/06
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:://////////////////////////////////////////////
|
|
|
|
#include "prc_inc_spells"
|
|
#include "prc_add_spell_dc"
|
|
|
|
void main()
|
|
{
|
|
//spellhook
|
|
if(!X2PreSpellCastCode()) return;
|
|
|
|
PRCSetSchool(SPELL_SCHOOL_NECROMANCY);
|
|
|
|
object oPC = OBJECT_SELF;
|
|
object oTarget = PRCGetSpellTargetObject();
|
|
int nDC = PRCGetSaveDC(oTarget, oPC);
|
|
effect eVis = EffectVisualEffect(VFX_COM_BLOOD_CRT_RED);
|
|
int nCasterLvl = PRCGetCasterLevel(oPC);
|
|
|
|
PRCSignalSpellEvent(oTarget,TRUE, SPELL_LIQUID_PAIN, oPC);
|
|
|
|
//SR
|
|
if(!PRCDoResistSpell(OBJECT_SELF, oTarget, nCasterLvl + SPGetPenetr()) && PRCGetIsAliveCreature(oTarget))
|
|
{
|
|
//Save
|
|
if(!PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_EVIL))
|
|
{
|
|
//Check for pain
|
|
if(PRCGetHasEffect(EFFECT_TYPE_DISEASE, oTarget) ||
|
|
PRCGetHasEffect(EFFECT_TYPE_POISON, oTarget) ||
|
|
GetHasSpellEffect(SPELL_ETERNITY_OF_TORTURE, oTarget) ||
|
|
GetHasSpellEffect(SPELL_WRACK, oTarget) ||
|
|
GetHasSpellEffect(SPELL_WAVE_OF_PAIN, oTarget) ||
|
|
GetHasSpellEffect(SPELL_AVASCULAR_MASS, oTarget) ||
|
|
GetHasSpellEffect(SPELL_RED_FESTER, oTarget))
|
|
{
|
|
if(!GetLocalInt(oTarget, "PRC_AgonyExtracted"))
|
|
{
|
|
//Create liquid pain in caster's inventory
|
|
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
|
CreateItemOnObject("prc_agony", oPC, 1);
|
|
SetLocalInt(oTarget, "PRC_AgonyExtracted", 1);
|
|
DelayCommand(HoursToSeconds(24), DeleteLocalInt(oTarget, "PRC_AgonyExtracted"));
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
PRCSetSchool();
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|