void Repeat(object oPC) { location lPC= GetLocation(oPC); int nEffectNumber = Random(2); switch (nEffectNumber) { case 0: ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_UNSUMMON), lPC); break; case 1: ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_RAISE_DEAD), lPC); break; } int nPC = GetLocalInt(oPC,"rift"); if(nPC==1) { DelayCommand(20.0, Repeat(oPC)); } else return; } void main() { object oPC = GetEnteringObject(); if (GetIsDM(oPC)) return; SetLocalInt(oPC,"rift",1); Repeat(oPC); }