Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: unixhacker2600 en Abril 06, 2014, 01:01:04 PM

Título: Archivo InI
Publicado por: unixhacker2600 en Abril 06, 2014, 01:01:04 PM
Mirad,mi problema ahora es el siguiente,el juego me dice:"INI files must be located in the same directory as the program".
Pero... El ini está en el directorio del programa...
Create:
global.PD="C:\Reverse_Engine\Projects\" //Projects directory
global.GD="C:\Reverse_Engine\" //Engine directory
global.NewProjetName="Juego2" //New project name

Step:
if mouse_check_button_pressed(mb_left) && distance_to_point(mouse_x,mouse_y)=0 //Check if click
{
if !directory_exists(global.PD+global.NewProjetName)
    {
    show_message("El nombre no está disponible");
    }
else
    {
    directory_create(global.PD+global.NewProjetName);
    ini_open(working_directory+"\Mi_INI.ini") // <--ERROR
    }
}

no se a que se debe :C
Título: Re:Archivo InI
Publicado por: ocarina en Abril 06, 2014, 04:52:11 PM
Amigo si lo q quieres es crear el archivo ini en el directorio desde donde se ejecuta tu aplicacion no es necesario poner eso de workin_directory +..............
Con sólo el open_ini("mi_ini") es suficiente, el te lo crea directamente en el archivo raiz de tu aplicación

Saludos
Título: Re:Archivo InI
Publicado por: unixhacker2600 en Abril 06, 2014, 08:04:10 PM
Ese es el problema,no me la genera  :'(
Título: Re:Archivo InI
Publicado por: vampy09 en Abril 06, 2014, 08:33:19 PM
Si, lo que sucede es que la funcion ini_open tirara ese error cuando encuentre un "\" (backslash) en el nombre del archivo (argumento) sin importar si es el mismo directorio del juego o no.

ini_open no crea un INI solo lo abre.

Para lograr lo que deseas debes crear un INI con los valores en default e incluirlo dentro del ejecutable del juego, con la opcion Included Files.

http://docs.yoyogames.com/source/dadiospice/002_reference/file%20handling/file%20system%20limits.html (http://docs.yoyogames.com/source/dadiospice/002_reference/file%20handling/file%20system%20limits.html)
Título: Re:Archivo InI
Publicado por: ocarina en Abril 07, 2014, 06:35:46 AM
Disculpa vampy, pero el ini_open si crea el ini si este no existe
Título: Re:Archivo InI
Publicado por: vampy09 en Abril 07, 2014, 07:08:33 AM
Cita de: ocarina en Abril 07, 2014, 06:35:46 AM
Disculpa vampy, pero el ini_open si crea el ini si este no existe

[user]ocarina[/user] en parte tienes razón ;)

Pero un INI solo se creara si escribes datos.

Osea esto si crearia un INI:
ini_open( "settings.ini" );
ini_write_real( "Opciones", "Fullscreen", 1);
ini_close();


Pero esto no:
ini_open( "settings.ini" );
ini_read_real( "Opciones", "Fullscreen", 1);
ini_close();


Ni esto:
ini_open( "settings.ini" );
ini_close();


Por tanto a lo que yo me referia es que la funcion ini_open() por si sola no crea un INI.
Título: Re:Archivo InI
Publicado por: penumbra en Abril 07, 2014, 07:09:26 AM
A manera de pregunta

Si  ini_open() crea un INI nuevo, ¿qué datos se crean dentro de ese INI nuevo?

En la mayoría de ejemplos en el foro de YoYo he visto que casi siempre comprueban si existe el archivo ini antes leer/escribir, lo que me hace pensar (sólo pensar, no asegurar) que ini_open() no crea un archivo. Pero si se creara, cómo saber qué llaves y secciones leer del ini si lo creo GM y no el usuario?}

Vampy: el enlace que pusiste apunta al manual de GM:S, pero según el ícono del mensaje original, el makero unixhacker usa la versión 8. A lo mejor me equivoco, pero creo que una de las limitaciones del sistema ini de GM8 es que los inis sólo se pueden ubicar dentro de la carpeta donde se encuentra el archivo gmk/gm81. Si quieres usar un ini fuera de esa carpeta (por ejemplo, dentro de un subdirectorio), hay que usar una dll que maneje inis (hablo de gm8, no de gms)
Título: Re:Archivo InI
Publicado por: vampy09 en Abril 07, 2014, 07:24:02 AM
Cita de: penumbra en Abril 07, 2014, 07:09:26 AM
Vampy: el enlace que pusiste apunta al manual de GM:S, pero según el ícono del mensaje original, el makero unixhacker usa la versión 8. A lo mejor me equivoco, pero creo que una de las limitaciones del sistema ini de GM8 es que los inis sólo se pueden ubicar dentro de la carpeta donde se encuentra el archivo gmk/gm81. Si quieres usar un ini fuera de esa carpeta (por ejemplo, dentro de un subdirectorio), hay que usar una dll que maneje inis (hablo de gm8, no de gms)
Si el enlace no es el correcto ???

Ahora con las limitaciones del GM 8 en relacion a los INI sinceramente no me acuerdo, pero si tu dices que las hay entonces  [user]unixhacker2600[/user] tendra que usar una dll.
Título: Re:Archivo InI
Publicado por: penumbra en Abril 07, 2014, 07:29:19 AM
Según el punto número 2 del primer post, GM8 sí está limitado a leer inis sólo en el directorio del proyecto

http://gmc.yoyogames.com/index.php?showtopic=375804 (http://gmc.yoyogames.com/index.php?showtopic=375804)


...uh, el propio manual lo dice  :-[

CitarThe ini file must be stored in the same folder as the game!
Título: Re:Archivo InI
Publicado por: _-Caleb-_ en Abril 07, 2014, 07:48:59 AM
Cita de: vampy09 en Abril 07, 2014, 07:08:33 AM
Cita de: ocarina en Abril 07, 2014, 06:35:46 AM
Disculpa vampy, pero el ini_open si crea el ini si este no existe

[user]ocarina[/user] en parte tienes razón ;)

Pero un INI solo se creara si escribes datos.

Osea esto si crearia un INI:
ini_open( "settings.ini" );
ini_write_real( "Opciones", "Fullscreen", 1);
ini_close();


Pero esto no:
ini_open( "settings.ini" );
ini_read_real( "Opciones", "Fullscreen", 1);
ini_close();


Ni esto:
ini_open( "settings.ini" );
ini_close();


Por tanto a lo que yo me referia es que la funcion ini_open() por si sola no crea un INI.

Ini open no crea un archivo si no se scribe en el, pero se puede hacer una comprobación con un if y crearlo (Así lo hago yo en mi juego para la configuración).
Por ejemplo

ini_open("ini.ini");
valor = ini_read_string("options","fullequip","null");
if(valor == "null")
    {
    ini_write_string("options","fullequip","miopcionbydefault");
    }
else
    {
    // Lo que sea xD
    }
ini_close();
Título: Re:Archivo InI
Publicado por: ocarina en Abril 08, 2014, 02:13:20 AM
Caleb y vampy si tienen toda la razon se me olvido ese pequeño detalle Jajajajaja  :D