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);


}