/*::////////////////////////////////////////////// //:: Spell Name Bull’s Strength //:: Spell FileName SMP_S_BullsStr //::////////////////////////////////////////////// //:: In Game Spell desctiption //::////////////////////////////////////////////// Transmutation Level: Clr 2, Drd 2, Pal 2, Sor/Wiz 2, Strength 2 Components: V, S, M/DF Casting Time: 1 standard action Range: Touch Target: Creature touched Duration: 1 min./level Saving Throw:Will negates (harmless) Spell Resistance: Yes (harmless) The subject becomes stronger. The spell grants a +4 enhancement bonus to Strength, adding the usual benefits to melee attack rolls, melee damage rolls, and other uses of the Strength modifier. Arcane Material Component: A few hairs, or a pinch of dung, from a bull. //::////////////////////////////////////////////// //:: Spell Effects Applied / Notes //::////////////////////////////////////////////// +4 to stat, doesn't stack with mass version. //::////////////////////////////////////////////// //:: Created By: Jasperre //::////////////////////////////////////////////*/ #include "SMP_INC_SPELLS" void main() { // Spell hook check. if(!SMP_SpellHookCheck()) return; // Declare major variables object oCaster = OBJECT_SELF; object oTarget = GetSpellTargetObject(); int nCasterLevel = SMP_GetCasterLevel(); int nMetaMagic = SMP_GetMetaMagicFeat(); // Ability to use int nAbility = ABILITY_STRENGTH; // Duration - 1 minute/level float fDuration = SMP_GetDuration(SMP_MINUTES, nCasterLevel, nMetaMagic); // Make sure they are not immune to spells if(SMP_TotalSpellImmunity(oTarget)) return; // Check if oTarget has better effects already if(SMP_GetHasAbilityBonusOfPower(oTarget, nAbility, 4) == 2) return; // Delcare Effects effect eAbility = EffectAbilityIncrease(nAbility, 4); effect eVis = EffectVisualEffect(VFX_IMP_IMPROVE_ABILITY_SCORE); effect eCessate = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE); effect eLink = EffectLinkEffects(eAbility, eCessate); // Signal the spell cast at event SMP_SignalSpellCastAt(oTarget, SMP_SPELL_BULLS_STRENGTH, FALSE); // Remove these abilities effects SMP_RemoveAnyAbilityBonuses(oTarget, nAbility); // Apply effects and VFX to target SMP_ApplyDurationAndVFX(oTarget, eVis, eLink, fDuration); }