Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Mataca en Noviembre 14, 2014, 01:36:53 PM

Título: global.nivel en .ini
Publicado por: Mataca en Noviembre 14, 2014, 01:36:53 PM
Hola. Lei un par de guias pero no pude hacerlo. Quiero guardar en un archivo ini lo siguiente:
global.nivel01 = X*
global.nivel02 = X
global.nivel03 = X
global.nivel04 = X
global.nivel05 = X
global.nivel06 = X
global.nivel07 = X
global.nivel08 = X
global.nivel09 = X


(*X depende de si esta bloqueado o no el nivel. [0 = desbloqueado] [1 = bloqueado])

Y que al empezar el juego los cargue. La idea es que los niveles que ya pasaste queden guardados asi no lo tenes que volver a jugar cada vez que entres al juego.
Título: Re:global.nivel en .ini
Publicado por: petpan13 en Noviembre 14, 2014, 03:04:21 PM
Te recomiendo usa solo una global.niveles
para controlar todos los niveles y usar swit
swit global.niveles

case 1
Nivel 1 desbloqueado
case 2
Nivel uno y dos desbloqueado
y asi
Título: Re:global.nivel en .ini
Publicado por: TheSandBoxMKG en Noviembre 14, 2014, 08:26:57 PM
Cita de: Mataca en Noviembre 14, 2014, 01:36:53 PM
Hola. Lei un par de guias pero no pude hacerlo. Quiero guardar en un archivo ini lo siguiente:
global.nivel01 = X*
global.nivel02 = X
global.nivel03 = X
global.nivel04 = X
global.nivel05 = X
global.nivel06 = X
global.nivel07 = X
global.nivel08 = X
global.nivel09 = X


(*X depende de si esta bloqueado o no el nivel. [0 = desbloqueado] [1 = bloqueado])

Y que al empezar el juego los cargue. La idea es que los niveles que ya pasaste queden guardados asi no lo tenes que volver a jugar cada vez que entres al juego.

Porfa, podés usar arrays en vez de variables individuales para cada nivel????

Sería esto:
global.nivel[01] = X*
global.nivel[02] = X
global.nivel[03] = X
global.nivel[04] = X
global.nivel[05] = X
global.nivel[06] = X
global.nivel[07] = X
global.nivel[08] = X
global.nivel[09] = X


Cita de: petpan13 en Noviembre 14, 2014, 03:04:21 PM
Te recomiendo usa solo una global.niveles
para controlar todos los niveles y usar swit
swit global.niveles

case 1
Nivel 1 desbloqueado
case 2
Nivel uno y dos desbloqueado
y asi


Si eso está bién, pero entonces el juego tendía que ser completamente lineal  :P con los array podés desbloquear los niveles que quieras sin desbloquear el anterior (como en el Super Mario Bros 3)
Título: Re:global.nivel en .ini
Publicado por: TheSandBoxMKG en Noviembre 14, 2014, 09:46:53 PM
En un script llamado level_write
[gml]var i;
i=file_text_open_append("gamesave.ini")
file_text_close(i)
ini_open("gamesave.ini")
ini_write_string("Locked","Level"+string(argument0),argument1)
ini_close()[/gml]

En un script llamado level_read
[gml]var i,r;
i=file_text_open_append("gamesave.ini")
file_text_close(i)
ini_open("gamesave.ini")
r=ini_read_string("Locked","Level"+string(argument0),1)
ini_close()
return r[/gml]

Uso:

Guardar
level_write(nivel,bloqueado)
level_write(01,global.nivel[01])

Cargar
global.nivel[nivel]=level_read(nivel)
global.nivel[01]=level_read(01)
Título: Re:global.nivel en .ini
Publicado por: Mataca en Noviembre 14, 2014, 10:34:21 PM
Cita de: TheSandBoxMKG en Noviembre 14, 2014, 09:46:53 PM
En un script llamado level_write
[gml]var i;
i=file_text_open_append("gamesave.ini")
file_text_close(i)
ini_open("gamesave.ini")
ini_write_string("Locked","Level"+string(argument0),argument1)
ini_close()[/gml]

En un script llamado level_read
[gml]var i,r;
i=file_text_open_append("gamesave.ini")
file_text_close(i)
ini_open("gamesave.ini")
r=ini_read_string("Locked","Level"+string(argument0),1)
ini_close()
return r[/gml]

Uso:

Guardar
level_write(nivel,bloqueado)
level_write(01,global.nivel[01])

Cargar
global.nivel[nivel]=level_read(nivel)
global.nivel[01]=level_read(01)
No supe hacerlo con arrays, me salio con comandos global. Aparte quiero que tambien cargue el global.sonido y global.music. No hay algun script que cargue todo textual de un archivo?

Hice todo como me dijiste y me salta el siguiente error al cargar:
(http://puu.sh/cQQAX/1a09333b30.png)
Título: Re:global.nivel en .ini
Publicado por: petpan13 en Noviembre 15, 2014, 07:03:12 AM
Para eso es mejor utilizar ds_list pero puede resultar
Complicado si no has experimentado con esta funcion