C'est surement que t'as plusieurs tireur, il prend donc pour instance celle avec l'id le plus faible...
Tu peux remplacer tireur par instance_nearest(x,y,tireur) mais le truc c'est que si la deux tireurs dans la zone, seul le plus proche va tirer...
Résultat, tu fais les tests dans le step de ton objet tireur :
if(distance_to_object(héros)<300) instance_create(x,y,bullet);
_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.