Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: arcangelcaos en Enero 30, 2015, 11:08:22 PM

Título: Me detecta una variable en un ini que no existe
Publicado por: arcangelcaos en Enero 30, 2015, 11:08:22 PM
Hola, haber si a alguien le pasa.
Tengo una pantalla inicial, con banderas para elegir el idioma, con el siguiente código en CREATE
global.quitar = false
draw_set_font(Fuente)
os_powersave_enable(false)

ini_open("Heroe")
if ini_key_exists("HEROE", "idioma")
{
global.idioma = ini_read_string("HEROE", "idioma", 0)
room_goto(Principal)
}
ini_close()


Pero el problema es que la primera vez si me lo hizo bien, pero ahora me detecta que si existe esa variable, y el caso es que me la coge bien, en algún sitio estará ese archivo.

Pero yo desde el árbol hablo el archivo y NO lleva esa variable.

Y todo esto viene porque la primera vez que lo hice, fue este código el evento left release

ini_open("Heroe")
global.idioma = "IdiomaES"
ini_write_string("HEROE", "idioma", "IdiomaES")
ini_close()
room_goto(Principal)


Donde puede estar el archivo ese, dado que lo he buscado pero no lo encuentro, como lo elimino, como hago que se borre cada vez que pruebe el juego?

Gracias.


Ahh, y en el ini tengo esto

[HEROE]
salud = 10
expe=0
nvl=1
oro=0
monedas=0
critico=0
defensa=0
nombre="JUANJO"
tambatallon=10
[MAPAS]
mapa1=1
Título: Re:Me detecta una variable en un ini que no existe
Publicado por: penumbra en Enero 30, 2015, 11:27:45 PM
El ini existe. Cuando agregas un archivo a included files en GM, ese archivo NUNCA se toca, es decir, jamás se escribe en él. Lo que hace GM es copiar ese archivo a la zona de escritura definida para el sistema, esa es la copia donde se guardan los cambios. Esa es la copia que tiene una variable o valor que el ini del árbol de recursos no tiene.

Puedes borrar el INI de la zona de escritura usando la funcion file_delete(), lo que haría que a la próxima vez, GM se vea forzado a "mirar" en el ini original.
Título: Re:Me detecta una variable en un ini que no existe
Publicado por: arcangelcaos en Enero 30, 2015, 11:35:29 PM
Vale, pero algo no me cuadra entonces, porque yo modifico mucho esos archivos ini y txt para ir añadiendo cosas en funciones del desarrollo del juego. Y todos estos cambios si los pone, es como si los volviera a cargar.
Título: Re:Me detecta una variable en un ini que no existe
Publicado por: penumbra en Enero 30, 2015, 11:38:48 PM
Cita de: arcangelcaos en Enero 30, 2015, 11:35:29 PM
Vale, pero algo no me cuadra entonces, porque yo modifico mucho esos archivos ini y txt para ir añadiendo cosas en funciones del desarrollo del juego. Y todos estos cambios si los pone, es como si los volviera a cargar.

No entiendo cuál es el problema. Hiciste que GM guardara una variable en el ini, una variable que no estaba en el ini original, y GM guardó la variable y guardó los cambios en el ini de la zona de escritura. ¿quieres borrar la variable? borra el ini o si no quieres perder los demás valores del ini, borra el valor de la variable en el evento game end.

Tengo curiosidad
Cita de: arcangelcaos en Enero 30, 2015, 11:08:22 PM
como hago que se borre cada vez que pruebe el juego?
¿Por qué guardar algo en un ini si se quiere que ese algo se borre cada vez que abres el juego? Se supone que los inis precisamente se usan para conservar datos entre partidas, pero si quieres borrar algo al salir o al iniciar, no tiene caso guardar ese valor en un ini, ya que ese es el comportamiento normal de GM, los datos sólo se mantienen el tiempo que el juego esté en ejecución.
Título: Re:Me detecta una variable en un ini que no existe
Publicado por: arcangelcaos en Enero 31, 2015, 12:32:17 PM
No es que quiera borrarlo vada vez. Pero es que quiero cimprobar el funcionamiento, y como se salta esa room al existir no podia comprobarlo.
Bueno, lo que he hecho mientras que estoy desarrollando es crear un objeto persistentr con end game, y que hay borre todos los inis y txt. Cuando vaya a exportar el juego es simplemente quitar ese objeto.
Gracias por la aclaracion. Pensaba que en modo edicion no guardaba definitivamente los inis.