void Repeat(object oPC) { location lPC= GetLocation(oPC); int nEffectNumber = Random(6); switch (nEffectNumber) { case 0: ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_HOWL_MIND), lPC); break; case 1: ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_LOS_EVIL_10), lPC); break; case 2: ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_IMPLOSION), lPC); break; case 3: ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_FIREBALL), lPC); break; case 4: ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_DOOM), lPC); break; case 5: ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_EVIL_HELP), lPC); break; } int nPC = GetLocalInt(oPC,"rift_e"); if(nPC==1) { DelayCommand(30.0, Repeat(oPC)); } else return; } void main() { object oPC = GetEnteringObject(); if (GetIsDM(oPC)) return; SetLocalInt(oPC,"rift_e",1); Repeat(oPC); }