PRC8_fork/trunk/spells/sp_glibness.nss

62 lines
2.1 KiB
Plaintext
Raw Normal View History

//::///////////////////////////////////////////////
//:: Name Glibness
//:: FileName sp_glibness.nss
//:://////////////////////////////////////////////
/**@file Glibness
Transmutation
Level: Brd 3
Components: S
Casting Time: 1 standard action
Range: Personal
Target: You
Duration: 10 min./level (D)
Your speech becomes fluent and more believable. You
gain a +30 bonus on Bluff checks made to convince
another of the truth of your words. (This bonus
doesn<EFBFBD>t apply to other uses of the Bluff skill, such
as feinting in combat, creating a diversion to hide,
or communicating a hidden message via innuendo.)
If a magical effect is used against you that would
detect your lies or force you to speak the truth the
user of the effect must succeed on a caster level
check (1d20 + caster level) against a DC of 15 + your
caster level to succeed. Failure means the effect
does not detect your lies or force you to speak only
the truth.
Author: Flaming_Sword
Created: Oct 4, 2006
Modified: Oct 4, 2006
*/
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
#include "prc_sp_func"
#include "prc_add_spell_dc"
void main()
{
if (!X2PreSpellCastCode()) return;
PRCSetSchool(SPELL_SCHOOL_TRANSMUTATION);
object oCaster = OBJECT_SELF;
object oTarget = PRCGetSpellTargetObject();
int nCasterLevel = PRCGetCasterLevel(oCaster);
int nMetaMagic = PRCGetMetaMagicFeat();
float fDuration = 60.0 * nCasterLevel; //modify if necessary
if(nMetaMagic & METAMAGIC_EXTEND)
fDuration *= 2;
effect eSkill = EffectSkillIncrease(SKILL_BLUFF, 30);
effect eCessate = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
effect eVis = EffectVisualEffect(VFX_IMP_IMPROVE_ABILITY_SCORE);
effect eLink = EffectLinkEffects(eSkill, eCessate);
SignalEvent(oTarget, EventSpellCastAt(oCaster, SPELL_GLIBNESS, FALSE));
PRCRemoveEffectsFromSpell(oTarget, SPELL_GLIBNESS);
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, fDuration, TRUE, -1, nCasterLevel);
PRCSetSchool();
}