Enero 07, 2015, 02:55:24 AM Ultima modificación: Enero 08, 2015, 01:12:34 AM por Mataca
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 , 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?

¿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?

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

#3 Enero 07, 2015, 03:44:13 AM Ultima modificación: Enero 07, 2015, 03:46:23 AM por penumbra
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.

#4 Enero 07, 2015, 10:49:02 AM Ultima modificación: Enero 07, 2015, 11:01:11 AM por Mataca
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:


Y asi:

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
PURA VIDA



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



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

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

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

listoo pudee !! jaja muchas gracias penumbra como siempre.


Saludos!

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...