void Repeat(object oPC) { location lPC= GetLocation(oPC); int nEffectNumber = Random(6); switch (nEffectNumber) { case 0: ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_LOS_HOLY_10), lPC); break; case 1: ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_STRIKE_HOLY), lPC); break; case 2: ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_AURA_HOLY), lPC); break; case 3: ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_DIVINE_STRIKE_HOLY), lPC); break; case 4: ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_GOOD_HELP), lPC); break; case 5: ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_HEAD_HOLY), lPC); break; } int nPC = GetLocalInt(oPC,"rift_g"); if(nPC==1) { DelayCommand(30.0, Repeat(oPC)); } else return; } void main() { object oPC = GetEnteringObject(); if (GetIsDM(oPC)) return; SetLocalInt(oPC,"rift_g",1); Repeat(oPC); }