///:://///////////////////////////////////////////// //:: Monstrous Regeneration //:: X2_S0_MonRegen //:: Copyright (c) 2001 Bioware Corp. //::////////////////////////////////////////////// /* Grants the selected target 3 HP of regeneration every round. */ //::////////////////////////////////////////////// //:: Created By: Andrew Nobbs //:: Created On: Nov 25, 2002 //::////////////////////////////////////////////// //:: Last Updated By: Andrew Nobbs May 09, 2003 //:: 2003-07-07: Stacking Spell Pass, Georg Zoeller #include "x2_inc_spellhook" #include "x0_i0_spells" void main() { //-------------------------------------------------------------------------- // Spellcast Hook Code // Added 2003-06-20 by Georg // If you want to make changes to all spells, check x2_inc_spellhook.nss to // find out more //-------------------------------------------------------------------------- if (!X2PreSpellCastCode()) { return; } // End of Spell Cast Hook object oTarget = GetSpellTargetObject(); /* Bug fix 21/07/03: Andrew. Lowered regen to 3 HP per round, instead of 10. */ effect eRegen = EffectRegenerate(6, 6.0); effect eVis = EffectVisualEffect(VFX_IMP_HEAD_NATURE); effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE); effect eLink = EffectLinkEffects(eRegen, eDur); int nMeta = GetMetaMagicFeat(); int nLevel = (GetCasterLevel(OBJECT_SELF)/2)+1; if (nMeta == METAMAGIC_EXTEND) { nLevel *= 2; } // Stacking Spellpass, 2003-07-07, Georg ... just in case RemoveEffectsFromSpell(oTarget, GetSpellId()); SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, GetSpellId(), FALSE)); //Apply effects and VFX ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nLevel)); ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); }