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



Salvamento de Conta - StrondaXxT - 09.08.2012

Seguinte fiz um sistema de Registrar e login blz, ai nгo tava conseguindo fazer um sistema bom de org se ser como o do GF entгo pesquisei e vi um tutorial bom e fiz ele sу que nгo ta salvando a org do jogador tipo convido o cara pra org ai se ele relogar ele sai da org..alguem poderia me dar uma luz ja to a um tempo tentando mais nada ta dando certo
Esse й o registrar e login
Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
       switch( dialogid )
       {
           case DIALOG_REGISTRO:
           {
                if (!response) return Kick(playerid);
                if (response)
                {
                      if(!strlen(inputtext))
	                  {
                            ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, ""BRANCO"Registrando...",""VERMELHO"Vocк digitou uma senha invбlida.\n"BRANCO"Digite sua senha abaixo para registrar uma nova conta.","Registrar","Cancelar");
                      }
                      if(INI_Open(ObterINI(playerid)))
		              {
                            INI_WriteString("Senha",inputtext);
                            INI_WriteInt("Score",1);
                            INI_WriteInt("Dinheiro",5000);
                            INI_WriteInt("Admin",0);
                            INI_Save();
                            INI_Close();
                            ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_INPUT,""BRANCO"Logar",""BRANCO"Digite sua senha abaixo para entrar.","Logar","Sair");
                      }
                }
           }
           case DIALOG_LOGAR:
           {
                if ( !response ) return Kick ( playerid );
                if( response )
                {
                      if(!strlen(inputtext))
				      {
                            ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_INPUT, ""BRANCO"Logar",""VERMELHO"Senha invalida.\n"BRANCO"Digite sua senha abaixo para entrar.","Logar","Sair");
			          }

                      if(INI_Open(ObterINI(playerid)))
				      {
                            INI_ReadString(PlayerInfo[playerid][pSenha],"Senha",20);

                            if(strcmp(inputtext,PlayerInfo[playerid][pSenha],false))
                            {
                                  ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_INPUT, ""BRANCO"Logar",""VERMELHO"Senha invalida.\n"BRANCO"Digite sua senha abaixo para entrar.","Logar","Sair");
				            }
                            SetPlayerScore( playerid, INI_ReadInt("Score" ) );
                            //ResetPlayerMoney( playerid );
                            
                            GivePlayerMoney( playerid, INI_ReadInt( "Dinheiro" ) );
                            PlayerInfo[playerid][pAdmin] = INI_ReadInt("Admin");
                            INI_Close();
				      }
                }
           }
      
public OnPlayerDisconnect(playerid, reason)
{
    if(INI_Open(ObterINI(playerid))) {

    INI_WriteInt("Score",PlayerInfo[playerid][pScore]);
    INI_WriteInt("Dinheiro",GetPlayerMoney(playerid));
    INI_WriteInt("Admin",PlayerInfo[playerid][pAdmin]);
    INI_Save();
    INI_Close();
    }
    
    return 1;
}
aqui seria o salvar org
Код:
public SalvarOrg(playerid)
{
    new arquivo[64], nome[MAX_PLAYER_NAME];
    GetPlayerName(playerid, nome, sizeof(nome));
    format(arquivo, 30, "contas\%s.ini", nome);
    if(!dini_Exists(arquivo))
    {
        dini_Create(arquivo);
    }
    if(JogadorInfo[playerid][Policia] > 0) dini_IntSet(arquivo, "Policia", JogadorInfo[playerid][Policia]);
    if(JogadorInfo[playerid][Canaa] > 0) dini_IntSet(arquivo, "Canaa", JogadorInfo[playerid][Canaa]);
    if(JogadorInfo[playerid][Planalto] > 0) dini_IntSet(arquivo, "Planalto", JogadorInfo[playerid][Planalto]);
    return 1;
}



Re: Salvamento de Conta - Rhayziin - 09.08.2012

^^ Tenta usar Dini ou Dof2


Re: Salvamento de Conta - Don_Speed - 09.08.2012

Conflito por causa de 2 salvamentos
1 Salva e outro nao!



Re: Salvamento de Conta - StrondaXxT - 09.08.2012

