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.
72 lines
2.4 KiB
Plaintext
72 lines
2.4 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Pestilence
|
|
//:: sp_pest_aux.nss
|
|
//:://////////////////////////////////////////////
|
|
/*
|
|
Disease 24h script for Pestilence.
|
|
Does check for recovery. Deals ability drain.
|
|
Removes the contagiousness aura.
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Ornedan
|
|
//:: Created On: December 26, 2004
|
|
//:://////////////////////////////////////////////
|
|
|
|
#include "prc_inc_spells"
|
|
|
|
|
|
void main()
|
|
{
|
|
//SpawnScriptDebugger();
|
|
|
|
object oCaster = GetLocalObject(OBJECT_SELF, "SPELL_PESTILENCE_CASTER");
|
|
int nDC = GetLocalInt(OBJECT_SELF, "SPELL_PESTILENCE_DC");
|
|
int nCasterLvl = GetLocalInt(OBJECT_SELF, "SPELL_PESTILENCE_CASTERLVL");
|
|
|
|
//Find the disease effect
|
|
effect eDisease = GetFirstEffect(OBJECT_SELF);
|
|
while(GetIsEffectValid(eDisease))
|
|
{
|
|
if(GetEffectType(eDisease) == EFFECT_TYPE_DISEASE)
|
|
break;
|
|
|
|
eDisease = GetNextEffect(OBJECT_SELF);
|
|
}// end while - loop through all effects
|
|
|
|
// Do the save
|
|
if(PRCMySavingThrow(SAVING_THROW_FORT, OBJECT_SELF, nDC, SAVING_THROW_TYPE_DISEASE, oCaster))
|
|
{
|
|
// Get the value of the previous save
|
|
//int bPrevSave = GetLocalInt(OBJECT_SELF, "SPELL_PESTILENCE_SAVED");
|
|
if(GetLocalInt(OBJECT_SELF, "SPELL_PESTILENCE_SAVED"))
|
|
{
|
|
// 2 saves in row, OBJECT_SELF recovers from the disease
|
|
// Remove the disease and relevant locals.
|
|
RemoveEffect(OBJECT_SELF, eDisease);
|
|
DeleteLocalInt(OBJECT_SELF, "SPELL_PESTILENCE_SAVED");
|
|
|
|
// Remove the - now useless - locals
|
|
DeleteLocalInt(OBJECT_SELF, "SPELL_PESTILENCE_DC");
|
|
DeleteLocalInt(OBJECT_SELF, "SPELL_PESTILENCE_CASTERLVL");
|
|
DeleteLocalInt(OBJECT_SELF, "SPELL_PESTILENCE_SPELLPENETRATION");
|
|
DeleteLocalObject(OBJECT_SELF, "SPELL_PESTILENCE_CASTER");
|
|
DeleteLocalInt(OBJECT_SELF, "SPELL_PESTILENCE_DO_ONCE");
|
|
}// end if - previous save was success
|
|
else
|
|
{
|
|
// Note down the successful save
|
|
SetLocalInt(OBJECT_SELF, "SPELL_PESTILENCE_SAVED", TRUE);
|
|
}// end else
|
|
}// end if - successful save
|
|
else
|
|
{
|
|
// Note down the failed save
|
|
SetLocalInt(OBJECT_SELF, "SPELL_PESTILENCE_SAVED", FALSE);
|
|
|
|
//Cause damage
|
|
int nDam = d4();
|
|
//effect eDamage = EffectAbilityDecrease(ABILITY_CONSTITUTION, nDam);
|
|
//SPApplyEffectToObject(DURATION_TYPE_PERMANENT, eDamage, OBJECT_SELF, 0.0f, FALSE, SPELL_PESTILENCE, nCasterLvl, oCaster);
|
|
ApplyAbilityDamage(OBJECT_SELF, ABILITY_CONSTITUTION, nDam, DURATION_TYPE_PERMANENT, TRUE, 0.0f, FALSE, oCaster);
|
|
}// end else - failed save
|
|
} |