Digamos que programado un contador de tiempo global, este estará presente en todo el juego de principio a fin si lo coloco persistente.
///Efecto del tiempo 0
if(global.tiempo < 0) //Si la variable es menor a 0 se activa el evento
{
global.tiempo = 0 //Sin tiempo
global. vida = 0 //Muerte jugador
game_restart("partida.sav") //¿Reiniciar el juego y/o borrar partida?
}
La idea es que al llegar a 0 el jugador pierda absolutamente todo, es decir que el juego debe evitar que el jugador pueda cargar la partida, obligando a jugar como si estuviera recién empezando.
¿Entonces como se interpreta todo lo que programe en esta linea?
NOTA: Esto es un modo de juego que estoy creando llamado contra reloj, el cual consiste en terminarse el juego en menos de 1 hora.
de la siguiente manera
[gml]
///Efecto del tiempo 0
if(global.tiempo < 0) //Si la variable tiempo es menor que cero , quiere decir que el tiempo termina en -1, tu tiempo debe estar en negativo
{ //entonces
global.tiempo = 0 //el tiempo se iguala a cero, puede haber un error en este codigo, trata de revisar
global. vida = 0 //la vida del jugador se iguala a cero
game_restart("partida.sav") //¿Reiniciar el juego y/o borrar partida? el juego se reinicia desde partida.sav
}
[/gml]
en tal caso el tiempo es el quien comanda o es mas valioso que la vida, seguramente ya habras puesto un codigo como esto:
[gml]
if global.vida = 0 {
game_resart("partida.sav");
}
[/gml]
Cita de: royer11 en Octubre 30, 2017, 11:11:00 PM
de la siguiente manera
[gml]
///Efecto del tiempo 0
if(global.tiempo < 0) //Si la variable tiempo es menor que cero , quiere decir que el tiempo termina en -1, tu tiempo debe estar en negativo
{ //entonces
global.tiempo = 0 //el tiempo se iguala a cero, puede haber un error en este codigo, trata de revisar
global. vida = 0 //la vida del jugador se iguala a cero
game_restart("partida.sav") //¿Reiniciar el juego y/o borrar partida? el juego se reinicia desde partida.sav
}
[/gml]
en tal caso el tiempo es el quien comanda o es mas valioso que la vida, seguramente ya habras puesto un codigo como esto:
[gml]
if global.vida = 0 {
game_resart("partida.sav");
}
[/gml]
Interesante ¿hay alguna forma de eliminar todo? es decir que cuando llegue a 0, no solamente elimine al jugador, sino que debe eliminar los archivos de guardado y todo aquel material que permita cargar la partida, básicamente el juego se resetea y ademas elimina la partida.
Es extraño, el manual no parece decir que game_restart() tenga algún argumento. Si quieres eliminar todos los datos, sería mejor que usaras la función file_delete().
Cita de: NiuWeb en Octubre 31, 2017, 12:33:59 AM
Es extraño, el manual no parece decir que game_restart() tenga algún argumento. Si quieres eliminar todos los datos, sería mejor que usaras la función file_delete().
Digamos que las cosas están actualmente así.
obj_Tiempo_Contra_Relog
STEP////////////////////////////
///Efecto del tiempo 0
if(global.tiempo < 0) //Si la variable tiempo es menor que cero , quiere decir que el tiempo termina en -1, tu tiempo debe estar en negativo
{ //entonces
global.tiempo = 0 //el tiempo se iguala a cero, puede haber un error en este codigo, trata de revisar
global. vida = 0 //la vida del jugador se iguala a cero
game_restart(partida.sav) //¿Reiniciar el juego y/o borrar partida? el juego se reinicia desde partida.sav
}
Si le sumo la función file_delete(), tal que debe verse así.
///Efecto del tiempo 0
if(global.tiempo < 0) //Si la variable tiempo es menor que cero , quiere decir que el tiempo termina en -1, tu tiempo debe estar en negativo
{ //entonces
global.tiempo = 0 //el tiempo se iguala a cero, puede haber un error en este codigo, trata de revisar <-- ¿debería eliminarlo?
global. vida = 0 //la vida del jugador se iguala a cero
file_delete(partida.sav) //Eliminamos el archivo
game_restart(partida.sav) //¿Reiniciar el juego y/o borrar partida? el juego se reinicia desde partida.sav
}
1.- el tiempo es 0 (tal vez debo eliminar esto ya que no parece tener sentido)
2.- el jugador se muere al quedarse sin vida
3.- el archivo para cargar partida no existe
4.- el juego se reinicia
¿Con esto logro que el jugador pierda todo su progreso obligandolo a empezar desde el inicio del juego? por como lo leo parece funcionar ¿pero lo ara de ese modo en el juego?
Recuerda que el nombre de archivo debe ser una cadena, así que debes ponerlo entre comillas. Además, es recomendable comprobar si el archivo a eliminar existe para evitar que surja un error.
[gml]
if(global.tiempo < 0) //Si la variable tiempo es menor que cero , quiere decir que el tiempo termina en -1, tu tiempo debe estar en negativo
{ //entonces
global.tiempo = 0 //el tiempo se iguala a cero, puede haber un error en este codigo, trata de revisar <-- ¿debería eliminarlo?
global. vida = 0 //la vida del jugador se iguala a cero
if(file_exists("partida.sav"))
file_delete("partida.sav") //Eliminamos el archivo
game_restart() //Creo que es mejor que no uses argumentos en esta función.
}
[/gml]
Cita de: NiuWeb en Octubre 31, 2017, 02:00:08 AM
Recuerda que el nombre de archivo debe ser una cadena, así que debes ponerlo entre comillas. Además, es recomendable comprobar si el archivo a eliminar existe para evitar que surja un error.
[gml]
if(global.tiempo < 0) //Si la variable tiempo es menor que cero , quiere decir que el tiempo termina en -1, tu tiempo debe estar en negativo
{ //entonces
global.tiempo = 0 //el tiempo se iguala a cero, puede haber un error en este codigo, trata de revisar <-- ¿debería eliminarlo?
global. vida = 0 //la vida del jugador se iguala a cero
if(file_exists("partida.sav"))
file_delete("partida.sav") //Eliminamos el archivo
game_restart() //Creo que es mejor que no uses argumentos en esta función.
}
[/gml]
Me puedo percatar que este nuevo código verifica si el archivo existe, para evitar que de error, por hay estamos bien, si el tiempo es 0 ¿el jugador debe empezar el juego de nuevo? la idea de este modo es acabar el juego antes que sea eliminado, básicamente es un reto que estoy creando para los speedrun.
si tu tiempo empieza desde -99 hasta 0 entonces es la siguiente,
esto es para que no, exista un loop entre global.tiempo menor que cero, con el entonces:
---------tu codigo anterior------
si tu tiempo es menor que "0", entonces
tu tiempo es cero
----------------------------------------
presta atencion, tu tiempo es menor que cero, nunca toma el cero, lo que despues;
tu lo sentencias a cero como global.salud = 0
[gml]
if(global.tiempo < 1) //Si la variable tiempo es menor que 1 , quiere decir que el tiempo termina en 0
{ //entonces
global.tiempo = 0 // ahora tu tiempo se vuelve 0
global. vida = 0 //la vida del jugador se iguala a cero
if(file_exists("partida.sav"))
file_delete("partida.sav") //Eliminamos el archivo
game_restart() //Creo que es mejor que no uses argumentos en esta función.
}
[/gml]
si empieza de 99 hasta 0, positivo
[gml]
if(global.tiempo < -1) // puedes cambiarlo a "1" por si te arroja algun error,
{ //entonces
global.tiempo = 0 // Si tienes algun envento, cuando global.tiempo es cero, te recomendaria que no lo elimines
global. vida = 0 //la vida del jugador se iguala a cero
if(file_exists("partida.sav"))
file_delete("partida.sav") //Eliminamos el archivo
game_restart() //Creo que es mejor que no uses argumentos en esta función.
}
[/gml]