Hola, pues quiero hacer uso de los archivos .ini, para que cada vez que entres en una room nueva se guarde que has estado ahí, y si te sales y vuelves a entrar pulsando un botón en el menú, puedas continuar desde la ultima room que jugaste.

ini_open("Ultimaroom.ini");

Solo se, que empezaría así, pero que código utilizo para que guarde la room ultima en la que está?

Saludos~
"Y cuando termines de hablar... te callas."

quieres usar un ini por algo en concreto?
Visita mi proyecto: Space Cadet

Cita de: _-Caleb-_ en Mayo 01, 2014, 03:14:40 PM
quieres usar un ini por algo en concreto?

Principalmente, porque el juego está pensando para Android, y quiero que si te sales del juego, se quede guardado el progreso que ya tenías, y no tengas que empezar de nuevo...
"Y cuando termines de hablar... te callas."

room The index of the current room. Syntax: room;
Returns:Real


Sabiendo que el índice de la habitación es real
ini_write_real(guardado, ultima_habitacion, room);    //sección, llave, valor


Cita de: penumbra en Mayo 01, 2014, 08:58:13 PM
room The index of the current room. Syntax: room;
Returns:Real


Sabiendo que el índice de la habitación es real
ini_write_real(guardado, ultima_habitacion, room);    //sección, llave, valor

Pero, a que te refieres en tu parte de código con "ultima_habitacion"?, es decir, no hay que especificar la room, porque iría cambiando no?
"Y cuando termines de hablar... te callas."

#5 Mayo 01, 2014, 10:28:08 PM Ultima modificación: Mayo 01, 2014, 10:32:01 PM por penumbra
perdón, por "última habitación" me refiero a la habitación más reciente. a lo mejor en otros países no se usa así la palabra último-a. Es sólo una llave del ini que indicaría en qué habitación se está, pero la puedes llamar como quieras tú. Obviamente esa llave la tendrías que actualizar cada vez que "entres" a una nueva habitación, para que realmente sea la más reciente siempre

Cita de: penumbra en Mayo 01, 2014, 10:28:08 PM
perdón, por "última habitación" me refiero a la habitación más reciente. a lo mejor en otros países no se usa así la palabra último-a. Es sólo una llave del ini que indicaría en qué habitación se está, pero la puedes llamar como quieras tú. Obviamente esa llave la tendrías que actualizar cada vez que "entres" a una nueva habitación, para que realmente sea la más reciente siempre

Entonces en cada room podría poner lo siguiente:

Nivel1 > Evento create >
ini_open("guardado.ini");
ini_write_real(guardado, ultima_habitacion, room1);
ini_close()

