Abajo están los detalles de mi problema, se puede resumir en que quiero destruir objetos de otra habitación cuando el personaje haya cumplido su deber.  :)

Digamos que un personaje al que llame obj_NPC_Cazador, el cual como su nombre indica es un NPC, este objeto o personaje quiere destruir a su enemigo, el obj_Jefe_Cazador, pero tanto el obj_NPC_Cazador como el obj_Jefe_Cazador, se encuentran en distintas habitaciones, en este caso vendría siendo la rom_Zona_Nexo para el obj_NPC_Cazador y la rom_jefe_Cazador para el obj_Jefe_Cazador (admito que los nombres no son poco original  :-[).

Entonces mi pregunta seria ¿Como debería armar el código para que el obj_NPC_Cazador se destruya cuando el obj_Jefe_Cazador sea destruido?

Nota: Lo que busco con esto es que de la sensación de que el personaje se haya marchado una vez que cumplió su misión, ya que seria raro encontrarlo hay mismo diciendo que quiere matar a su enemigo a pesar de que ya lo logro.  XD

Gracias por leer.

#1 Agosto 16, 2017, 12:15:23 PM Ultima modificación: Agosto 16, 2017, 12:17:12 PM por Zapdos43
Puedes crear una variable global.

Por ejemplo, en el Create event del Jefe cazador:

global.borrado = false;

En el evento Destroy:
global.borrado = true;

Luego en el objeto NPC  comprueba si global.borrado es true:
Evento Step:
if (global.borrado)
{
instance_destroy();
}


Efectivamente, con la variable global, puedes hacerlo sin problemas.

Cita de: Zapdos43 en Agosto 16, 2017, 12:15:23 PM
Puedes crear una variable global.

Por ejemplo, en el Create event del Jefe cazador:

global.borrado = false;

En el evento Destroy:
global.borrado = true;

Luego en el objeto NPC  comprueba si global.borrado es true:
Evento Step:
if (global.borrado)
{
instance_destroy();
}

PCNONOGames  www.pcnono.es

No sirve ese código, o al menos esta incompleto.  :-\
############################################################################################
FATAL ERROR in
action number 1
of  Step Event0
for object obj_NPC_Cazador:

global variable <unknown built-in variable>(-1610512724, -2147483648) not set before reading it.
at gml_Object_obj_NPC_Cazador_StepNormalEvent_1 (line 2) - if (global.borrado)
############################################################################################

El objeto NPC no reconoce la variable global porque todavia no ha sido creada, se creará cuando llegues a la room donde se encuentra el objeto Jefe. Pero eso no es lo que queremos entonces debemos colocar en el create event del NPC:
global.borrado = false;
Y borrar el código del create event del Jefe. El resto se queda igual.

Cita de: Zapdos43 en Agosto 16, 2017, 10:18:51 PM
El objeto NPC no reconoce la variable global porque todavia no ha sido creada, se creará cuando llegues a la room donde se encuentra el objeto Jefe. Pero eso no es lo que queremos entonces debemos colocar en el create event del NPC:
global.borrado = false;
Y borrar el código del create event del Jefe. El resto se queda igual.
FATAL ERROR in
action number 1
of Create Event
for object obj_NPC_Cazador:

Variable <unknown_object>.vida_npc(100013, -2147483648) not set before reading it.
at gml_Object_obj_NPC_Cazador_CreateEvent_1 (line 3) - global. vida_npc -= 6

Creo que debo mencionar los códigos involucrados, ya que tengo 6 jefes y probablemente se destruyan los 6 en vez de 1 en especifico.
obj_NPC_Cazador
CREATE///////////////////////////////////////////
///Variables
global.jefe_cazador = false;
global. vida_npc -= 6
audio_play_sound (snd_Risa_Malvada,50,false);
STEP/////////////////////////////////////////////////
///Comprobar si su nemesis fue destruido
if (global.jefe_cazador)
    {
    instance_destroy();
    }
obj_Jefe_Cazador
CREATE///////////////////
global.jefe_cazador = false;
DESTROY///////////////////////////////
///Comprobar si fue destruido
global.jefe_cazador = true;

El error dice que no se puede leer la variable global. vida_npc
Fíjate que entre global. y vida_npc hay un espacio. Hay que escribirlo todo seguido: global.vida_npc.

Cita de: Zapdos43 en Agosto 16, 2017, 11:09:07 PM
El error dice que no se puede leer la variable global. vida_npc
Fíjate que entre global. y vida_npc hay un espacio. Hay que escribirlo todo seguido: global.vida_npc.
Aun lo marca como fallo no creo que el problema sea ese, debe haber un fallo en el ejemplo que hace que entre en conflicto con la variable del error.
FATAL ERROR in
action number 1
of Create Event
for object obj_NPC_Cazador:

Variable <unknown_object>.vida_npc(100013, -2147483648) not set before reading it.
at gml_Object_obj_NPC_Cazador_CreateEvent_1 (line 3) - global.vida_npc -= 6

¿En qué objeto has creado la variable global.vida_npc? El error dice que no puede leer el valor anterior de esa variable. Para poder restar o hacer otra operación con una variable, primero debe tener un valor inicial.

Cita de: Naitsabes0 en Agosto 17, 2017, 12:35:33 AM
Cita de: Zapdos43 en Agosto 16, 2017, 11:09:07 PM
El error dice que no se puede leer la variable global. vida_npc
Fíjate que entre global. y vida_npc hay un espacio. Hay que escribirlo todo seguido: global.vida_npc.
Aun lo marca como fallo no creo que el problema sea ese, debe haber un fallo en el ejemplo que hace que entre en conflicto con la variable del error.
FATAL ERROR in
action number 1
of Create Event
for object obj_NPC_Cazador:

Variable <unknown_object>.vida_npc(100013, -2147483648) not set before reading it.
at gml_Object_obj_NPC_Cazador_CreateEvent_1 (line 3) - global.vida_npc -= 6

"<unknown_object>.vida_npc(100013, -2147483648) not set before reading it.".

Primero colocale un valor a la variable global y luego le restas lo que quieras.