[Ajuda] Salvar Score
#1

ALGUEM ME AJUDA AE TIPOW SALVA NA score.ini mais quando o player entra reseta o score dele pq ?olha ae cуdigo :
EM OnFilterScriptInit()
Quote:

if(!fexist("score.ini")) dini_Create("score.ini");

OnPlayerConnect:
Quote:

if(dini_Isset("score.ini",PlayerName(playerid)))

Quote:

SetPlayerScore(playerid,dini_Int("score.ini",Playe rName(playerid)));

OnPlayerDisconnect:
Код:
dini_IntSet("score.ini",PlayerName(playerid),GetPlayerScore(playerid));
OnFilterScriptExit():
Код:
Score[i] = GetPlayerScore(i);
ALGUEM ME AJUDA AE
Reply
#2

Esse cуdigo:
pawn Код:
SetPlayerScore(playerid,dini_Int("score.ini",Playe rName(playerid)));
Troque por:
pawn Код:
SetPlayerScore(playerid,dini_Int("score.ini",PlayerName(playerid)));
Reply
#3

DEU CERTO NAO
Reply
#4

Quote:
Originally Posted by denis15711
Посмотреть сообщение
DEU CERTO NAO
Vocк tem um sistema de Login que usa o Dini?
Se sim, poste que eu adapto para vocк..
Se nгo tiver me avisa,
Reply
#5

FMZ MEU SISTEMA DE LOGIN :
pawn Код:
if(dialogid == LOGIN)
    {
        if(response)
        {
            if(!strlen(inputtext))
            {
                new Nome[MAX_PLAYER_NAME];
                GetPlayerName(playerid, Nome, sizeof(Nome));
                new String[100];
                format(String, sizeof(String), "{7FFFD4}Nick: {1E90FF}%s  {1E90FF}Registrado\n\n{FFFFFF} Digite Sua Senha Para Logar", Nome);
                ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_INPUT, "Login", String, "Logar", "Cancelar");
                SendClientMessage(playerid,0x1E90FFAA,"Senha incorreta digite-a novamente");
                return 1;
            }
            new Nome[MAX_PLAYER_NAME];
            GetPlayerName(playerid, Nome, sizeof(Nome));
            new String[100];
            format(String, sizeof(String), CONTAS, Nome);
            if(!strcmp(inputtext,dini_Get(String,"Senha"),false))
            {
                ShowPlayerDialog(playerid, 5678, DIALOG_STYLE_LIST, " Escolha Uma Torcida ", "Sudeste\nSul e Centro - Oeste\nNorte e Nordeste", "Selecionar", "Cancelar");
                SetarPlayer(playerid);
                Logou[playerid]++;
                logado[playerid] = 1;
                return 1;
            }
            else
            {
                SendClientMessage(playerid,0x00FF00AA,"Senha incorreta digite-a novamente");
                format(String, sizeof(String), "Vocк erro sua senha %s! \nDigite-a novamente!", Nome);
                ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_INPUT, "Login", String, "Logar", "Cancelar");
            }
            return 1;
        }
        else
        {
            SendClientMessage(playerid, 0xFF0000AA, "Vocк nгo quis se logar, por este motivo serб Kickado");
            Kick(playerid);
            return 1;
        }
    }
Reply
#6

Nгo usa dessa forma nгo que й horrнvel D: ! Usa dessa forma aqui: (Cria a pasta Contas)
No OnPlayerDisconnect
pawn Код:
new file[56];
format(file, sizeof(file),"Contas/%s.ini", PlayerName(playerid));
if(dini_Exists(file))
{
    dini_IntSet(file,"Score", GetPlayerScore(playerid));
}
No OnPlayerConnect ou no sistema de login
pawn Код:
new file[56];
format(file, sizeof(file),"Contas/%s.ini", PlayerName(playerid));
if(dini_Exists(file))
{
    SetPlayerScore(playerid, dini_Int(file,"Score"));
}
Desculpe-me se tiver erro no cуdigo ou se nгo der certo, faz tempo que nгo utilizo Dini, rs.
Reply
#7

DEU CERTO NAO
Reply
#8

Quote:
Originally Posted by denis15711
Посмотреть сообщение
DEU CERTO NAO
Fiz um sisteminha simples de score com base na tua duvida..

segue:

pawn Код:
// no seu sistema de registro, na parte em que ele se registra no server, ou depois dele logar no server..

scoreplayer(playerid,1); // no teu caso, vc pode por isso logo depois da verificaзгo da senha.

// no OnPlayerDisconect

scoreplayer(playerid,2);

// no final do gm.
stock scoreplayer(playerid,op) // uso:  scoreplayer(playerid,1); quando player logar, scoreplayer(playerid,2); quando sair...
{
    new arq[50],SpName[24];
    GetPlayerName(playerid,SpName,sizeof SpName);
    format(arq,sizeof arq, "Score-%s.ini",SpName);
   
    switch(op)
    {
        case 1:
        {
            if(!fexist(arq)) // primeira vez q entrar no sv..
            {
                dini_Create(arq);
                dini_IntSet(arq, "Score",1);
                SetPlayerScore(playerid, 1);
            }
            else SetPlayerScore(playerid, dini_Int(arq, "Score"));
        }
        case 2: // quando sair do  sv..
        {
            if(fexist(arq)) dini_IntSet(arq, "Score",GetPlayerScore(playerid));
        }
    }
}
isso faz o sv criar um arquivo com a score do player, e ao logar ele carrega a score, e ao desconectar salva a score.
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)