1. Użyj "dziedziczenia" (ustaw parent w GMie), w sensie dodaj obiekt obj_enemy i obiektom m. in. obj_zombi ustaw parent = obj_enemy (zrób to dla wszystkich wrogich jednostkach), wtedy wystarczy Ci tylko jedna funkcja od sprawdzania najbliższej instancji obj_enemy:
if distance_to_object(obj_enemy)<250 {
var potwor = instance_nearest(x,y,obj_enemy)
var pocisk = instance_create(x,y,obj_pocisk)
pocisk.direction = point_direction(x,y,potwor.x,potwor.y)
}
obj_pocisk Create Event:
speed = 10
2. Sprawa się komplikuje, musisz pobrać wszystkie obiekty obj_enemy o dystansie < 250 i sprawdzać, od najbliższego, czy przypadkiem nie ma kolizji między obj_zolnierz a obj_sciana np. funkcją collision_line. (może ktoś ma lepszy pomysł nawet, ja nie bardzo )