[Ajuda] Bug Sistema Salvamento
#8

pawn Код:
stock CarregarConta(playerid)
{
    new Contas[41], Nome[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Nome, 25);
    format(Contas, 41, "Jogadores/%s.ini", Nome);
    if(DOF2_FileExists(Contas))
    {
        Informacoes[playerid][Gps] = DOF2_GetInt(Contas, "Gps");
        Informacoes[playerid][Skin] = DOF2_GetInt(Contas, "Skin");
        Informacoes[playerid][Sexo] = DOF2_GetInt(Contas, "Sexo");
        Informacoes[playerid][Level] = DOF2_GetInt(Contas, "Level");
        Informacoes[playerid][Lider] = DOF2_GetInt(Contas, "Lider");
        GivePlayerMoney(playerid, DOF2_GetInt(Contas, "Grana"));
        Informacoes[playerid][Membro] = DOF2_GetInt(Contas, "Membro");
        Informacoes[playerid][Moderador] = DOF2_GetInt(Contas, "Moderador");
    }
    return 1;
}
Salvar Ficheiro:

pawn Код:
stock SalvarConta(playerid)
{
    new Contas[41], Nome[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Nome, 25); // pra que 32? se o nome mбximo й 24 e + 1 pra o fechamento?
    format(Contas, 41, "Jogadores/%s.ini", Nome);
    if(DOF2_FileExists(Contas))
    {
        Informacoes[playerid][Skin] = GetPlayerSkin(playerid);
        DOF2_SetInt(Contas, "Gps", Informacoes[playerid][Sexo]);
        DOF2_SetInt(Contas, "Skin", Informacoes[playerid][Skin]);
        DOF2_SetInt(Contas, "Sexo", Informacoes[playerid][Sexo]);
        DOF2_SetInt(Contas, "Level", Informacoes[playerid][Skin]);
        DOF2_SetInt(Contas, "Senha", Informacoes[playerid][Senha]);
        DOF2_SetInt(Contas, "Grana", Informacoes[playerid][Grana]);
        DOF2_SetInt(Contas, "Lider", Informacoes[playerid][Lider]);
        DOF2_SetInt(Contas, "Membro", Informacoes[playerid][Membro]);
        DOF2_SetInt(Contas, "Moderador", Informacoes[playerid][Moderador]);
        DOF2_SaveFile();
    }
    return 1;
}
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new Contas[41], Nome[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Nome, sizeof(Nome));
    format(Contas, sizeof(Contas),"Jogadores/%s.ini",Nome);
//Login
    if(dialogid == 1)
    {
        if(response == 0)
        {
            SendClientMessage(playerid,-1,"Sistema: Vocк foi kickado por cancelar o login!");
            Kick(playerid);
        }
        if(!strlen(inputtext)) // strlen й usado para medir o tamanho da string, caso ele nгo tenha digitado nada, irб executar isto abaixo.
        {
            ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "Logando...","Vocк digitou uma senha invalida\nDigite uma senha valida abaixo","Logar","Cancelar");
        }
        else // caso ele tenha digitado alguma coisa, vai medir o tamanho da string da pasta contas com a que ele digitou, se medir o mesmo tamanho ele logar, isto й errado.
        {
            Informacoes[playerid][Senha] = DOF2_GetInt(Contas, "Senha");
            if(strlen(inputtext) == Informacoes[playerid][Senha])
            {
                CarregarConta(playerid);
                SpawnPlayer(playerid);
            }
        }
    }
//Registro
    if(dialogid == 2)
    {
        if(response == 0)
        {
            SendClientMessage(playerid,-1,"Sistema: Vocк foi kickado por cancelar o login!");
            Kick(playerid);
        }
        if(!strlen(inputtext))
        {
            ShowPlayerDialog(playerid, 2, DIALOG_STYLE_PASSWORD, "Registrando...","Vocк digitou uma senha invalida\nDigite uma senha valida abaixo","Registrar","Cancelar");
        }
        else // se fez a mesma coisa aqui....se a senha tiver o mesmo tamanho mesmo que nгo seja iguais, vocк vai substituir a senha que tem o mesmo tamanho pela velha que tem o mesmo tamanho.
        {
            Informacoes[playerid][Senha] = strlen(inputtext);
            DOF2_CreateFile(Contas);
            DOF2_SetString(Contas, "Senha", Informacoes[playerid][Senha]);
            DOF2_SaveFile();
            GivePlayerMoney(playerid, 1000);
            SetPlayerVirtualWorld(playerid, 1);
            SetPlayerPos(playerid, 1643.0941,-2262.9111,13.4867);
            SetPlayerCameraPos(playerid, 1643.0941,-2262.9111,13.4867);
            SetPlayerCameraLookAt(playerid, 1643.2544,-2249.0349,13.3228);
            ShowPlayerDialog(playerid,3,DIALOG_STYLE_MSGBOX,"{FFFFFF}Escolha seu Sexo","{FFFF00}Vocк й Homem ou Mulher?","Homem","Mulher");
         }
    }
Eu apenas apontei os erros que fizeste, cabe a vocк conserta-los, sobre as senhas o correto й compara-las e nгo medi-las, entгo deves usar strcmp.

Sobre as stock's, aparentemente estгo corretas pois adicionei + 1 cell para ficar correto, Apenas vi estes erros mas podem haver mais pois hoje estou um pouco desatento.
Reply


Messages In This Thread
Bug Sistema Salvamento - by Brazuca[]s - 24.07.2012, 17:22
Re: Bug Sistema Salvamento - by Hardware - 24.07.2012, 17:28
Re: Bug Sistema Salvamento - by Brazuca[]s - 24.07.2012, 17:30
Re: Bug Sistema Salvamento - by Math3us - 24.07.2012, 17:34
Re: Bug Sistema Salvamento - by Brazuca[]s - 24.07.2012, 17:38
Re: Bug Sistema Salvamento - by Hardware - 24.07.2012, 17:38
Re: Bug Sistema Salvamento - by Brazuca[]s - 24.07.2012, 17:44
Re: Bug Sistema Salvamento - by leonardo1434 - 24.07.2012, 17:48
Re: Bug Sistema Salvamento - by Brazuca[]s - 24.07.2012, 18:13
Re: Bug Sistema Salvamento - by Brazuca[]s - 24.07.2012, 19:03

Forum Jump:


Users browsing this thread: 1 Guest(s)