quiero saber, tengo muchos meses con ese problema y por eso pregunto por que poner un sprite_index  y un else no me sirve, no se cual metodo utilizan ustedes y me ayudarian mucho si me dirian

Yo uso sprite_index y creo que 9 de cada 10 makeros lo usan (si no es que 10 de 10). La otra opción es usar DRAW, pero yo no recomendaría ese método.

Si no te funciona, es casi seguro que los ifs no están correctamente implementados o el evento donde se cambia el sprite, o su subimagen no es el más adecuado. Se puede usar el debugger de GM para rastrear el índice del sprite y ver en qué momento el código hace algo que no se espera. Muchos de los makeros con más experiencia usan sprite_index junto con un juego de estados (variables) que indican qué acción realiza el personaje. De todas maneras, hay sprites o animaciones que necesitan un ajuste fino, como detener la animación en cierta subimagen, o pasar automáticamente a otro sprite al llegar a la última subimagen del sprite actual, esas cosas es necesario verlas a detalle, porque así en un contexto general es difícil hacerse entender.

Muchos de los problemas en cuanto a animación exacta de sprites los resuelvo usando el evento ANIMATION END (me gusta más este evento que usar ifs para preguntar si se llegó a la última subimagen)

¿Exactamente qué problemas tienes con la animación? No creo que sprite_index no sirva para nada, porque eso indicaría un bug, y uno bastante grande, por si fuera poco, cosa que se me hace poco probable.