//:://///////////////////////////////////////////// //:: Song of Arcane Power //:: prc_sch_cosmfire.nss //::////////////////////////////////////////////// /* // Bonus to caster level. // Depends on Perform skill check. */ //::////////////////////////////////////////////// //:: Created By: xwarren //:: Created On: Dec 8, 2009 //::////////////////////////////////////////////// #include "prc_alterations" void main() { object oCaster = OBJECT_SELF; if (PRCGetHasEffect(EFFECT_TYPE_SILENCE,OBJECT_SELF)) { FloatingTextStrRefOnCreature(85764,OBJECT_SELF); // not useable when silenced return; } else if(GetSkillRank(SKILL_PERFORM, oCaster) < 12) { FloatingTextStringOnCreature("You need 12 or more ranks in perform skill.", oCaster, FALSE); return; } else if (!GetHasFeat(FEAT_BARD_SONGS, oCaster)) { //SpeakStringByStrRef(40550); FloatingTextStringOnCreature("No Bard Song uses!", oCaster, FALSE); return; } else { DecrementRemainingFeatUses(oCaster, FEAT_BARD_SONGS); //Declare major variables int nPerform = d20(1) + GetSkillRank(SKILL_PERFORM, oCaster); int nBonus; effect eVis = EffectVisualEffect(VFX_DUR_BARD_SONG); eVis = EffectLinkEffects(eVis, EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE)); if(nPerform >= 30) nBonus = 4; else if(nPerform < 30 && nPerform >= 20) nBonus = 2; else if(nPerform < 20 && nPerform >= 10) nBonus = 1; else nBonus = 0; ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eVis, oCaster, 9.0f); SetLocalInt(oCaster, "SongOfArcanePower", nBonus); DelayCommand(9.0f, DeleteLocalInt(oCaster, "SongOfArcanePower")); } }