Это элементарные вещи, нужно научиться делать их самому. Дальше будет всё ещё сложнее.
Все спрайты анимации засовываешь в в объект врага. Потом погляди - у каждого спрайта есть Image Index. Собственно, в Draw тебе нужно проигрывать их в определённом порядке, с учётом какое действие вражина выполняет и какой Image Index сейчас отображается. Заведи переменные Action (действие врага) и Kadr (проигрываемый кадр).
Допустим, у нас 2 кадра на стояние
Код
if Action='stand' //стоит
{
draw_sprite(sprVrag,Kadr,x,y) // рисуем спрайт
Kadr+=0.2 // значение влияет на скорость анимации
if Kadr>2 Kadr=0 // зацикливаем
}
По аналогии делай с атакой, не забывая, что ImageIndexы атаки уже начинаются с третьего спрайта.
Зону видимости можно сделать при помощи distance_to_object(object)