Quote:
Originally Posted by Don_Speed
Посмотреть сообщение
Conflito por causa de 2 salvamentos
1 Salva e outro nao!
Na mosca o primeiro esta salvando corretamente mais o segundo( que й das orgs nгo salva tentei por tudo no primeiro mais nгo deu.


Re: Salvamento de Conta - Don_Speed - 09.08.2012

Troca de dini_IntSet para INI_WriteInt .
Isso resolvera seu problema!



Re: Salvamento de Conta - BreakDriFT - 09.08.2012

Usa so uma include de salvamento mano.


Re: Salvamento de Conta - StrondaXxT - 09.08.2012

Fiz isso:
Quando o cara logar
Код:
case DIALOG_LOGAR:
           {
                if ( !response ) return Kick ( playerid );
                if( response )
                {
                      if(!strlen(inputtext))
				      {
                            ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_INPUT, ""BRANCO"Logar",""VERMELHO"Senha invalida.\n"BRANCO"Digite sua senha abaixo para entrar.","Logar","Sair");
			          }

                      if(INI_Open(ObterINI(playerid)))
				      {
                            INI_ReadString(PlayerInfo[playerid][pSenha],"Senha",20);

                            if(strcmp(inputtext,PlayerInfo[playerid][pSenha],false))
                            {
                                  ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_INPUT, ""BRANCO"Logar",""VERMELHO"Senha invalida.\n"BRANCO"Digite sua senha abaixo para entrar.","Logar","Sair");
				            }
                            SetPlayerScore( playerid, INI_ReadInt("Score" ) );
                            //ResetPlayerMoney( playerid );
                            
                            GivePlayerMoney( playerid, INI_ReadInt( "Dinheiro" ) );
                            PlayerInfo[playerid][pAdmin] = INI_ReadInt("Admin");
                            JogadorInfo[playerid][Policia] = INI_ReadInt("Policia");
                            JogadorInfo[playerid][Policia] = INI_ReadInt("Canaa");
                            JogadorInfo[playerid][Policia] = INI_ReadInt("Planalto");
                            INI_Close();
				      }
                }
           }
quando deslogar salvar qual org q ta
Код:
public OnPlayerDisconnect(playerid, reason)
{
    if(INI_Open(ObterINI(playerid))) {

    INI_WriteInt("Score",PlayerInfo[playerid][pScore]);
    INI_WriteInt("Dinheiro",GetPlayerMoney(playerid));
    INI_WriteInt("Admin",PlayerInfo[playerid][pAdmin]);
    INI_WriteInt("Policia", JogadorInfo[playerid][Policia]);
    INI_WriteInt("Canaa", JogadorInfo[playerid][Canaa]);
    INI_WriteInt("Planalto", JogadorInfo[playerid][Planalto]);
    INI_Save();
    INI_Close();
    }
    
    return 1;
}
Sу que salva blz, mais ai quando logo de novo ta como cargo 0 da org ai vejo o jogador.ini ta la o nome da org = 0 de vez o numero do cargo


Re: Salvamento de Conta - StrondaXxT - 10.08.2012

tem como alguйm me ajudar ai??


Respuesta: Salvamento de Conta - AnonymouSs - 10.08.2012

Tente:
pawn Код:
case DIALOG_LOGAR:
{
    if ( !response ) return Kick ( playerid );
    if( response )
    {
          if(!strlen(inputtext))
          {
                ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_INPUT, ""BRANCO"Logar",""VERMELHO"Senha invalida.\n"BRANCO"Digite sua senha abaixo para entrar.","Logar","Sair");
          }

          if(INI_Open(ObterINI(playerid)))
          {
                INI_ReadString(PlayerInfo[playerid][pSenha],"Senha",20);

                if(strcmp(inputtext,PlayerInfo[playerid][pSenha],false))
                {
                      ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_INPUT, ""BRANCO"Logar",""VERMELHO"Senha invalida.\n"BRANCO"Digite sua senha abaixo para entrar.","Logar","Sair");
                }
                SetPlayerScore( playerid, INI_ReadInt("Score" ) );
                //ResetPlayerMoney( playerid );
               
                GivePlayerMoney( playerid, INI_ReadInt( "Dinheiro" ) );
                PlayerInfo[playerid][pAdmin] = INI_ReadInt("Admin");
                JogadorInfo[playerid][Policia] = INI_ReadInt("Policia");
                JogadorInfo[playerid][Policia] = INI_ReadInt("Canaa");
                JogadorInfo[playerid][Policia] = INI_ReadInt("Planalto");
                JogadorInfo[playerid][pCargo] = INI_ReadInt("Cargo");
                INI_Close();
          }
    }
}
pawn Код:
public OnPlayerDisconnect(playerid, reason)
{
    if(INI_Open(ObterINI(playerid))) {

    INI_WriteInt("Score",PlayerInfo[playerid][pScore]);
    INI_WriteInt("Dinheiro",GetPlayerMoney(playerid));
    INI_WriteInt("Admin",PlayerInfo[playerid][pAdmin]);
    INI_WriteInt("Policia", JogadorInfo[playerid][Policia]);
    INI_WriteInt("Canaa", JogadorInfo[playerid][Canaa]);
    INI_WriteInt("Planalto", JogadorInfo[playerid][Planalto]);
    INI_WriteInt("Cargo", JogadorInfo[playerid][pCargo]);
    INI_Save();
    INI_Close();
    }
   
    return 1;
}
Vc vai ter q colocar na sua enum o pCargo ou oq vc quiser.
Ai se ele for expulso da org seta o cargo dele pra 0 junto com a org claro.

Nгo testei e sou iniciante.


Re: Salvamento de Conta - Don_Speed - 10.08.2012

Troca de dini_IntSet para INI_WriteInt .
Isso resolvera seu problema!