int GetHasProtection(object oPC) { // check to see if the PC already has a similar bonus // to stop them stacking loads of attack bonuses for // example by multiple praying at the same shrine effect eEff = GetFirstEffect(oPC); while (GetIsEffectValid(eEff)) { if (GetEffectType(eEff) == EFFECT_TYPE_CONCEALMENT) return TRUE; eEff = GetNextEffect(oPC); } return FALSE; } void main() { // Get the PC who is praying object oPC = GetLastUsedBy(); if (!GetIsObjectValid(oPC)) return; // Don't reapply if we're already protected if (GetHasProtection(oPC)) return; // define the benefits of praying at this altar effect eBless1 = EffectConcealment(20,MISS_CHANCE_TYPE_VS_MELEE); effect eBless2 = EffectConcealment(40,MISS_CHANCE_TYPE_VS_RANGED); effect eVis = EffectVisualEffect(VFX_DUR_GHOSTLY_VISAGE); //Link the visual and the damage reduction effect //delayed to ensure praying has finished //string all the first bless effect and the visible //effect together, then link any additonal Blesses with //the link (see commented out example) effect eLink = EffectLinkEffects(eBless1, eVis); eLink = EffectLinkEffects(eLink, eBless2); //if there was a third blessing // eLink = EffectLinkEffects(eLink, eBless3); //etc. DelayCommand(15.0,ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oPC)); //Visual effect of the blessing being received //Pick any VFX_FNF from the constants screen //(my personal faves, holy strike & meteor storm!!) ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_FNF_STRIKE_HOLY),oPC); }