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(playeridparams[])
{
    new 
str_psenha[22], str_pnome[MAX_PLAYER_NAME], str_format[128];
    if(
sscanf(params"s"str_psenha)) return SendClientMessage(playeridCor_Vermelha"| ERRO | Para registrar vocк precisa digitar: /registrar [Senha]");
    
GetPlayerName(playeridstr_pnomesizeof(str_pnome));
    
format(str_formatsizeof(str_format), pContasstr_pnome);
    if(
DOF2_FileExists(pContas))
    {
        
SendClientMessage(playeridCor_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(playeridnomeJogadorsizeof(nomeJogador)); //pegamos o nome do jogador
format(arquivosizeof(arquivo), "Contas/%s.ini"nomeJogador); //formatamos o arquivo
DOF2_CreateFile(arquivo); //criamos o arquivo ipsLuan.ini
//Verificando arquivos
new arquivo[50], nomeJogador[24];
GetPlayerName(playeridnomeJogadorsizeof(nomeJogador)); //pegamos o nome do jogador
format(arquivosizeof(arquivo), "Contas/%s.ini"nomeJogador); //formatamos o arquivo
if(!DOF2_FileExists(arquivoDOF2_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(playeridnomeJogadorsizeof(nomeJogador)); //pegamos o nome do jogador
format(arquivosizeof(arquivo), "Contas/%s.ini"nomeJogador); //formatamos o arquivo
if(!DOF2_FileExists(arquivoDOF2_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(playeridnomeJogadorsizeof(nomeJogador)); //pegamos o nome do jogador
format(arquivosizeof(arquivo), "Contas/%s.ini"nomeJogador); //formatamos o arquivo
new senhaJogador[50];
format(senhaJogadorsizeof(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(playeridparams[])
{
    new 
str_psenha[22], str_pnome[MAX_PLAYER_NAME], str_format[128];
    if(
sscanf(params"s"str_psenha)) return SendClientMessage(playeridCor_Vermelha"| ERRO | Para registrar vocк precisa digitar: /registrar [Senha]");
    
GetPlayerName(playeridstr_pnomesizeof(str_pnome));
    
format(str_formatsizeof(str_format), pContasstr_pnome);
    if(
DOF2_FileExists(pContas))
    {
        
SendClientMessage(playeridCor_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(playeridnomeJogadorsizeof(nomeJogador)); //pegamos o nome do jogador
format(arquivosizeof(arquivo), "Contas/%s.ini"nomeJogador); //formatamos o arquivo
DOF2_CreateFile(arquivo); //criamos o arquivo ipsLuan.ini
//Verificando arquivos
new arquivo[50], nomeJogador[24];
GetPlayerName(playeridnomeJogadorsizeof(nomeJogador)); //pegamos o nome do jogador
format(arquivosizeof(arquivo), "Contas/%s.ini"nomeJogador); //formatamos o arquivo
if(!DOF2_FileExists(arquivoDOF2_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(playeridnomeJogadorsizeof(nomeJogador)); //pegamos o nome do jogador
format(arquivosizeof(arquivo), "Contas/%s.ini"nomeJogador); //formatamos o arquivo
if(!DOF2_FileExists(arquivoDOF2_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(playeridnomeJogadorsizeof(nomeJogador)); //pegamos o nome do jogador
format(arquivosizeof(arquivo), "Contas/%s.ini"nomeJogador); //formatamos o arquivo
new senhaJogador[50];
format(senhaJogadorsizeof(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(playeridnomeJogadorsizeof(nomeJogador)); //pegamos o nome do jogador
format(arquivosizeof(arquivo), "Contas/%s.ini"nomeJogador); //formatamos o arquivo
DOF2_CreateFile(arquivo); //criamos o arquivo ipsLuan.ini
//Verificando arquivos
new arquivo[50], nomeJogador[24];
GetPlayerName(playeridnomeJogadorsizeof(nomeJogador)); //pegamos o nome do jogador
format(arquivosizeof(arquivo), "Contas/%s.ini"nomeJogador); //formatamos o arquivo
if(!DOF2_FileExists(arquivoDOF2_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(playeridnomeJogadorsizeof(nomeJogador)); //pegamos o nome do jogador
format(arquivosizeof(arquivo), "Contas/%s.ini"nomeJogador); //formatamos o arquivo
if(!DOF2_FileExists(arquivoDOF2_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(playeridnomeJogadorsizeof(nomeJogador)); //pegamos o nome do jogador
format(arquivosizeof(arquivo), "Contas/%s.ini"nomeJogador); //formatamos o arquivo
new senhaJogador[50];
format(senhaJogadorsizeof(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(playeridparams[])
{
    new 
str_psenha[22], str_pnome[MAX_PLAYER_NAME], str_format[128];
    if(
sscanf(params"s[22]"str_psenha)) return SendClientMessage(playeridCor_Vermelha"| ERRO | Para registrar vocк precisa digitar: /registrar [Senha]");
    
GetPlayerName(playeridstr_pnomesizeof(str_pnome));
    
format(str_formatsizeof(str_format), pContasstr_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(playeridparams[])
{
    new 
str_psenha[22], str_pnome[MAX_PLAYER_NAME], str_format[128];
    if(
sscanf(params"s[22]"str_psenha)) return SendClientMessage(playeridCor_Vermelha"| ERRO | Para registrar vocк precisa digitar: /registrar [Senha]");
    
GetPlayerName(playeridstr_pnomesizeof(str_pnome));
    
format(str_formatsizeof(str_format), pContasstr_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);