void main()
{
    float dir = GetFacing(OBJECT_SELF);
    vector vect = GetPosition(OBJECT_SELF);
    object oPC = GetLastUsedBy();
    effect eEffect = EffectVisualEffect(VFX_IMP_SLEEP);
    if (dir < 85.0) {
        vect.x -= 0.5;
    } else if (dir < 175.0) {
        vect.y -= 0.5;
    } else if (dir < 265.0) {
        vect.x += 0.5;
    } else {
        vect.y += 0.5;
    }
    location loc = Location(GetArea(OBJECT_SELF), vect, dir - 180.0);
    DelayCommand(0.5, AssignCommand(oPC,ActionJumpToLocation(loc)));
//    DelayCommand(0.7, AssignCommand(oPC,SetFacing(dir)));
    DelayCommand(1.0, AssignCommand(oPC,ActionPlayAnimation(ANIMATION_LOOPING_DEAD_BACK,1.0,30000.0)));
    DelayCommand(3.0, ApplyEffectToObject(DURATION_TYPE_INSTANT,eEffect,oPC,1.0));
}