Updated Vow of Poverty. Added Sanctify Ki Strike, Holy Strike, Fist of Heavens, Vow of Abstinence, Vow of Chastity & Gift of Faith. (@fenac). Turned off the Taunt & Parry skills. Re-disabled AC & save bonuses from Tumble & Spellcraft. Updated min() & max() to PRCmin() & PRCmax() to not conflict with similarly named NUI adjacent functions. Set Point Blank Shot to 30' per PnP. Added icon for Chosen of Evil. Started work on Hidden Talent. Created Psionics function cheatsheet. Updated release archive.
111 lines
3.0 KiB
Plaintext
111 lines
3.0 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Name Chaav's Laugh
|
|
//:: FileName sp_chaavs_lgh.nss
|
|
//:://////////////////////////////////////////////
|
|
/**@file Chaav's Laugh
|
|
Enchantment (Compulsion)[Good, Mind-Affecting]
|
|
Level: Cleric 5, Joy 5
|
|
Components: V
|
|
Casting Time: 1 standard action
|
|
Range: 40ft
|
|
Area: 40-ft-radius spread centered on you
|
|
Duration: 1 minute/level
|
|
Saving Throw: Will negates
|
|
Spell Resistance: Yes
|
|
|
|
You release a joyous, boistrous laugh that
|
|
strengthens the resolve of good creatures and
|
|
weakens the resolve of evil creatures.
|
|
|
|
Good creatures within the spell's area gain the
|
|
following benefits for the duration of the spell:
|
|
a +2 morale bonus on attack rolls an saves against
|
|
fear effects. plus temporary hit points equal to
|
|
1d8 + caster level(to a maximum of 1d8 +20 at level
|
|
20).
|
|
|
|
Evil creatures within the spell's are that fail a
|
|
Will save take a -2 morale penalty on attack rolls
|
|
and saves against fear effects for the duration of
|
|
the spell.
|
|
|
|
Creatures must beable to hear the laugh to be
|
|
affected by the spell. Creatures that are neither
|
|
good nor evil are anaffected by Chaav's Laugh.
|
|
|
|
Author: Tenjac
|
|
Created: 7/10/06
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:://////////////////////////////////////////////
|
|
|
|
#include "prc_inc_spells"
|
|
#include "prc_add_spell_dc"
|
|
|
|
void main()
|
|
{
|
|
if(!X2PreSpellCastCode()) return;
|
|
|
|
PRCSetSchool(SPELL_SCHOOL_ENCHANTMENT);
|
|
|
|
object oPC = OBJECT_SELF;
|
|
location lLoc = GetLocation(oPC);
|
|
object oTarget = MyFirstObjectInShape(SHAPE_SPHERE, 12.19f, lLoc, TRUE, OBJECT_TYPE_CREATURE);
|
|
int nCasterLvl = PRCGetCasterLevel(oPC);
|
|
int nDC;
|
|
int nAlign;
|
|
int nMetaMagic = PRCGetMetaMagicFeat();
|
|
int nModify = 2;
|
|
float fDur = (60.0f * nCasterLvl);
|
|
|
|
if(nMetaMagic & METAMAGIC_EMPOWER)
|
|
{
|
|
nModify = 3;
|
|
}
|
|
|
|
if(nMetaMagic & METAMAGIC_EXTEND)
|
|
{
|
|
fDur += fDur;
|
|
}
|
|
|
|
effect eVilLink = EffectLinkEffects(EffectAttackDecrease(nModify, ATTACK_BONUS_MISC), EffectSavingThrowDecrease(SAVING_THROW_ALL, nModify, SAVING_THROW_TYPE_FEAR));
|
|
effect eGoodLink = EffectLinkEffects(EffectAttackIncrease(nModify, ATTACK_BONUS_MISC), EffectSavingThrowIncrease(SAVING_THROW_ALL, nModify, SAVING_THROW_TYPE_FEAR));
|
|
eGoodLink = EffectLinkEffects(eGoodLink, EffectTemporaryHitpoints(d8(1) + PRCMin(20, nCasterLvl)));
|
|
|
|
while(GetIsObjectValid(oTarget))
|
|
{
|
|
nAlign = GetAlignmentGoodEvil(oTarget);
|
|
nDC = PRCGetSaveDC(oTarget, oPC);
|
|
|
|
if(!PRCGetHasEffect(EFFECT_TYPE_DEAF, oTarget))
|
|
{
|
|
|
|
if (nAlign == ALIGNMENT_EVIL)
|
|
{
|
|
//SR
|
|
if(!PRCDoResistSpell(oPC, oTarget, nCasterLvl + SPGetPenetr()))
|
|
{
|
|
//Save
|
|
if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS))
|
|
{
|
|
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eVilLink, oTarget, fDur);
|
|
}
|
|
}
|
|
}
|
|
|
|
if(nAlign == ALIGNMENT_GOOD)
|
|
{
|
|
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eGoodLink, oTarget, fDur);
|
|
}
|
|
}
|
|
oTarget = MyNextObjectInShape(SHAPE_SPHERE, 12.19f, lLoc, TRUE, OBJECT_TYPE_CREATURE);
|
|
}
|
|
//SPGoodShift(oPC);
|
|
PRCSetSchool();
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|