Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Missy en Agosto 10, 2017, 02:02:35 PM

Título: [RESUELTO] Necesito ayuda con este código
Publicado por: Missy en Agosto 10, 2017, 02:02:35 PM
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..
Título: Re:Necesito ayuda con este código
Publicado por: 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")
Título: Re:Necesito ayuda con este código
Publicado por: 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
Título: Re:Necesito ayuda con este código
Publicado por: 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
Título: Re:Necesito ayuda con este código
Publicado por: Missy en Agosto 10, 2017, 07:34:23 PM
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
Título: Re:Necesito ayuda con este código
Publicado por: 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.
Título: Re:Necesito ayuda con este código
Publicado por: Missy en Agosto 10, 2017, 07:54:17 PM
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
Título: Re:Necesito ayuda con este código
Publicado por: 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.
Título: Re:Necesito ayuda con este código
Publicado por: Missy en Agosto 10, 2017, 08:32:01 PM
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
Título: Re:Necesito ayuda con este código
Publicado por: TheWood en Agosto 10, 2017, 08:36:36 PM
Ve al Temp directory y busca tu proyecto