Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Makeru en Octubre 10, 2013, 07:10:21 AM

Título: Puntos en .ini
Publicado por: Makeru en Octubre 10, 2013, 07:10:21 AM
Hola buenas, he estado rebuscando por el foro, tomando ejemplos y nada  :'(

En mi juego cuando pierdes, quiero que se muestre una tabla de puntuaciones.
Lo que yo he hecho funciona asi:

Termina el nivel y hay una room con un objeto que contiene esto esto:
Evento Create
[spoiler]

ini_open("arcade.ini")

puntoarcade1=ini_read_real('Arcade','puntoarcade1',-1)
puntoarcade2=ini_read_real('Arcade','puntoarcade2',-1)
puntoarcade3=ini_read_real('Arcade','puntoarcade3',-1)
puntoarcade4=ini_read_real('Arcade','puntoarcade4',-1)
puntoarcade5=ini_read_real('Arcade','puntoarcade5',-1)
puntoarcade6=ini_read_real('Arcade','puntoarcade6',-1)
puntoarcade7=ini_read_real('Arcade','puntoarcade7',-1)
puntoarcade8=ini_read_real('Arcade','puntoarcade8',-1)
puntoarcade9=ini_read_real('Arcade','puntoarcade9',-1)
puntoarcade10=ini_read_real('Arcade','puntoarcade10',-1)


if score<=puntoarcade10{
show_message('No has entrado en la tabla de records')
}else{
if score<=puntoarcade9{
show_message('Has quedado de 9º')
}else{
if score<=puntoarcade8{
show_message('Has quedado de 8º')
}else{
if score<=puntoarcade7{
show_message('Has quedado de 7º')
}else{
if score<=puntoarcade6{
show_message('Has quedado de 6º')
}else{
if score<=puntoarcade5{
show_message('Has quedado de 5º')
}else{
if score<=puntoarcade4{
show_message('Has quedado de 4º')
}else{
if score<=puntoarcade3{
show_message('Has quedado de 3º')
}else{
if score<=puntoarcade2{
show_message('Has quedado de 2º')
}else{
if score<=puntoarcade1{
ini_open("Arcade.ini")
ini_write_real("Arcade","puntoarcade1","score")
show_message('Has quedado de 1º')
ini_close()
}else{
show_message('Has quedado de 1º')
}}}}}}}}}}


ini_close()


[/spoiler]


Evento Draw:
[spoiler]draw_text(150,50,puntoarcade1)
draw_text(150,70,puntoarcade2)
draw_text(150,90,puntoarcade3)
draw_text(150,110,puntoarcade4)
draw_text(150,130,puntoarcade5)
draw_text(150,150,puntoarcade6)
draw_text(150,170,puntoarcade7)
draw_text(150,190,puntoarcade8)
draw_text(150,210,puntoarcade9)
draw_text(150,230,puntoarcade10)
draw_set_color(c_blue);
draw_set_font(font1);
[/spoiler]

y no funciona la tabla de puntuaciones no guarda la puntuación anterior y obviamente no pone al primero de la lista.
estoy desesperado con esto, Gracias de antemano.
Título: Re:Puntos en .ini
Publicado por: Iros en Octubre 10, 2013, 04:36:41 PM
Según tu código, nada más guardas el valor del que superó el valor del 1° puesto, los otros nunca le pusiste el ini_write_real(), a demás en el 1° puesto estás cerrando el archivo *.ini y después del if lo volvés a cerrar, sacale el que le pusiste dentro del if y dejale el que está afuera a ver que pasa.
Título: Re:Puntos en .ini
Publicado por: Makeru en Octubre 10, 2013, 07:20:35 PM
uy copie mal el codigo, el caso es que puse el write en todos y puse también lo de close, y nada de nada, nose que hacer ya, estoy desesperado. :'(
Título: Re:Puntos en .ini
Publicado por: Iros en Octubre 11, 2013, 01:39:48 AM
Podes hacer dos cosas, subir el editable así vemos cual es el error o cambiar de método. Uno es usar alguna librería (dll) que lea los *.ini (aunque no se si GMS soporta librerías), la otra es usar la función file_text_ (http://www.comunidadgm.org/manual_GM/Archivos_GML.htm) que directamente te crea un archivo de texto plano en vez de un archivo *.ini