Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Mataca en Enero 07, 2015, 02:55:24 AM

Título: guardar variables globales[SOLUCIONADO]
Publicado por: Mataca en Enero 07, 2015, 02:55:24 AM
Hola. Quiero saber como hago para guardar los comandos globales en cualquier archivo, ya sea un .ini o cualquier extensión.
Anduve buscando y encontre ESTO (http://www.comunidadgm.org/preguntas-y-respuestas/guardar-variables-globales-en-archivos-ini/msg89498/#msg89498) , pero no es lo que busco porque me pregunta donde quiero guardarlo.
Quiero que cuando pase un nivel guarde todos los comandos globales...

Actualmente lo que hago es guardar el juego con un SAVE cuando termina un room y un LOAD cuando empieza el juego, pero cuando quiero hacerle un update da muchos errores... desaparecen sprites, objetos, etc.

Alguien sabe alguna solucion?
Título: Re:guardar comandos globales.
Publicado por: penumbra en Enero 07, 2015, 03:03:47 AM
¿Podrías ser más preciso? Hasta donde conozco, en GML no hay nada llamado comando global. ¿Te refieres a guardar variables o a otra cosa?
Título: Re:guardar comandos globales.
Publicado por: Mataca en Enero 07, 2015, 03:14:31 AM
Cita de: penumbra en Enero 07, 2015, 03:03:47 AM
¿Podrías ser más preciso? Hasta donde conozco, en GML no hay nada llamado comando global. ¿Te refieres a guardar variables o a otra cosa?
Emm, yo lo llamo así, capaz esta mal jaja.

Me refiero a guardar:

global.level
global.sonido
global.idioma
global.vibrar
y tambien al score
Título: Re:guardar variables globales.
Publicado por: penumbra en Enero 07, 2015, 03:44:13 AM
Son variables globales. Primero tienes que hacer tu archivo ini en el bloc de notas o cualquier otro editor de texto, coin la estructura y nombres que correspondan a tu juego, por ejemplo

[GLOBALES]
nivel=1
sonido=1
idioma=1
vibrar=1
marcador=0


Luego tienes que incluírlo en la lista de included files de GMS. Si quieres guardar el score, por ejemplo

[gml]
ini_open("save.ini")
ini_write_real("GLOBALES", "marcador", score);
ini_close()
[/gml]

Si quieres cargar el marcador, puede ser por ejemplo en el evento GAME START
[gml]
ini_open("save.ini")
ini_read_real("GLOBALES", "marcador", -1);
ini_close()
[/gml]

Es importante que te asegures que al abrir, o leer o guardar el ini, sólo se haga una vez, pues si se hace en STEP sin CUIDADO, estarás abriendo y escribiendo/leyendo el ini todo el tiempo, lo que producirá a la larga problemas, como cuelgues o ralentizaciones.
Título: Re:guardar variables globales.
Publicado por: Mataca en Enero 07, 2015, 10:49:02 AM
Cita de: penumbra en Enero 07, 2015, 03:44:13 AM
Son variables globales. Primero tienes que hacer tu archivo ini en el bloc de notas o cualquier otro editor de texto, coin la estructura y nombres que correspondan a tu juego, por ejemplo

[GLOBALES]
nivel=1
sonido=1
idioma=1
vibrar=1
marcador=0


Luego tienes que incluírlo en la lista de included files de GMS. Si quieres guardar el score, por ejemplo

[gml]
ini_open("save.ini")
ini_write_real("GLOBALES", "marcador", score);
ini_close()
[/gml]

Si quieres cargar el marcador, puede ser por ejemplo en el evento GAME START
[gml]
ini_open("save.ini")
ini_read_real("GLOBALES", "marcador", -1);
ini_close()
[/gml]

Es importante que te asegures que al abrir, o leer o guardar el ini, sólo se haga una vez, pues si se hace en STEP sin CUIDADO, estarás abriendo y escribiendo/leyendo el ini todo el tiempo, lo que producirá a la larga problemas, como cuelgues o ralentizaciones.

Hice todo tal cual me dices pero no hace nada... les cree un objeto con left release para probarlo en el room principal pero nada...
¿Qué estoy haciendo mal?
Probe asi:
(http://puu.sh/ebDN1/98f91b0ca2.png)

Y asi:
(http://puu.sh/ebESD/f09e089b34.png)
Título: Re:guardar variables globales.
Publicado por: ocarina en Enero 07, 2015, 05:16:34 PM
Amigo lonqhace mal es q el ini_read_real el último parámetro no puede ser la misma variable global,  osea en el último parámetro pon 0 en todos los ini_read_real
Título: Re:guardar variables globales.
Publicado por: Mataca en Enero 07, 2015, 09:17:46 PM
Lo tengo así, pero sigue sin andar. En la consola directamente como que no hace nada... no ejecuta ningún comando cuando clickeo el objeto de SAVE o LOAD

(http://puu.sh/ecLKZ/1daf6bb8fd.png)
Título: Re:guardar variables globales.
Publicado por: Mataca en Enero 07, 2015, 10:59:23 PM
upppp
Título: Re:guardar variables globales.
Publicado por: penumbra en Enero 07, 2015, 11:53:46 PM
A ver, una pregunta, para que veas dónde está una falla:

Esto lee el valor de la LLAVE "marcador" en el INI
[gml]ini_read_real("GLOBALES", "marcador", -1);[/gml]

Pero, una vez leído, ¿GM en dónde pone o almacena eso que leyó? Se supone que si lo lees, eso debe ir a algún lado en tu juego. Solucionar esto es bastante simple, así que dejaré que lo encuentres por tu cuenta
Título: Re:guardar variables globales.
Publicado por: Mataca en Enero 08, 2015, 12:57:00 AM
Cita de: penumbra en Enero 07, 2015, 11:53:46 PM
A ver, una pregunta, para que veas dónde está una falla:

Esto lee el valor de la LLAVE "marcador" en el INI
[gml]ini_read_real("GLOBALES", "marcador", -1);[/gml]

Pero, una vez leído, ¿GM en dónde pone o almacena eso que leyó? Se supone que si lo lees, eso debe ir a algún lado en tu juego. Solucionar esto es bastante simple, así que dejaré que lo encuentres por tu cuenta

xfas es lo ultimo que me falta para terminar el juego!! :)
He tratado poniendolo en donde tengo el obj_global (con todos los comandos globales) asi:
score = marcador
marcador = score
score = "marcador"

Y nada... No me ha salido xD
Título: Re:guardar variables globales.
Publicado por: penumbra en Enero 08, 2015, 01:05:32 AM
Revisa el manual, si observas el ejemplo que trae, te darás cuenta de lo que hace falta. Ánimo, es lo último que te falta para terminar!  :D

http://docs.yoyogames.com/source/dadiospice/002_reference/file%20handling/ini%20files/ini_read_real.html (http://docs.yoyogames.com/source/dadiospice/002_reference/file%20handling/ini%20files/ini_read_real.html)
Título: Re:guardar variables globales.
Publicado por: Mataca en Enero 08, 2015, 01:12:21 AM
listoo pudee !! jaja muchas gracias penumbra como siempre.


Saludos!
Título: Re:guardar variables globales[SOLUCIONADO]
Publicado por: vitito93 en Enero 08, 2015, 01:15:05 AM
Pasa que te falta guardarlo en una variable cuando lo lees, es decir,

global.puntaje = ini_read_real("puntaje","modonormal",0) <---- el 0 es el valor que toma la variable global.puntaje en caso de no encontrar ningun valor archivado previamente...