bueno ,eso ,emmmm
quiero saber como agregar una animacion de muerte a un enemigo ,por medio de una maquina de estados en el create  ,como este

enum ec {     
    parado = zms_parado,
    corriendo = zms_corriendo,
    muriendo = zms_muriendo
}

la cosa es cuando se ejecuta el script " zms_muriendo " de momento solo le puse que se destruyera automatica mente cuando le ataco,pero haora le quiero poner una animacion de muerte antes de que se destruya

alguien sabe que le podria poner al script para que se ejecute la animacion de muerte y se destruya ?

¿Cómo haces el cambio de estado?
¿Es una enumeración de scrips?

Yo he usado algo como esto:

Create
[gml]
// Enumeracion de estados
enum EC {
  PARADO,
  CORRIENDO,
  MUERTO
}
// Estado inicial
estado = EC.PARADO;

// Otras variables de la maquina de estados
estado_siguiente = EC.PARADO;
estado_inicia = true;
[/gml]

Step
[gml]
// Scripts para cada estado
sc_estado_parado();
sc_estado_corriendo();
sc_estado_muerto();
sc_colisiones();
sc_actualizar_estado();
[/gml]
Cada script controla al personaje de manera diferente.

En el script sc_colisiones se realiza el cambio al estado muerto
[gml]
/// sc_colisiones()
//...
if (estado == EC.PARADO or estado == EC.CORRIENDO) {
  if instance_place(x, y, bala) {
    estado_siguiente = EC.MUERTO;
    estado_inicia = true;
  }
}
//...
[/gml]

En el script sc_estado_muerto se realiza la animacion
[gml]
/// sc_estado_muerto()
if (estado = EC.MUERTO)
begin

// Este bloque solo se ejecuta en el primer frame
if (estado_inicia) {
   estado_inicia = false;
   sprite_index = spDead; //cambiar sprite
   image_index = 0; //animacion desde el inicio
   image_speed = 0.1; //velocidad de la animacion
   vx = 0; //velocidad 0
   vy = 0;
}
// Al terminar la animacion, el sprite queda estatico
if (image_index >= image_number-image_speed) {
   image_speed = 0; //detener en la ultima imagen
}

end
[/gml]

oook entiendo mas omenos es algo diferente a como lo hice ,pero es algo parecido ,la colision la tengo en un objeto
y la muerte del enemigo si se produce ,pero sin animacion ,esta en el step del enemigo y de hai se va al create ,donde estan los scripts ,pero ya me diste una idea mas omenos como hacerle ,gacias por la ayuda ;)

Me faltó escribir el contenido del script sc_actualizar_estado (es algo muy simple)
[gml]
estado = estado_siguiente;
[/gml]
La razón por la que utilizo la variable estado_siguiente es para ejecutar un solo script de estado en cada step. Imagina que al inicio del step el estado es PARADO, entonces el primer if se cumple
[gml]if (estado == EC.PARADO)[/gml]
en ese estado podría cambiar el estado CORRIENDO, la condición del siguiente script también se cumple
[gml]if (estado == EC.CORRIENDO)[/gml]
En los dos scripts hay partes de código iguales, por lo que evito ejecutar el mismo código dos veces.

Otra forma de ejecutar un solo script en cada Step y no usar la variable estado_siguiente es usar switch
[gml]
switch (estado)
{
  case EC.PARADO: sc_estado_parado(); break;
  case EC.CORRIENDO: sc_estado_corriendo(); break;
  case EC.MUERTO: sc_estado_muerto(); break;
}
sc_colisiones();
[/gml]