[Ajuda] DOF2 Salvamento de arquivo
#1

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б!
Reply
#2

O que vocк quer?

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

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
Reply
#4

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;

Reply
#5

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.
Reply
#6

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?
Reply
#7

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
Reply
#8

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?
Reply
#9

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

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); 
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)