Portal SAMP
[Ajuda] Salvamento de grana em dini - 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] Salvamento de grana em dini (/showthread.php?tid=3473)



Salvamento de grana em dini - Vitorhbzin - 26/03/2023

por favor


RE: Salvamento de grana em dini - White_Blue - 26/03/2023

Não use Dini amigo, é algo ultrapassado. Mude para DOF2 ou MySQL.

Se você sabe Dini, será fácil aprender DOF2, pois é a mesma lógica, só muda a sintaxe e DOF2 é muito superior e muito mais rápido.


Enfim, caso você queira continuar com Dini o que não é recomendado para um servidor atual, aqui vai um exemplo de salvamento de grana em Dini que talvez te dê uma luz:

Código PHP:
new File[128];
new 
Moneyp[MAX_PLAYERS];

#define Contas "/Contas/%s" // Crie essa pasta na pasta scriptfiles do seu servidor.

stock SaveFiles(playerid) { // Função que salva o dinheiro que o jogador contém
    
format(Filesizeof(File), ContasGetPlayerNameEx(playerid));
    
dini_IntSet(File"Money"GetPlayerMoney(playerid));
    return 
1;
}

stock LoadFiles(playerid) { // Função que carrega a quantia de dinheiro do jogador
    
format(Filesizeof(File), ContasGetPlayerNameEx(playerid));
    
Moneyp[playerid] = dini_Int(File"Money");
    return 
1;
}

public 
OnPlayerDisconnect(playeridreason) {
    
SaveFiles(playerid);
    return 
1;
}

public 
OnPlayerConnect(playerid) {
     
LoadFiles(playerid);
     return 
1;
}

public 
OnPlayerSpawn(playerid) {
            
GivePlayerMoney(playeridMoneyp);
            return 
1;
}

stock GetPlayerNameEx(playerid) { // Recomendo sempre ter essa função em seu gamemode.
    
static Name[MAX_PLAYER_NAME]; // Define a variável onde o nome do jogador será armazenado.
    
GetPlayerName(playeridNameMAX_PLAYER_NAME); // Pega o nome do jogador e armazena na variável 'Name'.
    
return Name// Retorna o nome do jogador.




RE: Salvamento de grana em dini - Vitorhbzin - 09/05/2023

mano assim eu sei cria salvamento dini e dof2 qual a melhor das duas?


RE: Salvamento de grana em dini - pushline - 09/05/2023

DOF2 é mais "atualizado" e têm uma performance melhor, mas é melhor usar MySQL, por ser extremamente mais rápido


RE: Salvamento de grana em dini - White_Blue - 09/05/2023

(09/05/2023 13:29)pushline Escreveu: DOF2 é mais "atualizado" e têm uma performance melhor, mas é melhor usar MySQL, por ser extremamente mais rápido

É um equivoco pensar que o MySQL é mais rápido que DOF2(Como citado aqui). Lógico, MySQL é muito mais avançado que DOF2, DOF2 tem suas limitações mas antes devemos considerar o seguinte, DOF2 faz a gravação dos dados direto no disco rígido enquanto o MySQL antes faz o contato com o banco de dados, se autentica e posteriormente realiza as consultas. E sim, MySQL tem vantagens sobre o DOF2 pelo fato de ser uma tecnologia mais avançada e também permitir integração com sites, automações e etc.. Mas ainda assim não é mais "rápido" do que MySQL em minha opinião.

E outra coisa que devemos considerar que vai de pessoa para pessoa: É necessário o uso de MySQL para o projeto? Por que se for um projeto pequeno, não é necessário o uso de MySQL, temos que lembrar que MySQL é difícil de aprender e não é para novatos ainda mais no Pawn. De qualquer modo, isso é uma decisão do desenvolvedor se é necessário ou não.

Fora isso, como a pergunta do Vitorhbzin é sobre se é melhor usar DOF2 ou Dini, a resposta é obviamente usar DOF2 pelo fato de ser mais avançado que Dini(Que foi descontinuado há muito tempo) o DOF2 é meio que uma "evolução" do Dini, a mesma lógica só que executada de forma melhor e mais eficaz. A questão é que se você sabe Dini automaticamente você sabe DOF2 e é melhor usar DOF2, a lógica permanece a mesma a única coisa que muda para você é a sintaxe praticamente.


RE: Salvamento de grana em dini - pushline - 10/05/2023

(09/05/2023 13:56)White_Blue Escreveu:
(09/05/2023 13:29)pushline Escreveu: DOF2 é mais "atualizado" e têm uma performance melhor, mas é melhor usar MySQL, por ser extremamente mais rápido

É um equivoco pensar que o MySQL é mais rápido que DOF2(Como citado aqui). Lógico, MySQL é muito mais avançado que DOF2, DOF2 tem suas limitações mas antes devemos considerar o seguinte, DOF2 faz a gravação dos dados direto no disco rígido enquanto o MySQL antes faz o contato com o banco de dados, se autentica e posteriormente realiza as consultas. E sim, MySQL tem vantagens sobre o DOF2 pelo fato de ser uma tecnologia mais avançada e também permitir integração com sites, automações e etc.. Mas ainda assim não é mais "rápido" do que MySQL em minha opinião.

E outra coisa que devemos considerar que vai de pessoa para pessoa: É necessário o uso de MySQL para o projeto? Por que se for um projeto pequeno, não é necessário o uso de MySQL, temos que lembrar que MySQL é difícil de aprender e não é para novatos ainda mais no Pawn. De qualquer modo, isso é uma decisão do desenvolvedor se é necessário ou não.

Fora isso, como a pergunta do Vitorhbzin é sobre se é melhor usar DOF2 ou Dini, a resposta é obviamente usar DOF2 pelo fato de ser mais avançado que Dini(Que foi descontinuado há muito tempo) o DOF2 é meio que uma "evolução" do Dini, a mesma lógica só que executada de forma melhor e mais eficaz. A questão é que se você sabe Dini automaticamente você sabe DOF2 e é melhor usar DOF2, a lógica permanece a mesma a única coisa que muda para você é a sintaxe praticamente.

Dependendo da situação o MySQL é mais rápido. Digamos uma situação aonde você tem mil arquivos de DOF2 e MySQL, e você quer só retornar o dinheiro de um específico jogador, procurando pelo username dele. O MySQL vai fazer a query bem mais rápida que um DOF2, por que ele teria que procurar arquivo por arquivo.

Mas é como você disse, depende do que vai ser usado.