[Ajuda] Problema com Sistema de Registro
#1

Bom pessoal, eu tenho um sistema de registro usando #include Dini

Quando um usuбrio se registra no meu server . O Correto й comeзar com 0 de Score e 0 de Dinheiro. Mas й diferente. Dependendo da senha que o cara coloca, ele estб automaticamente ganhando score diferente, e nivel de admin diferente. Se o score dele aumentar ou diminuir, a senha muda, o nivel do admin muda, e etc...

Queria saber como fazer pra nгo sofrer essas modificaзхes no arquivo, como por exemplo, se eu setar score em um player, eu nгo quero que o resto do conteъdo do arquivo se modifique

O Arquivo do player й bem simples, consiste nisso:

Key=(Senha) Dinheiro=0 Score=160 Admin=103

As callbacks que mexe no arquivo do usuбrio sгo essas:

pawn Код:
public OnPlayerRegister(playerid, password[])
{
    if(IsPlayerConnected(playerid))
    {
            new string3[64];
            new playername3[MAX_PLAYER_NAME];
            GetPlayerName(playerid, playername3, sizeof(playername3));
            format(string3, sizeof(string3), "Contas/%s.ini", playername3);
            new File: hFile = fopen(string3, io_write);
            if (hFile)
            {
                strmid(PlayerInfo[playerid][pSenha], password, 0, strlen(password), 255);
                new var[32];
                format(var, 32, "Senha=%s\n", PlayerInfo[playerid][pSenha]);fwrite(hFile, var);
                PlayerInfo[playerid][pDinheiro] = GetPlayerMoney(playerid);
                format(var, 32, "Dinheiro=%d\n",PlayerInfo[playerid][pDinheiro]);fwrite(hFile, var);
                format(var, 32, "Score=%d\n",PlayerInfo[playerid][pScore]);fwrite(hFile, var);
                format(var, 32, "Admin=%d\n",PlayerInfo[playerid][pAdmin]);fwrite(hFile, var);
                fclose(hFile);
            }
            SendClientMessage(playerid, 0x33FF00FF, "Vocк agora pode digitar /logar <senha>");
            ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD,""BRANCO"Logar",""BRANCO"Digite sua senha abaixo para efetuar login.","Logar","Quit");
    }
    return 1;
}
pawn Код:
public OnPlayerLogin(playerid,password[])
{
    new string2[64];
    format(string2, sizeof(string2), "Contas/%s.ini", PlayerName(playerid));
    strmid(PlayerInfo[playerid][pSenha], dini_Get(string2, "Senha"), 0, strlen(dini_Get(string2, "Senha")), 255);
    new File: UserFile = fopen(string2, io_read);
    if (UserFile)
    {
        if(strcmp(PlayerInfo[playerid][pSenha],password, true ) == 0)
        {
                new key[ 256 ] , val[ 256 ];
                new Data[ 256 ];
                while (fread(UserFile, Data, sizeof(Data)))
                {
                    key = ini_GetKey( Data );
                    if( strcmp( key , "Dinheiro" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pDinheiro] = strval( val ); }
                    if( strcmp( key , "Score" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pScore] = strval( val ); }
                    if( strcmp( key , "Admin" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pAdmin] = strval( val ); }
                    gPlayerLogged[playerid] = 1;
                    SetPlayerScore(playerid, PlayerInfo[playerid][pScore]);
                }//end while
                fclose(UserFile);//close the file after everything has been read in the while
        }
        else
        {
        SendClientMessage(playerid, 0xFFFF00FF, "Senha errada!");
        ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_INPUT, ""BRANCO"Logar",""VERMELHO"Vocк digitou uma senha incorreta.\n"BRANCO"Digite sua senha abaixo para acessar.","Logar","Quit");
        fclose(UserFile);
        ClearChatbox(playerid, 100);
        ResetPlayerMoney(playerid);
        GivePlayerMoney(playerid,PlayerInfo[playerid][pDinheiro]);
        CurrentMoney[playerid] = PlayerInfo[playerid][pDinheiro];
        if(PlayerInfo[playerid][pAdmin] >= 1)
        {
            new AdminName[MAX_PLAYER_NAME];
            GetPlayerName(playerid, AdminName, sizeof(AdminName));
            format(string2, sizeof(string2), "~r~%s: ~g~ON", AdminName);
            for(new i=0; i<MAX_PLAYERS; i++)
            {
                if(IsPlayerConnected(i)) GameTextForPlayer(i, string2 , 5000, 1);
            }
        }
        }
    }
    return 1;
}
pawn Код:
public OnPlayerSave(playerid)
{
    if(IsPlayerConnected(playerid))
    {
        if(gPlayerLogged[playerid])
        {
            new string3[64];
            new playername3[MAX_PLAYER_NAME];
            GetPlayerName(playerid, playername3, sizeof(playername3));
            format(string3, sizeof(string3), "Contas/%s.ini", playername3);
            new File: hFile = fopen(string3, io_write);
            if (hFile)
            {
                new var[32];
                format(var, 32, "Senha=%s\n", PlayerInfo[playerid][pSenha]);fwrite(hFile, var);
                PlayerInfo[playerid][pDinheiro] = GetPlayerMoney(playerid);
                format(var, 32, "Dinheiro=%d\n",PlayerInfo[playerid][pDinheiro]);fwrite(hFile, var);
                format(var, 32, "Score=%d\n",PlayerInfo[playerid][pScore]);fwrite(hFile, var);
                format(var, 32, "Admin=%d\n",PlayerInfo[playerid][pAdmin]);fwrite(hFile, var);
                fclose(hFile);
            }
        }
    }
    return 1;
}
Reply
#2

Tenta assim

pawn Код:
public OnPlayerRegister(playerid, password[])
{
    if(IsPlayerConnected(playerid))
    {
            new string3[64];
            new playername3[MAX_PLAYER_NAME];
            GetPlayerName(playerid, playername3, sizeof(playername3));
            format(string3, sizeof(string3), "Contas/%s.ini", playername3);
            new File: hFile = fopen(string3, io_write);
            if (hFile)
            {
                strmid(PlayerInfo[playerid][pSenha], password, 0, strlen(password), 255);
                new var[32];

                format(var, 32, "Senha=%s\n", PlayerInfo[playerid][pSenha]);fwrite(hFile, var);
                format(var, 32, "Dinheiro=0\n",fwrite(hFile, var);
                format(var, 32, "Score=0\n",fwrite(hFile, var);
                format(var, 32, "Admin=0\n",fwrite(hFile, var);
                fclose(hFile);
            }
            SendClientMessage(playerid, 0x33FF00FF, "Vocк agora pode digitar /logar <senha>");
            ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD,""BRANCO"Logar",""BRANCO"Digite sua senha abaixo para efetuar login.","Logar","Quit");
    }
    return 1;
}
Reply
#3

Porque nao usa DOF2?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)