SA-MP Forums Archive
[Ajuda] DOF2 Salvamento de arquivo - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] DOF2 Salvamento de arquivo (/showthread.php?tid=661628)



DOF2 Salvamento de arquivo - zHellSync - 09.12.2018

Olб, sou bem leigo em programaзгo mas resolvi me aprofundar e criar um servidor apenas para praticar.

De forma mais direta.. preciso de ajuda com a include DOF2 pois quero aprender usar ela para armazenar dados das contas que jogarem no meu servidor, a proposito a DOF2 й exatamente pra isso porйm eu queria pedir a alguйm que se possнvel mandar uma GM limpa utilizando esta include para salvar contas apуs usar o comando /registrar eu sei que existe cуdigos pronto no fуrum com isso porem todos sгo utilizados Diбlogos e eu nгo quero em Dialogo pois quero entender o funcionamento dela a partir do bбsico sem ter que agora ter que procurar entender sobre Diбlogos...

[Edit]
de preferencia utilizando ZCMD
Agradeзo dкs de jб!


Re: DOF2 Salvamento de arquivo - ipsLuan - 09.12.2018

O que vocк quer?

https://sampforum.blast.hk/showthread.php?tid=422519


Re: DOF2 Salvamento de arquivo - zHellSync - 09.12.2018

Quote:
Originally Posted by ipsLuan
Посмотреть сообщение
Estava observando este tуpico.. porem ele nгo ensina como e quando utilizar o cуdigo da DOF2 para salvar e criar o arquivo apуs setar as strings, bool.. etc.. apуs fazer seguindo estes conceitos, de forma que eu entendi, o servidor parava de funcionar e a pasta contas nгo criava, muito menos o arquivo


Re: DOF2 Salvamento de arquivo - zHellSync - 09.12.2018

meu ta assim.. e mesmo ao mandar o comando registrar ele encerra o servidor e diz que caiu a conexгo

PHP код:
//topo
#define pContas "contas/%s.ini"
//------------------------COMANDO PARA REGISTRAR--------------------------------
CMD:registrar(playerid, params[])
{
    new 
str_psenha[22], str_pnome[MAX_PLAYER_NAME], str_format[128];
    if(
sscanf(params, "s", str_psenha)) return SendClientMessage(playerid, Cor_Vermelha, "| ERRO | Para registrar vocк precisa digitar: /registrar [Senha]");
    
GetPlayerName(playerid, str_pnome, sizeof(str_pnome));
    
format(str_format, sizeof(str_format), pContas, str_pnome);
    if(
DOF2_FileExists(pContas))
    {
        
SendClientMessage(playerid, Cor_Vermelha, "| ERRO | Vocк jб estб cadastrado. faзa login usando: /Login [Senha]");
    }
    else
    {
        
DOF2_CreateFile(str_format);
    }
    return 
1;
} 



Re: DOF2 Salvamento de arquivo - ipsLuan - 09.12.2018

Quote:
Originally Posted by zHellSync
Посмотреть сообщение
Estava observando este tуpico.. porem ele nгo ensina como e quando utilizar o cуdigo da DOF2 para salvar e criar o arquivo apуs setar as strings, bool.. etc.. apуs fazer seguindo estes conceitos, de forma que eu entendi, o servidor parava de funcionar e a pasta contas nгo criava, muito menos o arquivo
Quando utilizar DOF2? Em salvamentos de dados.
Sinto muito em lhe informar, mas DOF2 cria arquivos, nгo pastas.

