Portal SAMP
[Ajuda] Salvar Informaçoes - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Salvar Informaçoes (/showthread.php?tid=4885)



Salvar Informaçoes - LostZinqs - 23/09/2024

Bom dia, como posso salvar a grana do player e etc? 

exemplo...

Salvar a grana que o player tem na pasta Contas, junto com as informaçoes de login, minha tela de login salva o nome e a senha, eu queria poder salvar o dinheiro tbm no mesmo arquivo, como posso fazer isso? Uso DOF2...


RE: Salvar Informaçoes - xbruno1000x - 23/09/2024

Normalmente existe uma função que encapsula todos os salvamentos da conta, tipo uma função SavePlayer(playerid);

Dentro dessa função, basta você inserir salvamentos como:
Código:
//file deve ser o caminho onde o arquivo será salvo.
new file[128];
    format(file, sizeof(file), "players/%d.txt", playerid); // Define o caminho do arquivo. Normalmente usamos o nome do jogador, usei o playerid por exemplo.

    DOF2_SetInt(file, "Dinheiro", GetPlayerMoney(playerid)); //1° um caminho para o salvamento, 2° uma chave para obter o valor depois e 3° o valor inteiro.

Depois você pode inserir na função de carregar os dados da dof2 algo como:
Código:
new file[128];
format(file, sizeof(file), "players/%d.txt", playerid);

Player[playerid][Dinheiro] = DOF2_GetInt(file, "Dinheiro"); //O valor obtido no arquivo será atribuido a variável Player[playerid][Dinheiro].



RE: Salvar Informaçoes - LostZinqs - 23/09/2024

(23/09/2024 10:55)xbruno1000x Escreveu: Normalmente existe uma função que encapsula todos os salvamentos da conta, tipo uma função SavePlayer(playerid);

Dentro dessa função, basta você inserir salvamentos como:
Código:
//file deve ser o caminho onde o arquivo será salvo.
new file[128];
    format(file, sizeof(file), "players/%d.txt", playerid); // Define o caminho do arquivo. Normalmente usamos o nome do jogador, usei o playerid por exemplo.

    DOF2_SetInt(file, "Dinheiro", GetPlayerMoney(playerid)); //1° um caminho para o salvamento, 2° uma chave para obter o valor depois e 3° o valor inteiro.

Depois você pode inserir na função de carregar os dados da dof2 algo como:
Código:
new file[128];
format(file, sizeof(file), "players/%d.txt", playerid);

Player[playerid][Dinheiro] = DOF2_GetInt(file, "Dinheiro"); //O valor obtido no arquivo será atribuido a variável Player[playerid][Dinheiro].
https://imgur.com/a/eb0UQ6B

assim?


RE: Salvar Informaçoes - xbruno1000x - 23/09/2024

(23/09/2024 12:10)LostZinqs Escreveu: https://imgur.com/a/eb0UQ6B

assim?

É mais ou menos isso.
Caso você já tenha uma função de salvamento, o ideal é jogar dentro dela. Além disso, como falei, salvar o arquivo com o playerid seria apenas para o exemplo, na prática você deve usar o nome da conta.

A SalvarDados ficaria algo como:
Código:
public SalvarDados(playerid) {
    new file[128], playerName[24];

    GetPlayerName(playerid, playerName, sizeof(playerName));
    format(file, sizeof(file), "players/%s.txt", playerName);

    DOF2_SetInt(file, "Dinheiro", GetPlayerMoney(playerid));
    DOF2_SaveFile();
}

E a de carregar:
Código:
public CarregarDados(playerid) {
    new file[128], playerName[24];

    GetPlayerName(playerid, playerName, sizeof(playerName));
    format(file, sizeof(file), "players/%s.txt", playerName);

    Player[playerid][Dinheiro] = DOF2_GetInt(file, "Dinheiro");
}



RE: Salvar Informaçoes - LostZinqs - 23/09/2024

(23/09/2024 12:38)xbruno1000x Escreveu:
(23/09/2024 12:10)LostZinqs Escreveu: https://imgur.com/a/eb0UQ6B

assim?

É mais ou menos isso.
Caso você já tenha uma função de salvamento, o ideal é jogar dentro dela. Além disso, como falei, salvar o arquivo com o playerid seria apenas para o exemplo, na prática você deve usar o nome da conta.

A SalvarDados ficaria algo como:
Código:
public SalvarDados(playerid) {
    new file[128], playerName[24];

    GetPlayerName(playerid, playerName, sizeof(playerName));
    format(file, sizeof(file), "players/%s.txt", playerName);

    DOF2_SetInt(file, "Dinheiro", GetPlayerMoney(playerid));
    DOF2_SaveFile();
}

E a de carregar:
Código:
public CarregarDados(playerid) {
    new file[128], playerName[24];

    GetPlayerName(playerid, playerName, sizeof(playerName));
    format(file, sizeof(file), "players/%s.txt", playerName);

    Player[playerid][Dinheiro] = DOF2_GetInt(file, "Dinheiro");
}

so com isso ja esta sendo salvo o dinheiro? ou eu tenho que fazer algo, tipo botar alguam funçao pra quando o player sair ou ele logar


RE: Salvar Informaçoes - White_Blue - 23/09/2024

(23/09/2024 14:29)LostZinqs Escreveu:
(23/09/2024 12:38)xbruno1000x Escreveu:
(23/09/2024 12:10)LostZinqs Escreveu: https://imgur.com/a/eb0UQ6B

assim?

É mais ou menos isso.
Caso você já tenha uma função de salvamento, o ideal é jogar dentro dela. Além disso, como falei, salvar o arquivo com o playerid seria apenas para o exemplo, na prática você deve usar o nome da conta.

A SalvarDados ficaria algo como:
Código:
public SalvarDados(playerid) {
    new file[128], playerName[24];

    GetPlayerName(playerid, playerName, sizeof(playerName));
    format(file, sizeof(file), "players/%s.txt", playerName);

    DOF2_SetInt(file, "Dinheiro", GetPlayerMoney(playerid));
    DOF2_SaveFile();
}

E a de carregar:
Código:
public CarregarDados(playerid) {
    new file[128], playerName[24];

    GetPlayerName(playerid, playerName, sizeof(playerName));
    format(file, sizeof(file), "players/%s.txt", playerName);

    Player[playerid][Dinheiro] = DOF2_GetInt(file, "Dinheiro");
}

so com isso ja esta sendo salvo o dinheiro? ou eu tenho que fazer algo, tipo botar alguam funçao pra quando o player sair ou ele logar

Obviamente, é necessário chamar essas funções quando o jogador faz login e desconecta. Suponho que você tenha uma função para quando o jogador digita sua senha na tela de login e é spawnado, é nessa função que você deve carregar os dados do jogador e salvá-los quando ele desconectar na callback OnPlayerDisconnect.