Hola!
Bueno mi duda es esta. Ya intente varias cosas y ninguna me funciono :/
El tema es asi:
Tengo un juego con 4 dificultades (Facil, Normal-Facil, Normal-Dificil,Dificil) y como es un juego de puzzle (Creo que se puede categorizar asi) necesito que el score se guarde en 4 distintas tablas para que cuando uno juegue en facil, no se pongan los puntajes con los de cuando jugo en dificil.
Un ejemplo: En el buscamina de Windows, depende la dificultad que elejas, es en la tabla que van a poner tu puntaje (Tiempo en este caso).
Lo que yo quiero es eso, no importa si es la tabla highscore predeterminada del GameMaker (Pero de ser asi, seria mejor, creo yo). Asi que de cualquier forma que lo sepan hacer, me ayudan!
Desde ya, muchisimas gracias!
Saludos!
http://www.comunidadgm.org/manual_GM/Tablas_de_records_htm.htm
YoPondria algo asi
nivel="dificultad"
highscore_add(nivel,"puntaje")
y nose esto :S
highscore_value(place) Devuelve el puntaje de la persona en el lugar PLACE(1-10). Esto puede ser usado para dibujar tu propia lista de puntajes.
Pero ahi no puedo poner el nombre del jugador.
Hay alguna forma para que el jugador pueda poner su nombre pero que al final el juego agregue: " - Dificultad"
Cosa que si pongo MaanuRP y jugue en dificl salga: MaanuRP - Dificil
Pero no hay forma para hacerlo con diferentes tablas de highscore?
Mi duda seria: Como hago para que me escriba o me dibuje (Draw) una variable y un string seguidos, por ejemplo:
draw_text(0,0,get_string(Palabra,"") && variable)
Pero si lo pones asi, te tira error en &&, como se puede arreglar esto para que funcione? Creo que se entiende lo que quiero hacer.
draw_text(0,0,get_string(Palabra,"")+""+variable);
Cita de: Daz en Julio 23, 2011, 03:30:01 PM
draw_text(0,0,get_string(Palabra,"")+""+variable);
No Daz, eso no funciona:
Primero hay que ponerle comillas a "Palabra" en el get_string. Y despues de poner eso, te tira este error:
Wrong type of arguments to +.
Igual esto no soluciona mi problema, porque seguiria siendo una sola tabla de highscore, lo que yo necesito es que haya 1 tabla por cada dificultad.
scr_Leervar file, ini, section, i;
file = argument0
section = argument1
score_count = 10
default_name = "nombrexd"
default_value = 0
if file_exists(file)
{
ini_open(file)
for(i=0;i<score_count;i+=1)
{
name [i] = ini_read_string(section,"name"+string(i),default_name)
value[i] = ini_read_real(section,"val" +string(i),default_value)
}
ini_close()
}
else
{
for(i=0;i<score_count;i+=1)
{
name [i] = default_name
value[i] = default_value
}
}
scr_escrivirvar i;
ini_open(argument0)
for(i=0;i<10;i+=1)
{
ini_write_string(string(list_id),"name"+string(i),name[i])
ini_write_real(string(list_id),"val" +string(i),value[i])
}
ini_close()
obj_tablapuntaje
Draw
draw_set_color(c_blue)
draw_rectangle(0,0,room_width,room_height,0)
draw_set_color(c_black)
draw_rectangle(0,0,room_width,room_height,1)
draw_set_color(c_white)
draw_text(2,0,"Highscore for " + string(list_id))
hs_txt = ""
for(i=0;i<10;i+=1)
{
hs_txt += name[i] + " -- " + string(value[i]) + "#"
}
draw_text(2,40,hs_txt)
obj_ex
create
current_list=1
var i;
for(i=0;i<3;i+=1)
{
lists[i] = instance_create(0,0,high_score)
lists[i].list_id = i+1;
with(lists[i]){ read_values("highscore.ini",string(list_id)) }
}
current_list = lists[0]
//SI SELECCIONA FACIL
with(high_score){visible = false}
current_list = lists[0]
//SI SELECCIONA NORMAL
with(high_score){visible = false}
current_list = lists[1]
//DIFICIL
with(high_score){visible = false}
current_list = lists[2]
Gracias Gabriel Moreno!
Aplausos para vos :D
Hola, tambien puedes usar arrays:
N -> total de entradas
M -> total de dificultades
nombres[0..N-1] -> string
puntajes[0...N-1] -> real
dificultad[0...N-1] -> 0...M-1
- Dada una dificultad j en 0...M-1
- Para cada i en 0...N-1
- Si dificultad es j
- Agregar nombre y puntaje[j] a la lista de puntajes
- Dibujar la tabla de puntajes
Saludos.
Cita de: Zeit en Julio 23, 2011, 11:30:24 PM
Hola, tambien puedes usar arrays:
N -> total de entradas
M -> total de dificultades
nombres[0..N-1] -> string
puntajes[0...N-1] -> real
dificultad[0...N-1] -> 0...M-1
- Dada una dificultad j en 0...M-1
- Para cada i en 0...N-1
- Si dificultad es j
- Agregar nombre y puntaje[j] a la lista de puntajes
- Dibujar la tabla de puntajes
Saludos.
Todavia no manejo bien los arrays, lo podrias explicar un poco mejor?
Cita de: Gabriel Moreno en Julio 23, 2011, 06:53:50 PM
scr_Leervar file, ini, section, i;
file = argument0
section = argument1
score_count = 10
default_name = "nombrexd"
default_value = 0
if file_exists(file)
{
ini_open(file)
for(i=0;i<score_count;i+=1)
{
name [i] = ini_read_string(section,"name"+string(i),default_name)
value[i] = ini_read_real(section,"val" +string(i),default_value)
}
ini_close()
}
else
{
for(i=0;i<score_count;i+=1)
{
name [i] = default_name
value[i] = default_value
}
}
scr_escrivirvar i;
ini_open(argument0)
for(i=0;i<10;i+=1)
{
ini_write_string(string(list_id),"name"+string(i),name[i])
ini_write_real(string(list_id),"val" +string(i),value[i])
}
ini_close()
obj_tablapuntaje
Draw
draw_set_color(c_blue)
draw_rectangle(0,0,room_width,room_height,0)
draw_set_color(c_black)
draw_rectangle(0,0,room_width,room_height,1)
draw_set_color(c_white)
draw_text(2,0,"Highscore for " + string(list_id))
hs_txt = ""
for(i=0;i<10;i+=1)
{
hs_txt += name[i] + " -- " + string(value[i]) + "#"
}
draw_text(2,40,hs_txt)
obj_ex
create
current_list=1
var i;
for(i=0;i<3;i+=1)
{
lists[i] = instance_create(0,0,high_score)
lists[i].list_id = i+1;
with(lists[i]){ read_values("highscore.ini",string(list_id)) }
}
current_list = lists[0]
//SI SELECCIONA FACIL
with(high_score){visible = false}
current_list = lists[0]
//SI SELECCIONA NORMAL
with(high_score){visible = false}
current_list = lists[1]
//DIFICIL
with(high_score){visible = false}
current_list = lists[2]
Puedo usar este tambi?n??? Te dar? credito. Lo usar? para un juego en el que estoy trabajando, claro si tu me permites usar este codigo.
Saludos. :D
;) No Eiste Necesidad De Creditos ;)
Hola ya se que el tema es antiguo.. pero aver si me podeis ayudar porque tengo el mismo problema y nose muy bien como va el codigo que abeis puesto.
yo en principio tenia 1 nivel con una puntuacion y hasta hay todo bien.. pero luego desarrollando mas el juego e querido implementar mas niveles con mas dificultad y quiero poner el mejor record de cada uno de los niveles en tu correspondiente
room de record ejemplo record de el nivel 1 que salga en la room_record del nivel 1 y asi con los 3 niveles que tengo..
e intentado hacer varias cosas con lo que ya tenia del nivel 1 que me funciona perfectamente pero por mas que intento me salen el record del nivel 1 este donde este o no coge la mayor puntuacion del nivel.. vamos que por mas que cambio cosas y intento hacer cada 1 por separado no puedo
gracias y un saludo!
busca informacion sobre archivos ini.
Cita de: ivn_eze en Abril 01, 2014, 09:03:16 PM
busca informacion sobre archivos ini.
Gracias.. pero creo que explicandome un poco el codigo de arriba tendria suficiente con decirme que es obj_ex y suponiendo que escribir es guardar y leer cargar.
Un saludo
es un tema muy viejo que fue echo para gm8.1 y vos tenes el studio.
hay cientos de cosas que cambiaron.
te recomiendo que abras un nuevo tema sobre esto pero en base a studio.