Updated Release Archive

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.
This commit is contained in:
Jaysyn904
2023-08-22 10:00:21 -04:00
parent 3acda03f30
commit 5914ed2ab5
22853 changed files with 57524 additions and 47307 deletions

View File

@@ -0,0 +1,104 @@
//::///////////////////////////////////////////////
//:: Name Energy Ebb
//:: FileName sp_energy_ebb.nss
//:://////////////////////////////////////////////
/** @file
Energy Ebb
Necromancy (Evil)
Cleric 7, Sorc/Wiz 7
Duration 1 round/level
Saving throw: Fortitude negates
This spell functions like enervation except that
the creature struck gains negative levels over an
extended period. You point your finger and utter
the incantation, releasing a black needle of
crackling negative energy that suppresses the life
force of any living creature it strikes. You must
make a ranged touch attack to hit. If the attack
succeeds, the subject immediately gains one negative
level, then continues to gain another each round
thereafter as her life force slowly bleeds away. The
drain can only be stopped by a successful Heal check
(DC 23) or the application of a heal, restoration, or
greater restoration spell.
If the black needle strikes an undead creature, that
creature gains 4d4 * 5 temporary hp that last for up
to 1 hour.
Author: Tenjac
Created: 12/07/05
*/
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
#include "prc_inc_spells"
#include "prc_add_spell_dc"
void Ebb(object oTarget, int nRounds)
{
if(GetHasSpellEffect(SPELL_ENERGY_EBB, oTarget))
{
effect eLink = EffectLinkEffects(EffectNegativeLevel(1), EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE));
//apply
ApplyEffectToObject(DURATION_TYPE_INSTANT, eLink, oTarget);
//decrement duration
nRounds--;
//check duration
if(nRounds)
//Reapply after 1 round
DelayCommand(6.0f, Ebb(oTarget, nRounds));
}
}
void main()
{
PRCSetSchool(SPELL_SCHOOL_NECROMANCY);
//Spellhook
if (!X2PreSpellCastCode()) return;
object oTarget = PRCGetSpellTargetObject();
//if undead
if(MyPRCGetRacialType(oTarget) == RACIAL_TYPE_UNDEAD)
{
PRCSignalSpellEvent(oTarget, FALSE, SPELL_ENERGY_EBB, OBJECT_SELF);
//roll temp hp
int nHP = (d4(4) * 5);
//give temp hp
effect eHP = EffectTemporaryHitpoints(nHP);
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eHP, oTarget, 3600.00);
}
//not undead
else
{
PRCSignalSpellEvent(oTarget, TRUE, SPELL_ENERGY_EBB, OBJECT_SELF);
int nDC = PRCGetSaveDC(oTarget, OBJECT_SELF);
if(!GetIsImmune(oTarget, IMMUNITY_TYPE_NEGATIVE_LEVEL) && !PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE))
{
//Get duration
int nLevel = PRCGetCasterLevel();
int nRounds = nLevel;
if(PRCGetMetaMagicFeat() & METAMAGIC_EXTEND)
nRounds *= 2;
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, SupernaturalEffect(EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE)), oTarget, RoundsToSeconds(nRounds), TRUE, SPELL_ENERGY_EBB, nLevel);
Ebb(oTarget, nRounds);
}
}
//SPEvilShift(oPC);
PRCSetSchool();
}