Agosto 10, 2017, 02:02:35 PM Ultima modificación: Agosto 11, 2017, 06:01:24 PM por Missy
Hola, estoy intentando hacer que el juego cree un .ini y una variable o (Si ya está creado) modifique la variable que ya creó anteriormente. Para así tener un archivo de configuración del juego (Como un savegame) y evitar que se restablezcan los cambios.

//Cambiar el idioma
ini_open(working_directory + "Config.ini");
ini_write_real("Options", "Lang", "2")
ini_write_string("ES1","ES2","ES3");
ini_close();


El código tendría que escribirme en el .ini, no entiendo qué es lo que está fallando..

Para poder guardar en el .ini, la variable debe estar creada en el objeto que la ejecuta,una variable global o usar una variable local.El codigo que utilizas te sirve para poder guardar la información pero no para cargarla.

Para cargarla utiliza ini_read_string("Sección","Nombre","valor") //para textos   ini_read_real("Sección","Nombre","valor") //para numeros

después solamente haces que la variable deseada tome ese valor con Variable = ini_read_(string o real)("Sección","Nombre","valor")

Cita de: TheWood en Agosto 10, 2017, 06:03:34 PM
Para poder guardar en el .ini, la variable debe estar creada en el objeto que la ejecuta,una variable global o usar una variable local.El codigo que utilizas te sirve para poder guardar la información pero no para cargarla.

Para cargarla utiliza ini_read_string("Sección","Nombre","valor") //para textos   ini_read_real("Sección","Nombre","valor") //para numeros

después solamente haces que la variable deseada tome ese valor con Variable = ini_read_(string o real)("Sección","Nombre","valor")

He usado:

//Cambiar el idioma
ini_open(working_directory + "config.ini");
ini_write_string("Options", "Language", obj_menu.Language);
ini_close();


Pero no he conseguido hacerlo funcionar

Cita de: Missy en Agosto 10, 2017, 06:31:31 PM
Cita de: TheWood en Agosto 10, 2017, 06:03:34 PM
Para poder guardar en el .ini, la variable debe estar creada en el objeto que la ejecuta,una variable global o usar una variable local.El codigo que utilizas te sirve para poder guardar la información pero no para cargarla.

Para cargarla utiliza ini_read_string("Sección","Nombre","valor") //para textos   ini_read_real("Sección","Nombre","valor") //para numeros

después solamente haces que la variable deseada tome ese valor con Variable = ini_read_(string o real)("Sección","Nombre","valor")

He usado:

//Cambiar el idioma
ini_open(working_directory + "config.ini");
ini_write_string("Options", "Language", obj_menu.Language);
ini_close();


Pero no he conseguido hacerlo funcionar

¿Ese codigo es para guardar la variable ? porque si es así debería funcionar,
puedes comprobar si te crea el archivo en "C:\Users\Sala1\AppData\Local"

solo cambia el " Sala1 " por tu usuario y busca el nombre de tu proyecto y el .ini

También revisa si "obj_menu.Language" es un texto y no un numero

#4 Agosto 10, 2017, 07:34:23 PM Ultima modificación: Agosto 10, 2017, 07:36:08 PM por Missy
Cita de: TheWood en Agosto 10, 2017, 07:27:22 PM
Cita de: Missy en Agosto 10, 2017, 06:31:31 PM
Cita de: TheWood en Agosto 10, 2017, 06:03:34 PM
Para poder guardar en el .ini, la variable debe estar creada en el objeto que la ejecuta,una variable global o usar una variable local.El codigo que utilizas te sirve para poder guardar la información pero no para cargarla.

Para cargarla utiliza ini_read_string("Sección","Nombre","valor") //para textos   ini_read_real("Sección","Nombre","valor") //para numeros

después solamente haces que la variable deseada tome ese valor con Variable = ini_read_(string o real)("Sección","Nombre","valor")

He usado:

//Cambiar el idioma
ini_open(working_directory + "config.ini");
ini_write_string("Options", "Language", obj_menu.Language);
ini_close();


Pero no he conseguido hacerlo funcionar

¿Ese codigo es para guardar la variable ? porque si es así debería funcionar,
puedes comprobar si te crea el archivo en "C:\Users\Sala1\AppData\Local"

solo cambia el " Sala1 " por tu usuario y busca el nombre de tu proyecto y el .ini

También revisa si "obj_menu.Language" es un texto y no un numero

Ese código debería de guardar, pero no lo hace, probé también a compilarlo y probar a ver si funcionaba, pero aún nada obj_menu.Language está definido como "ES"

PD: También probé a crear manualmente el config.ini pero aún nada

Acabo de probar el código, y remplacé "obj_menu.Language" por "ES" y me guardó perfectamente, tal vez sea un error del obj_menu.Language.

Cita de: TheWood en Agosto 10, 2017, 07:45:11 PM
Acabo de probar el código, y remplacé "obj_menu.Language" por "ES" y me guardó perfectamente, tal vez sea un error del obj_menu.Language.
Acabo de crear un proyecto de 0 y he puesto el código y me sigue sin crear el .ini, adjunto GMX

MMMmmmmmm......que raro a mi si me los crea, podrías hacer que gamer maker compruebe si existe

if file_exists(working_directory + "config.ini") {show_message("Hola"); } si existe debería salir un mensaje.

Cita de: TheWood en Agosto 10, 2017, 08:07:40 PM
MMMmmmmmm......que raro a mi si me los crea, podrías hacer que gamer maker compruebe si existe

if file_exists(working_directory + "config.ini") {show_message("Hola"); } si existe debería salir un mensaje.

Sí, me sale el mensaje

EDIT: Solucionado, tenía 2 carpetas con el mismo nombre parecido