Intenta hacer esto:
En el evento Create, declara una variable que almacenará el sprite anterior:
[gml]
///Evento Create
sprite_index_prev = sprite_index;
[/gml]
Luego, en End Step, actualiza la variable.
[gml]
///Evento End Step
sprite_index_prev = sprite_index;
[/gml]
Y en Step, compruebas el sprite actual con el anterior, y si son diferentes (si el sprite recién se ha cambiado), reiniciar image_index:
[gml]
if(sprite_index <> sprite_index_prev)
image_index = 0;
[/gml]
En el evento Create, declara una variable que almacenará el sprite anterior:
[gml]
///Evento Create
sprite_index_prev = sprite_index;
[/gml]
Luego, en End Step, actualiza la variable.
[gml]
///Evento End Step
sprite_index_prev = sprite_index;
[/gml]
Y en Step, compruebas el sprite actual con el anterior, y si son diferentes (si el sprite recién se ha cambiado), reiniciar image_index:
[gml]
if(sprite_index <> sprite_index_prev)
image_index = 0;
[/gml]