Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: matiascarpello en Julio 18, 2014, 07:29:31 PM

Título: Ayuda con guardar archivo ini
Publicado por: matiascarpello en Julio 18, 2014, 07:29:31 PM
Hola gente, tengo un juego con un sistema de desbloqueo de nivel.

Cuando el personaje coliciona con la meta se ejecuta este código:

if(room = level_3){ini_open("save.ini"); ini_write_real("niveles","nivel4",1); ini_close();}

Y el el botón que llava al nivel antes bloqueado tengo el siguiente código:

ini_open("save.ini");
n = ini_read_real("niveles","nivel2",0);
ini_close();

if(n = 0)
{
    bloqueado = 1;
    sprite_index = Bloqueado;
}
else
{
    bloqueado = 0;
    sprite_index = spr_2;
}


El problema es que a partir del nivel 6 quiero añadir un requisito más para que se cumpla el desbloqueo del nivel:

Quiero que si global.coin=0 es mayor o igual a tres recién se aplique el código que les deje ahí arriba al principio.

O sea resumiendolo si global.coin=0 es mayor o igual a tres se haga esto:

if(room = level_3){ini_open("save.ini"); ini_write_real("niveles","nivel4",1); ini_close();}

Caso contrario que no se haga nada.

¿Como podría implementar ese condicional?
Título: Re:Ayuda con guardar archivo ini
Publicado por: penumbra en Julio 18, 2014, 09:52:44 PM
 :o Por los dioses del GML, por favor explícame qué significa la expresión

"si global.coin=0 es mayor o igual a tres"

Pusiste eso dos veces, así que todavía tengo más dudas de qué significa esa condición. Y también lo siguiente. Mencionas que a partir del nivel 6 (es decir, 6, 7, 8,...) quieres agregar otra condición, pero por qué luego tienes if (room = level_3)? Eso sólo se cumpliría cuando el nivel es 3, no 6, 7, 8, etc.
Título: Re:Ayuda con guardar archivo ini
Publicado por: zorge en Julio 18, 2014, 09:58:30 PM
creo que se refiere a que si global.coin = 0 es mayor o igual al nivel 3 aunque tampoco entiendo bien eso creo que quiere que cuando tenga monedas en el nivel 3 este se desbloquee si no tiene monedas y las demas condiciones este siga bloqueado creo que es lo que intenta explicar que si tiene monedas que en este caso seria global.coin = xmonedas y este en el nivel 3 este nivel se desbloquee
Título: Re:Ayuda con guardar archivo ini
Publicado por: penumbra en Julio 18, 2014, 10:15:46 PM
mmm ya voy entendiendo, creo que quiere saber si en el nivel 3 no hay monedas... o eso me figuro.
Título: Re:Ayuda con guardar archivo ini
Publicado por: Guacusio en Julio 19, 2014, 02:10:07 AM
Yo creo que más bien le sobró el "=0" y quiso decir:

CitarO sea resumiendolo si global.coin es mayor o igual a tres se haga esto: (...)

matiascarpello tendrá que volver a aclararlo.
Título: Re:Ayuda con guardar archivo ini
Publicado por: canuto120 en Julio 19, 2014, 11:40:03 AM
Vale yo no entiendo mucho pero te voy a explicar como lo haria yo:

if room = level_3
{
global.nivel4 = 1;
ini_open("save.ini")
ini_write_real("niveles","nivel4",global.nivel4)
ini_close();
}


en el siguiente objeto:
evento step:

if global.nivel4 = 1
{
    bloqueado = 1;
    sprite_index = Bloqueado;
}
else
{
    bloqueado = 0;
    sprite_index = spr_2;
}


Crea una room y la pones la primera y añade un objeto que al iniciar el juego cargue todas las variables y te mande a la room principal, yo creo en el bloque de la izquierda creo un script y añado las variables entonces en el objeto pongo lo siguiente:

Script_Globals(); esto es el nombre del script
room_goto(rm_mainmenu);


en Script_Globals deberias añadir algo asi como esto para que cuando empieze el juego se carguen las variables:

ini_open("save.ini");
ini_read_real("niveles","nivel1",0);
ini_read_real("niveles","nivel2",0);
ini_read_real("niveles","nivel3",0);
ini_close();


ahora vayamos a lo de desbloquear el nivel 6 si global.nivel 6 es igual 1 y global.coin es mayor o igual a 3

if global.nivel6 = 1 and global.coin >= 3
{
    bloqueado = 1;
    sprite_index = Bloqueado;
}
else
{
    bloqueado = 0;
    sprite_index = spr_6;
}


Creo que asi esta bien explicado soy novato asi que no se explicarme muy bien. Si alguien entiende mas que yo es libre de criticar xDDDD