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.
76 lines
2.7 KiB
Plaintext
76 lines
2.7 KiB
Plaintext
/*:://////////////////////////////////////////////
|
|
//:: Spell Name Aid
|
|
//:: Spell FileName SMP_S_Aid
|
|
//:://////////////////////////////////////////////
|
|
//:: In Game Spell desctiption
|
|
//:://////////////////////////////////////////////
|
|
Enchantment (Compulsion) [Mind-Affecting]
|
|
Level: Clr 2, Good 2, Luck 2
|
|
Components: V, S, DF
|
|
Casting Time: 1 standard action
|
|
Range: Touch
|
|
Target: Living creature touched
|
|
Duration: 1 min./level
|
|
Saving Throw: None
|
|
Spell Resistance: Yes (harmless)
|
|
|
|
Aid grants the target a +1 morale bonus on attack rolls and saves against
|
|
fear effects, plus temporary hit points equal to 1d8 + caster level (to a
|
|
maximum of 1d8+10 temporary hit points at caster level 10th).
|
|
//:://////////////////////////////////////////////
|
|
//:: Spell Effects Applied / Notes
|
|
//:://////////////////////////////////////////////
|
|
As above, but it does not affect dead people.
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Jasperre
|
|
//::////////////////////////////////////////////*/
|
|
|
|
#include "SMP_INC_SPELLS"
|
|
|
|
void main()
|
|
{
|
|
// Spell hook check.
|
|
if(!SMP_SpellHookCheck()) return;
|
|
|
|
// Check target object.
|
|
object oTarget = GetSpellTargetObject();
|
|
|
|
// Invalid (IE construct etc.) races and so on.
|
|
if(!SMP_GetIsAliveCreature(oTarget, "Aid can only be cast on a living creature") ||
|
|
GetIsDead(oTarget)) return;
|
|
|
|
// Make sure they are not immune to spells
|
|
if(SMP_TotalSpellImmunity(oTarget)) return;
|
|
|
|
// Declare major variables
|
|
object oCaster = OBJECT_SELF;
|
|
int nCasterLevel = SMP_GetCasterLevel();
|
|
int nMetaMagic = SMP_GetMetaMagicFeat();
|
|
// Get bonus HP
|
|
int nMaxCasterBonus = SMP_LimitInteger(nCasterLevel, 10);
|
|
int nBonusHP = SMP_MaximizeOrEmpower(8, 1, nMetaMagic, nMaxCasterBonus);
|
|
|
|
// Get duration in minutes
|
|
float fDuration = SMP_GetDuration(SMP_MINUTES, nCasterLevel, nMetaMagic);
|
|
|
|
// Declare effects
|
|
effect eVis = EffectVisualEffect(VFX_IMP_HOLY_AID);
|
|
effect eAttack = EffectAttackIncrease(1);
|
|
effect eSave = EffectSavingThrowIncrease(SAVING_THROW_ALL, 1, SAVING_THROW_TYPE_FEAR);
|
|
effect eHP = EffectTemporaryHitpoints(nBonusHP);
|
|
effect eCessate = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
|
|
// Link effects
|
|
effect eLink = EffectLinkEffects(eAttack, eSave);
|
|
eLink = EffectLinkEffects(eLink, eCessate);
|
|
eLink = EffectLinkEffects(eLink, eHP);
|
|
|
|
// Remove the aid from previous castings.
|
|
SMP_RemoveSpellEffectsFromTarget(SMP_SPELL_AID, oTarget);
|
|
|
|
// Signal event for the specified creature
|
|
SMP_SignalSpellCastAt(oTarget, SMP_SPELL_AID, FALSE);
|
|
|
|
//Apply the VFX impact and effects
|
|
SMP_ApplyDurationAndVFX(oTarget, eVis, eLink, fDuration);
|
|
}
|