Nivel2 > Evento create >
ini_open("guardado.ini"
ini_write_real(guardado, ultima_habitacion, room2);
ini_close()


Y luego para cargar el mismo en el botón del menú:
ini_read_real(guardado, ultima_habitacion);

Así estaría correcto?
"Y cuando termines de hablar... te callas."

#7 Mayo 02, 2014, 06:17:38 AM Ultima modificación: Mayo 02, 2014, 06:19:09 AM por penumbra
Cita de: LowHertzs en Mayo 01, 2014, 10:49:25 PM
Entonces en cada room podría poner lo siguiente:

Nivel1 > Evento create >
ini_open("guardado.ini");
ini_write_real(guardado, ultima_habitacion, room1);
ini_close()

Nivel2 > Evento create >
ini_open("guardado.ini"
ini_write_real(guardado, ultima_habitacion, room2);
ini_close()


Y luego para cargar el mismo en el botón del menú:
ini_read_real(guardado, ultima_habitacion);

Así estaría correcto?

Sí, creo que funcionaría, pero no necesitas ponerlo una y otra vez, puedes usar el evento [Room Start]
ini_open("guardado.ini");
ini_write_real(guardado, ultima_habitacion, room);
ini_close()

Como vez, tampoco estoy usando room1, room2, room3, sino la variable de GML room, que me indica (en cualquier momento) en que habitación se está, por lo que no necesito especificar una habitación de manera precisa. El código también lo puedes poner en otros eventos, no necesariamente en Room Start, por ejemplo, si el jugador muere, antes de terminar el juego, o reiniciarlo, llamar al código para guardar el nivel. También se puede llamar en STEP, pero ahí hay que tener más cuidado, para evitar que se ejecute continuamente, lo que podría impactar negativamente el desempeño del juego

CitarSí, creo que funcionaría, pero no necesitas ponerlo una y otra vez, puedes usar el evento [Room Start]
ini_open("guardado.ini");
ini_write_real(guardado, ultima_habitacion, room);
ini_close()

Como vez, tampoco estoy usando room1, room2, room3, sino la variable de GML room, que me indica (en cualquier momento) en que habitación se está, por lo que no necesito especificar una habitación de manera precisa. El código también lo puedes poner en otros eventos, no necesariamente en Room Start, por ejemplo, si el jugador muere, antes de terminar el juego, o reiniciarlo, llamar al código para guardar el nivel. También se puede llamar en STEP, pero ahí hay que tener más cuidado, para evitar que se ejecute continuamente, lo que podría impactar negativamente el desempeño del juego

Eres un maquina Penumbra, en cuanto pueda lo añado al juego y veo como funciona.

Muchas gracias!
"Y cuando termines de hablar... te callas."

Estoy teniendo problemas al poner en el botón de start game, que se cargue la ultima room jugada.

Es decir, para guardar la room estoy usando un evento room start >

ini_open("guardado.ini");
ini_write_real(guardado, ultima_habitacion, room);
ini_close()


Y para cargar >

ini_open("guardado.ini");
ini_read_real(guardado, ultima_habitacion);
ini_close()


El error lo tengo en este ultimo, segun GM:S, en la ultima linea el ), está dando error. Pero no tiene mucho sentido, en que estoy fallando?
"Y cuando termines de hablar... te callas."

Primero, los primeros dos argumentos en las funciones ini_write_real y ini_read_real deben ser strings, voy a suponer que estas declarando las variables guardado y ultima_habitacion en algún lugar con los valores de la sección y la llave del INI, pero me parece innecesario, considerando que son valores que no necesitan cambiar. Si de hecho guardado y ultima_habitacion no son variables sino el nombre de la sección y llave, debes ponerles comillas.

Segundo, la función ini_read_real recibe tres argumentos, si te hubieras tomado el tiempo de verla en el manual te darías cuenta de que está faltando el valor default, que es el valor que la función retornará si no encuentra la sección, la llave o el ini. Ese es el error que te esta tirando en este momento.

Tercero, no estas guardando el valor que retorna ini_read_real, debes guardarlo en una variable que puedas usar luego para hacer el cambio de room.

Amigo lo estas poniendo mal!
Es ini_read_real("guardado", "ultima_habitacion", 0);
PURA VIDA



Pues ni poniéndolo correctamente me funciona, no me guarda la ultima room en la que he estado.

Y @Killer, me podrías pasar link del manual al que te refieres? busqué en la ayuda de gm, pero solo me dice los "comandos" posibles, y no sus ejecuciones.
"Y cuando termines de hablar... te callas."

Cita de: LowHertzs en Mayo 02, 2014, 11:16:26 AM
Eres un maquina Penumbra, en cuanto pueda lo añado al juego y veo como funciona.

Noo, es que cantaste victoria antes de tiempo. Las leyes de Murphy se imponen siempre ;D

A qué te refieres con que buscaste en la ayuda de GM? Lo que yo entiendo que es la ayuda es el manual, ¿no? A diferencia del manual de GM8, algo que está bien del manual del GM:;S es que no sólo te lista cada función, sino que te explica la sintaxis, el número de argumentos y te da un ejemplo, muchísimas fallas se resuelven consultando el manual. En GM:S presiona f1, cuando aparece el manual, te vas al panel lateral de la izquierda y escoges la pestaña índice, ahí escribes ini_read_real y te aparece la información al aque se refiere Killer

amigo mira el ejemplo que te hice a ver si te sirve!!!
saludos
PURA VIDA