Conectar-se
Quem está conectado
20 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 19 Visitantes

JPlays

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 06/11/2012
Número de Mensagens : 8
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

problemas com highscore

em Ter 07 Maio 2013, 20:22
Eu tava olhando uns tutoriais por aki no GMBrasil, e vi um de como faz highscore usando arquivo .ini, criado pelo Willy, só q no caso do meu jogo, eu iria gravar no highscore , o nome do jogador e a pontuação, o nome eu consigo gravar, agora a pontuação sempre fica 0, nao sei se é por causa q eu estou usando o GMS e no tutorial ele usa o GM8, ou pq eu to fazendo o jogo em html5?
se alguem puder ajudar agradeço
ou se alguem tiver alguma outra dica para me dar, tb agradeceria =)
vou deixar os codigos q eu usei no jogo aki:
Código:

//cria o highscore.ini

TopList=10 // numero max de itens na lista

ini_open("highscore.ini") //cria abre o arquivo .ini

for (i = 1; i <= TopList; i += 1)//repete o código, o numero de lugares escolhidos
{
    Nome=string(i)//transforma o lavor de [i] em uma string(coloca entre aspas), e guarda na variável Nome
    Pontos=string(i)
    Nota=string(i)
    if !(ini_key_exists("Nomes",Nome))//se não existir o "Nome"
    {
        ini_write_string("Nomes",Nome,"")//cria o "Nome"
    }
    if !(ini_key_exists("Pontuações",Pontos))//se não existir o "Pontuação"
    {
        ini_write_real("Pontuações",Pontos,0)//cria o "Pontuação"
    }
    if !(ini_key_exists("Notas",Nota))//se não existir o "Nota"
    {
        ini_write_string("Notas",Nota,"")//cria o "Nota"
    }
}
ini_close()//fecha o arquivo .ini que esta sendo usado

Código:

//DESENHAR RECORDES

ini_open("highscore.ini")
for (idraw = 1; idraw <= TopList; idraw += 1)//repete o codigo, o numero de lugares escolhidos
{
    var Poonto;
    Poonto = ini_read_real("Pontuações",string(idraw),0);//procura no arquivo ini, qual é o recorde do lugar indicado pela variável idraw da [for]. E grava na var Pontos
    draw_text(100,idraw*16,"Pontuação: "+string(Poonto));//desenha o recorde
    var Noome;
    Noome = ini_read_string("Nomes", string(idraw), ""); 
    draw_text(250, idraw*16, "Nome: " +string(Noome));
    var Nootas;
    Nootas = ini_read_string("Notas", string(idraw), "");
    draw_text(400, idraw*16, "Notas: "+string(Nootas));
}
ini_close()

Código:

//Adiciona nova pontuação ao highscore

for (i = 1; i <= TopList; i += 1)//repete o codigo, o numero de lugares escolhidos
{
    ini_open("highscore.ini")
    Poonto = ini_read_real("Pontuação",string(i),0)//procura no arquivo ini, qual é a ponuação do lugar
    Noome = ini_read_string("Nomes", string(i), "");
    Nootas = ini_read_string("Notas", string(i), "");
   
    //indicado pela variavel i da [for]. E grava na variavel Lugar
   
    if (score > Poonto)//se score for maior que o lugar indicado pela variavel i da [for]
    {//quer dizer que score quebrou o recorde do lugar indicado pela variavel i da [for]
        ini_write_real("Pontuação",string(i),score)//grava no arquivo ini a pontuação do novo recorde
        if emenino
            ini_write_string("Nomes", string(i), "Fulano");
        else
            ini_write_string("Nomes", string(i), "Fulana");
        ini_write_string("Notas",string(i),nota1+"-"+nota2+"-"+nota3);
        ini_close()
        exit;//como a [for] vai continuar encontrando os outros lugares menores que o score, exit fecha o codigo,
        //para preservar o valor dos outros lugares
    }
}
avatar
Data de inscrição : 15/08/2010
Número de Mensagens : 1599
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 147

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://spyreserver.16mb.com

Re: problemas com highscore

em Ter 07 Maio 2013, 20:32
tenta usar o write_real, ao invéz de write_string

[edit]
cara, quando você vai armazenar um valor real (numerico) você não pode colocar em string, seria como transforma-lo em texto, quando for algo tipo pontos, ao invés de colocar '' ou "", coloca 0 (ZERO)

exemplo:
ao invés de
Código:
pontos=''
coloque
Código:
pontos=0
avatar
Ranking : Nota B
Notas recebidas : C + C + B
Data de inscrição : 28/07/2012
Número de Mensagens : 1281
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 73

Prêmios
   : 3
   : 1
   : 3
Ver perfil do usuário

Re: problemas com highscore

em Ter 07 Maio 2013, 20:54
tanto faz... pelo menos no string economiza caracteres
avatar
Data de inscrição : 15/08/2010
Número de Mensagens : 1599
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 147

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://spyreserver.16mb.com

Re: problemas com highscore

em Ter 07 Maio 2013, 20:56
mais pra ler com o read_real não vai dar serto NUNCA, alem de que poderia atrapalhar durante o jogo para mudar um score (por exemplo) que esteja como string, se não me engano dá erro
avatar
Data de inscrição : 06/11/2012
Número de Mensagens : 8
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: problemas com highscore

em Qua 08 Maio 2013, 08:59
Onix, me fala onde q ta errado, pq todas as vezes q eu uso o pontos(score) ta em real ( o notas é pra ser em string msm)
avatar
Data de inscrição : 15/08/2010
Número de Mensagens : 1599
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 147

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://spyreserver.16mb.com

Re: problemas com highscore

em Qua 08 Maio 2013, 13:02
cara, não posso te ajudar porque no meu pc ta dando unexpected error... quando eu tento criar um ini (independente da forma), e tambem não intendi nada nesse codigo '--

tente fazer algo como
ini_write_string('HS',posição no HS, nome)
ini_write_string('HS',posição no HS, score)
Conteúdo patrocinado

Re: problemas com highscore

Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum