SA-MP Forums Archive
[Ajuda] Problema com Salvamento de Contas. - 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] Problema com Salvamento de Contas. (/showthread.php?tid=658031)



Problema com Salvamento de Contas.[RESOLVIDO] - Poseidon4625 - 21.08.2018

Entгo pessoal estou tendo um problema com salvamento de contas pelo DOF2 jб faz algum tempo, vou dar um exemplo o Jogador Tal entrou no servidor e criou uma conta e logo apуs saiu, a conta dele foi salva corretamente na pasta das Contas criou o arquivo com os dados do player Tal tudo certinho e logo apуs de alguns segundos/minutos foi criado outro arquivo .ini com os dados do jogador que tinha criado a conta isso mesmo ele estando offline, alguйm sabe onde pode ser o problema se й por causa de variбveis que tem que ser zeradas ou algo do tipo??

Pois nгo vi nenhum erro em meu sistema, jб fiz diversos testes e nгo consegui encontrar o BUG, se alguйm poder ajudar agradeзo.

Como estб:


Se nгo for ajudar nгo comente.

@EDIT.

Resolvido pessoal, se o problema voltar eu aviso aqui no tуpico.
Resolvido, o Problema nгo voltou estava acontecendo porque eu tinha esquecido de por pra zerar as variбveis dos jogadores apуs o disconnect.


Re: Problema com Salvamento de Contas. - F1N4L - 21.08.2018

Manda a funзгo de salvamento.
Existe um timer que efetua o salvamento de tempos em tempos?


Re: Problema com Salvamento de Contas. - Poseidon4625 - 21.08.2018

Nгo tem timer, salva em tempo real, se um player comprar um MP3 jб salva na hora.

PHP код:
SavePlayer(playerid)
{
    if(
DOF2_FileExists(GetPlayerArquivo(playerid)))
    {
        
DOF2_CreateFile(GetPlayerArquivo(playerid));
        new 
grana;
        
grana GetPlayerGrana(playerid);
        
GetPlayerPos(playeridpPosX[playerid], pPosY[playerid], pPosZ[playerid]);
        
GetPlayerFacingAngle(playeridpPosA[playerid]);
        
PlayerInfo[playerid][pSkin] = GetPlayerSkin(playerid);
        
DOF2_SetInt(GetPlayerArquivo(playerid),"Level"PlayerInfo[playerid][pLevel]);
        
DOF2_SetInt(GetPlayerArquivo(playerid),"Dinheiro"grana);
        
DOF2_SetInt(GetPlayerArquivo(playerid),"Admin"pAdmin[playerid]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "Plano"PlayerInfo[playerid][pPlano]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "EXP"PlayerInfo[playerid][pExpe]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "Porte"PlayerInfo[playerid][pPorte]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "HabTrem"PlayerInfo[playerid][pTrem]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "HELG"PlayerInfo[playerid][pHELG]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "HEVG"PlayerInfo[playerid][pHEVG]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "HEAG"PlayerInfo[playerid][pHEAG]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "RelogioUP"PlayerInfo[playerid][pRelogioUP]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "MP3"PlayerInfo[playerid][pMP3]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "Oculos"PlayerInfo[playerid][pOculos]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "Gorro"PlayerInfo[playerid][pGorro]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "Motos"PlayerInfo[playerid][pMotos]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "Carros"PlayerInfo[playerid][pCarros]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "Caminhoes"PlayerInfo[playerid][pCaminhoes]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "Carretas"PlayerInfo[playerid][pCarretas]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "Onibus"PlayerInfo[playerid][pOnibus]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "Barcos"PlayerInfo[playerid][pBarcos]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "Avioes"PlayerInfo[playerid][pAvioes]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "Helicopteros"PlayerInfo[playerid][pHelicopeteros]);
        
DOF2_SetInt(GetPlayerArquivo(playerid),"Skin"PlayerInfo[playerid][pSkin]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "Profissao"PlayerInfo[playerid][pProfissao]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "Tutorial"PlayerInfo[playerid][pTutorial]);
         
DOF2_SetInt(GetPlayerArquivo(playerid), "RelogioUPM",PlayerInfo[playerid][pminUP]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "RelogioUPS",PlayerInfo[playerid][psegUP]);
        
DOF2_SetFloat(GetPlayerArquivo(playerid), "PosX"pPosX[playerid]);
        
DOF2_SetFloat(GetPlayerArquivo(playerid), "PosY"pPosY[playerid]);
        
DOF2_SetFloat(GetPlayerArquivo(playerid), "PosZ"pPosZ[playerid]);
        
DOF2_SetFloat(GetPlayerArquivo(playerid), "PosA"pPosA[playerid]);
        
DOF2_SetInt(GetPlayerArquivo(playerid),"FOME"GetPVarInt(playerid,"FOME"));
        
DOF2_SetInt(GetPlayerArquivo(playerid),"SEDE"GetPVarInt(playerid,"SEDE"));
        
DOF2_SetInt(GetPlayerArquivo(playerid),"SONO"GetPVarInt(playerid,"SONO"));
        
DOF2_SetInt(GetPlayerArquivo(playerid),"SAUDE"GetPVarInt(playerid,"SAUDE"));
        
DOF2_SaveFile();
    }
    return 
1;




Re: Problema com Salvamento de Contas. - F1N4L - 21.08.2018

Й muito estranho.
Nessa print um arquivo й criado 3 minutos depois.
Quando o jogador sai do servidor, o console indica que o jogador realmente saiu? Tem um delay entre a desconexгo do jogador e a informaзгo no console indicando que o mesmo se desconectou?

@edit

O arquivo criado posteriormente nгo possui nome?

@edit І

PHP код:
if(DOF2_FileExists(GetPlayerArquivo(playerid))) 
    { 
        
DOF2_CreateFile(GetPlayerArquivo(playerid)); 
Код:
Se (ArquivoExiste("Arquivo")) Entгo
Inicio
    CriarArquivo("Arquivo")
Fim
Reveja essa sua lуgica de salvamento...


Re: Problema com Salvamento de Contas. - Poseidon4625 - 21.08.2018

O arquivo que й criado nгo possui nome, e quando o jogador se desconecta aparece no console por isso achei bem estranho.


Re: Problema com Salvamento de Contas. - F1N4L - 21.08.2018

Quote:
Originally Posted by Poseidon4625
Посмотреть сообщение
O arquivo que й criado nгo possui nome, e quando o jogador se desconecta aparece no console por isso achei bem estranho.
Dб uma olhada no edit І.


Re: Problema com Salvamento de Contas. - humildadeforever - 21.08.2018

Quote:
Originally Posted by Poseidon4625
Посмотреть сообщение
Nгo tem timer, salva em tempo real, se um player comprar um MP3 jб salva na hora.

PHP код:
SavePlayer(playerid)
{
    if(
DOF2_FileExists(GetPlayerArquivo(playerid)))
    {
        
DOF2_CreateFile(GetPlayerArquivo(playerid));
        new 
grana;
        
grana GetPlayerGrana(playerid);
        
GetPlayerPos(playeridpPosX[playerid], pPosY[playerid], pPosZ[playerid]);
        
GetPlayerFacingAngle(playeridpPosA[playerid]);
        
PlayerInfo[playerid][pSkin] = GetPlayerSkin(playerid);
        
DOF2_SetInt(GetPlayerArquivo(playerid),"Level"PlayerInfo[playerid][pLevel]);
        
DOF2_SetInt(GetPlayerArquivo(playerid),"Dinheiro"grana);
        
DOF2_SetInt(GetPlayerArquivo(playerid),"Admin"pAdmin[playerid]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "Plano"PlayerInfo[playerid][pPlano]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "EXP"PlayerInfo[playerid][pExpe]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "Porte"PlayerInfo[playerid][pPorte]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "HabTrem"PlayerInfo[playerid][pTrem]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "HELG"PlayerInfo[playerid][pHELG]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "HEVG"PlayerInfo[playerid][pHEVG]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "HEAG"PlayerInfo[playerid][pHEAG]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "RelogioUP"PlayerInfo[playerid][pRelogioUP]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "MP3"PlayerInfo[playerid][pMP3]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "Oculos"PlayerInfo[playerid][pOculos]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "Gorro"PlayerInfo[playerid][pGorro]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "Motos"PlayerInfo[playerid][pMotos]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "Carros"PlayerInfo[playerid][pCarros]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "Caminhoes"PlayerInfo[playerid][pCaminhoes]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "Carretas"PlayerInfo[playerid][pCarretas]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "Onibus"PlayerInfo[playerid][pOnibus]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "Barcos"PlayerInfo[playerid][pBarcos]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "Avioes"PlayerInfo[playerid][pAvioes]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "Helicopteros"PlayerInfo[playerid][pHelicopeteros]);
        
DOF2_SetInt(GetPlayerArquivo(playerid),"Skin"PlayerInfo[playerid][pSkin]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "Profissao"PlayerInfo[playerid][pProfissao]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "Tutorial"PlayerInfo[playerid][pTutorial]);
         
DOF2_SetInt(GetPlayerArquivo(playerid), "RelogioUPM",PlayerInfo[playerid][pminUP]);
        
DOF2_SetInt(GetPlayerArquivo(playerid), "RelogioUPS",PlayerInfo[playerid][psegUP]);
        
DOF2_SetFloat(GetPlayerArquivo(playerid), "PosX"pPosX[playerid]);
        
DOF2_SetFloat(GetPlayerArquivo(playerid), "PosY"pPosY[playerid]);
        
DOF2_SetFloat(GetPlayerArquivo(playerid), "PosZ"pPosZ[playerid]);
        
DOF2_SetFloat(GetPlayerArquivo(playerid), "PosA"pPosA[playerid]);
        
DOF2_SetInt(GetPlayerArquivo(playerid),"FOME"GetPVarInt(playerid,"FOME"));
        
DOF2_SetInt(GetPlayerArquivo(playerid),"SEDE"GetPVarInt(playerid,"SEDE"));
        
DOF2_SetInt(GetPlayerArquivo(playerid),"SONO"GetPVarInt(playerid,"SONO"));
        
DOF2_SetInt(GetPlayerArquivo(playerid),"SAUDE"GetPVarInt(playerid,"SAUDE"));
        
DOF2_SaveFile();
    }
    return 
1;

Vocк verifica se o arquivo existe e, caso exista, cria o mesmo arquivo de novo. Deve ser esse o problema.
O arquivo deve ser criado no ato do registro apenas. Nгo toda vez que vai salvar o arquivo.

Remova
PHP код:
 DOF2_CreateFile(GetPlayerArquivo(playerid)); 
Do salvamento e coloque apenas no registro.


Re: Problema com Salvamento de Contas. - Poseidon4625 - 21.08.2018

Vlw pela ajuda pessoal, mais tarde irei fazer uns testes e aviso se deu certo.