PHP код:
//Criando arquivos
new arquivo[50], nomeJogador[24];
GetPlayerName(playerid, nomeJogador. sizeof(nomeJogador)); //pegamos o nome do jogador
format(arquivo, sizeof(arquivo), "Contas/%s.ini", nomeJogador); //formatamos o arquivo
DOF2_CreateFile(arquivo); //criamos o arquivo ipsLuan.ini
//Verificando arquivos
new arquivo[50], nomeJogador[24];
GetPlayerName(playerid, nomeJogador. sizeof(nomeJogador)); //pegamos o nome do jogador
format(arquivo, sizeof(arquivo), "Contas/%s.ini", nomeJogador); //formatamos o arquivo
if(!DOF2_FileExists(arquivo) DOF2_CreateFile(arquivo); //se nгo tiver o arquivo criado, criamos o arquivo ipsLuan.ini
//Salvando a senha do jogador
new arquivo[50], nomeJogador[24];
GetPlayerName(playerid, nomeJogador, sizeof(nomeJogador)); //pegamos o nome do jogador
format(arquivo, sizeof(arquivo), "Contas/%s.ini", nomeJogador); //formatamos o arquivo
if(!DOF2_FileExists(arquivo) DOF2_CreateFile(arquivo); //se nгo tiver o arquivo criado, criamos o arquivo ipsLuan.ini
DOF2_SetString(arquivo, "Password", Player[playerid][Pass]); //setamos a string contida em Pass com a tag Password
DOF2_SaveFile(); //salvamos o arquivo
//Obtendo a senha do jogador
new arquivo[50], nomeJogador[24];
GetPlayerName(playerid, nomeJogador, sizeof(nomeJogador)); //pegamos o nome do jogador
format(arquivo, sizeof(arquivo), "Contas/%s.ini", nomeJogador); //formatamos o arquivo
new senhaJogador[50];
format(senhaJogador, sizeof(senhaJogador), "%s", DOF2_GetString(arquivo, "Password"));
printf("A senha do jogador й %s", senhaJogador); 


Quote:
Originally Posted by zHellSync
Посмотреть сообщение
meu ta assim.. e mesmo ao mandar o comando registrar ele encerra o servidor e diz que caiu a conexгo

PHP код:
//topo
#define pContas "contas/%s.ini"
//------------------------COMANDO PARA REGISTRAR--------------------------------
CMD:registrar(playerid, params[])
{
    new 
str_psenha[22], str_pnome[MAX_PLAYER_NAME], str_format[128];
    if(
sscanf(params, "s", str_psenha)) return SendClientMessage(playerid, Cor_Vermelha, "| ERRO | Para registrar vocк precisa digitar: /registrar [Senha]");
    
GetPlayerName(playerid, str_pnome, sizeof(str_pnome));
    
format(str_format, sizeof(str_format), pContas, str_pnome);
    if(
DOF2_FileExists(pContas))
    {
        
SendClientMessage(playerid, Cor_Vermelha, "| ERRO | Vocк jб estб cadastrado. faзa login usando: /Login [Senha]");
    }
    else
    {
        
DOF2_CreateFile(str_format);
    }
    return 
1;
} 
Provavelmente a pasta nгo foi criada.


Re: DOF2 Salvamento de arquivo - zHellSync - 09.12.2018

Quote:
Originally Posted by ipsLuan
Посмотреть сообщение
Quando utilizar DOF2? Em salvamentos de dados.
Sinto muito em lhe informar, mas DOF2 cria arquivos, nгo pastas.

PHP код:
//Criando arquivos
new arquivo[50], nomeJogador[24];
GetPlayerName(playerid, nomeJogador. sizeof(nomeJogador)); //pegamos o nome do jogador
format(arquivo, sizeof(arquivo), "Contas/%s.ini", nomeJogador); //formatamos o arquivo
DOF2_CreateFile(arquivo); //criamos o arquivo ipsLuan.ini
//Verificando arquivos
new arquivo[50], nomeJogador[24];
GetPlayerName(playerid, nomeJogador. sizeof(nomeJogador)); //pegamos o nome do jogador
format(arquivo, sizeof(arquivo), "Contas/%s.ini", nomeJogador); //formatamos o arquivo
if(!DOF2_FileExists(arquivo) DOF2_CreateFile(arquivo); //se nгo tiver o arquivo criado, criamos o arquivo ipsLuan.ini
//Salvando a senha do jogador
new arquivo[50], nomeJogador[24];
GetPlayerName(playerid, nomeJogador, sizeof(nomeJogador)); //pegamos o nome do jogador
format(arquivo, sizeof(arquivo), "Contas/%s.ini", nomeJogador); //formatamos o arquivo
if(!DOF2_FileExists(arquivo) DOF2_CreateFile(arquivo); //se nгo tiver o arquivo criado, criamos o arquivo ipsLuan.ini
DOF2_SetString(arquivo, "Password", Player[playerid][Pass]); //setamos a string contida em Pass com a tag Password
DOF2_SaveFile(); //salvamos o arquivo
//Obtendo a senha do jogador
new arquivo[50], nomeJogador[24];
GetPlayerName(playerid, nomeJogador, sizeof(nomeJogador)); //pegamos o nome do jogador
format(arquivo, sizeof(arquivo), "Contas/%s.ini", nomeJogador); //formatamos o arquivo
new senhaJogador[50];
format(senhaJogador, sizeof(senhaJogador), "%s", DOF2_GetString(arquivo, "Password"));
printf("A senha do jogador й %s", senhaJogador); 




Provavelmente a pasta nгo foi criada.
obrigado amigo, deu certo apуs eu criar a pasta, vocк sabe qual include pode ser utilizada para criar uma pasta?


Re: DOF2 Salvamento de arquivo - ipsLuan - 09.12.2018

Quote:
Originally Posted by zHellSync
Посмотреть сообщение
obrigado amigo, deu certo apуs eu criar a pasta, vocк sabe qual include pode ser utilizada para criar uma pasta?
Use o plugin FileManager.
https://sampforum.blast.hk/showthread.php?tid=92246


Re: DOF2 Salvamento de arquivo - zHellSync - 09.12.2018

Quote:
Originally Posted by ipsLuan
Посмотреть сообщение
Quando utilizar DOF2? Em salvamentos de dados.
Sinto muito em lhe informar, mas DOF2 cria arquivos, nгo pastas.

PHP код:
//Criando arquivos
new arquivo[50], nomeJogador[24];
GetPlayerName(playerid, nomeJogador. sizeof(nomeJogador)); //pegamos o nome do jogador
format(arquivo, sizeof(arquivo), "Contas/%s.ini", nomeJogador); //formatamos o arquivo
DOF2_CreateFile(arquivo); //criamos o arquivo ipsLuan.ini
//Verificando arquivos
new arquivo[50], nomeJogador[24];
GetPlayerName(playerid, nomeJogador. sizeof(nomeJogador)); //pegamos o nome do jogador
format(arquivo, sizeof(arquivo), "Contas/%s.ini", nomeJogador); //formatamos o arquivo
if(!DOF2_FileExists(arquivo) DOF2_CreateFile(arquivo); //se nгo tiver o arquivo criado, criamos o arquivo ipsLuan.ini
//Salvando a senha do jogador
new arquivo[50], nomeJogador[24];
GetPlayerName(playerid, nomeJogador, sizeof(nomeJogador)); //pegamos o nome do jogador
format(arquivo, sizeof(arquivo), "Contas/%s.ini", nomeJogador); //formatamos o arquivo
if(!DOF2_FileExists(arquivo) DOF2_CreateFile(arquivo); //se nгo tiver o arquivo criado, criamos o arquivo ipsLuan.ini
DOF2_SetString(arquivo, "Password", Player[playerid][Pass]); //setamos a string contida em Pass com a tag Password
DOF2_SaveFile(); //salvamos o arquivo
//Obtendo a senha do jogador
new arquivo[50], nomeJogador[24];
GetPlayerName(playerid, nomeJogador, sizeof(nomeJogador)); //pegamos o nome do jogador
format(arquivo, sizeof(arquivo), "Contas/%s.ini", nomeJogador); //formatamos o arquivo
new senhaJogador[50];
format(senhaJogador, sizeof(senhaJogador), "%s", DOF2_GetString(arquivo, "Password"));
printf("A senha do jogador й %s", senhaJogador); 




Provavelmente a pasta nгo foi criada.
Pra nгo ser necessбrio criar um novo tуpico irei perguntar aqui mesmo, atй porque se refere ao mesmo assunto..

eu fiz desta forma:

PHP код:
//topo da GM
#define pContas "contas/%s.ini"
//------------------------COMANDO PARA REGISTRAR--------------------------------
CMD:registrar(playerid, params[])
{
    new 
str_psenha[22], str_pnome[MAX_PLAYER_NAME], str_format[128];
    if(
sscanf(params, "s[22]", str_psenha)) return SendClientMessage(playerid, Cor_Vermelha, "| ERRO | Para registrar vocк precisa digitar: /registrar [Senha]");
    
GetPlayerName(playerid, str_pnome, sizeof(str_pnome));
    
format(str_format, sizeof(str_format), pContas, str_pnome);
    if(!
DOF2_FileExists(str_format)) DOF2_CreateFile(str_format);
    
DOF2_SetString(pContas, "Senha", str_psenha);
    
DOF2_SetString(pContas, "Email", "Nenhum");
    
DOF2_SetBool(pContas, "Vip", false);
    
DOF2_SetInt(pContas, "DiasVip", 0);
    
DOF2_SetInt(pContas, "HorasVip", 0);
    
DOF2_SetInt(pContas, "MinutosVip", 0);
    
DOF2_SetInt(pContas, "SegundosVip", 0);
    
DOF2_SetBool(pContas, "Admin", false);
    
DOF2_SetInt(pContas, "AdminLevel", 0);
    
DOF2_SaveFile();
    return 
1;
} 
ele cria o arquivo na pasta contas, porйm nгo seta essa parte das strings.. o que pode ta acontecendo?


Re: DOF2 Salvamento de arquivo - ipsLuan - 09.12.2018

Vocк deve alterar para strformat no DOF2 ao invйs de pConta.


Re: DOF2 Salvamento de arquivo - MultiKill - 09.12.2018

Quote:
Originally Posted by zHellSync
Посмотреть сообщение
Pra nгo ser necessбrio criar um novo tуpico irei perguntar aqui mesmo, atй porque se refere ao mesmo assunto..

eu fiz desta forma:

PHP код:
//topo da GM
#define pContas "contas/%s.ini"
//------------------------COMANDO PARA REGISTRAR--------------------------------
CMD:registrar(playerid, params[])
{
    new 
str_psenha[22], str_pnome[MAX_PLAYER_NAME], str_format[128];
    if(
sscanf(params, "s[22]", str_psenha)) return SendClientMessage(playerid, Cor_Vermelha, "| ERRO | Para registrar vocк precisa digitar: /registrar [Senha]");
    
GetPlayerName(playerid, str_pnome, sizeof(str_pnome));
    
format(str_format, sizeof(str_format), pContas, str_pnome);
    if(!
DOF2_FileExists(str_format)) DOF2_CreateFile(str_format);
    
DOF2_SetString(pContas, "Senha", str_psenha);
    
DOF2_SetString(pContas, "Email", "Nenhum");
    
DOF2_SetBool(pContas, "Vip", false);
    
DOF2_SetInt(pContas, "DiasVip", 0);
    
DOF2_SetInt(pContas, "HorasVip", 0);
    
DOF2_SetInt(pContas, "MinutosVip", 0);
    
DOF2_SetInt(pContas, "SegundosVip", 0);
    
DOF2_SetBool(pContas, "Admin", false);
    
DOF2_SetInt(pContas, "AdminLevel", 0);
    
DOF2_SaveFile();
    return 
1;
} 
ele cria o arquivo na pasta contas, porйm nгo seta essa parte das strings.. o que pode ta acontecendo?
Vocк esta passando a constante pContas em vez da string str_format na hora de setar um dos dados, o que ocorre de tentar salvar em um arquivo que nгo existe.

Basta mudar para:
PHP код:
DOF2_SetString(str_format, "Senha", str_psenha);