Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Domenec en Mayo 02, 2013, 04:54:45 PM

Título: Guardando y cargando variables
Publicado por: Domenec en Mayo 02, 2013, 04:54:45 PM
Tengo algunas dudas sobre este tema:

He conseguido guardar un archivo .ini con algunas variables siguiendo algun post de por aqui.
Tambien he conseguido cargarlo pero no se trasladan los valores de esas variables al juego en si.

Mi codigo para guardar el .ini es este:
ini_open("options.ini")
ini_write_real("Armas",obj_player.cuchillo,num_cuchillo) //la variable cuchillo no es global
ini_close()

Para cargalo uso:
ini_open("options.ini")
ini_read_real("Armas",obj_player.cuchillo,1)
ini_close()

¿Que debo hacer para, por si por ejemplo, la variable cuchillo esta en 3 cuango la guardo, cuando la cargue sea 3?. ¿Debo hacer algo mas despues de cargar el .ini?

Gracias.

edito:
lo encontre...me faltaba poner la variable antes de cargarla:
cuchillo=ini_read_real("Armas","obj_player.cuchillo",0)
Título: Re:Guardando y cargando variables
Publicado por: Mgbu en Mayo 02, 2013, 07:40:34 PM
Tenes que ver cuales son los argumentos de ini_read_real() y ini_write_real(), está en el manual (http://www.comunidadgm.org/manual_GM/Archivos_INI.htm) y te pongo lo que dice:

Citar
ini_read_real(section,key,default) Lee el valor real de la llave indicada con key de la sección indicada como section.  Cuando no existe la llave o la sección se devuelve el valor especificado por default.
ini_write_real(section,key,value) Escribe el valor real value en la llave indicada con key en la sección indicada con section.

Entonces vos deberías escribir ini_read_real(seccion,nombre de variable,0)
En la seccion va el nombre del grupo de variables por asi decirlo, en el INI eso está entre corchetes, así: [Seccion]. en el segundo pones el nombre de la variable a leer, en este caso creo que seria obj_player.cuchillo. Cuidado que la seccion y la llave (nombre de variable) van como String, o sea como texto. Entonces van entre comillas ("")
Y despues el 0 es el valor que devuelve si no encontró la seccion o la llave, podes poner el que quieras

Despues en ini_write_real es un poco distinto. Sería así: ini_write_real(seccion,nombre de variable,valor a guardar)
Al igual que la anterior los dos primeros son Strings, y el tercero es un valor, un numero. Entonces ahi podrías poner una variable.

Si en tu ejemplo num_cuchillo es la variable a guardar y obj_player.cuchillo es la llave yo pienso que quisiste hacer esto:
CitarMi codigo para guardar el .ini es este:
ini_open("options.ini")
ini_write_real("Armas","obj_player.cuchillo",num_cuchillo) //la variable cuchillo no es global
ini_close()

Para cargalo uso:
ini_open("options.ini")
ini_read_real("Armas","obj_player.cuchillo",1)
ini_close()

Si en cambio la variable obj_player.cuchillo guarda un string tu código debería funcionar
CitarMi codigo para guardar el .ini es este:
ini_open("options.ini")
ini_write_real("Armas",obj_player.cuchillo,num_cuchillo) //la variable cuchillo no es global
ini_close()

Para cargalo uso:
ini_open("options.ini")
ini_read_real("Armas",obj_player.cuchillo,1)
ini_close()

Lo que no entiendo es tu solucion al problema, porque estas leyendo la llave obj_player.cuchillo que no existe, porque en ini_write_real no usaste comillas
Título: Re:Guardando y cargando variables
Publicado por: Domenec en Mayo 02, 2013, 09:32:52 PM
Bueno, tienes razon, ha sido un error al escribirlo por mi parte.  :-[
Como dices, tanto el apartado seccion como el key van entre comillas.
De cualquier manera, mi principal error era no poner la variable antes del ini_read..... Para que dicha variable tomara el valor que esta cargando del ini.

Estoy aun peleandome con todo esto...pero al menos por aqui, parece que he encontrado una via de escapatoria al callejon sin salida en el que me habia metido.  :)
La verdad es que voy aprendiendo sobre la marcha y muchas veces descubro funciones o maneras de hacer las cosas que me obligan a rehacer parte del codigo que ya tengo para que quede mas "pulido". No tengo mucha idea de programacion pero voy arrastrando experiencia del antiguo basic y unos pinitos con el añorado Div Games Studio.
Título: Re:Guardando y cargando variables
Publicado por: Mgbu en Mayo 03, 2013, 07:04:21 PM
Cita de: Domenec en Mayo 02, 2013, 09:32:52 PM
De cualquier manera, mi principal error era no poner la variable antes del ini_read..... Para que dicha variable tomara el valor que esta cargando del ini.
Ahh de eso no me habia dado cuenta jaja. Me alegro que funcione