Try this
Create Event
facing="D"
moveable=1
facewait=0
Alarm[0] Event
facewait=0
Step Event
if distance_to_object(objLink)<=64{
if !facewait{
if objLink.y<y{
facing="U"
}
else if objLink.y>y{
facing="D"
}
if objLink.x<x{
facing="L"
}
else if objLink.x>x{
facing="R"
}
facewait=1
}
}
else{
if !facewait{
switch floor(random(4)){
case 0: facing="D"; break;
case 1: facing="U"; break;
case 2: facing="L"; break;
case 3: facing="R"; break;
}
facewait=1
}
}
if moveable{
if facing="D"{
if place_free(x,y+1){
y+=1
}
}
if facing="U"{
if place_free(x,y-1){
y-=1
}
}
if facing="L"{
if place_free(x-1,y){
x-=1
}
}
if facing="R"{
if place_free(x+1,y){
x+=1
}
}
}
if facewait && !alarm[0]{
alarm[0]=floor(random(21))+10
}
execute_string('sprite_index=sprEnemy'+facing)