SA-MP Forums Archive
[Tutorial] Sistema de registro[DOF2] - 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)
+----- Forum: Lançamentos/Releases (https://sampforum.blast.hk/forumdisplay.php?fid=56)
+----- Thread: [Tutorial] Sistema de registro[DOF2] (/showthread.php?tid=639297)



Sistema de registro[DOF2] - Don_Speed - 15.08.2017

Olб hoje estava vendo a quantidade de tutoriais de "como criar sistema de registro"
Na grande maioria tutoriais poluidos , entгo resolvi trazer o meu modo de cria .
Muito parecido com os demais podem sem poluiзгo.


A primeira coisa e adicionar a include DOF2 no topo de seu game mode

Logo apos e necessario criar uma enum para podermos ter onde guardar informaзoes necessarias.
Meu Exemplo
PHP код:
enum pInfo {
     
pSenha[50]
}
new 
DonInforma[MAX_PLAYERS][pInfo]; 
Vale o aviso que nesta opзгo acima da para colocar mais variaveis das quais queira usar . (foda-se)

Agora vamos criar algumas definiзхes necessarias, junto a elas tera suas explicaзхes

PHP код:
#define      DIALOG_REGISTER            1 // Define para o dialog de registro
#define      DIALOG_LOGIN               2 // Define para o dialog de login
#define      ContaSalva                 "DonSpeed/DJogadores/%s.ini"// local onde as contas serгo salvas
new EmGeral[100]; 
Eu gosto de usar uma stock para getar o nome do jogador e nгo poluir o codigo.
PHP код:
stock DonPegaNome(playerid)
{
    new 
name[MAX_PLAYER_NAME];
    
GetPlayerName(playeridnamesizeof(name));
    return 
name;
}
/*Modo de uso */
format(strsizeof str"Seu nome e %s",DonPegaNome(playerid));
SendMessageClient(playerid, -1str); 
Agora vamos comeзar a dar forma em nosso sistema .
Promeiramente vamos ao OnPlayerConnect (CTRL+F) para poder verificar se o jogador em questгo possui conta em nosso sistema ou nгo.



PHP код:
format(EmGeralsizeof(EmGeral), ContaSalva DonPegaNome(playerid));// Procura no lugar onde fica amarzenado as contas
    
if(!DOF2_FileExists(EmGeral))// Verifica se o usuario possui conta
      
ShowPlayerDialog(playeridDIALOG_REGISTERDIALOG_STYLE_PASSWORD"Registro""Registro""Registro"#);/*Caso nгo possua conta ira aparecer essa dialog*/
     
else
        
ShowPlayerDialog(playeridDIALOG_LOGINDIALOG_STYLE_PASSWORD"Logar""Logar""Logar"#);/*Caso possua ira aparecer este dialog*/ 
Agora iremos a parte mais basica deste sistema , localizem a OnDialogResponse (CTRL+F)
Localizado iremos montar um pequeno codigo , exemplo e explicaзгo logo abaixo.
PHP код:
public OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    switch(
dialogid)
    {
           case 
DIALOG_REGISTER:/*Para podermos fazer a resposta do dialog do registro montado em OnPlayerConnect*/
           
{
                if(!
response)return Kick(playerid);/*Caso ele aperto o botao da direita*/
                
format(DonInforma[playerid][pSenha], 50inputtext);/*Seta nesta variavel o inputtext digitado(Senha)*/
                
DonSalva(playerid);// Salva a conta do usuario (Mais info abaixo)
           
}
           case 
DIALOG_LOGIN:/*Para podermos fazer a resposta do dialog do login montado em OnPlayerConnect*/
           
{
                if(!
response)return Kick(playerid);/*Caso ele aperto o botao da direita*/
                
DonCarrega(playerid);/*Carrega senha e outras informaзoes do usuario*/
                
if(!strcmp(inputtext,DonInforma[playerid][pSenha],true))/*Verifica se a senha digitado e a mesma que foi guardada*/
                
{
                    
/*Funзoes para quando ele logar esta parte*/
                
}else ShowPlayerDialog(playeridDIALOG_LOGINDIALOG_STYLE_PASSWORD"Logar""Logar""Logar"#);/*Caso ele erre a senha voltara ao dialog*/
           
}
    }
    return 
true;


Em montei duas callbacks para poder puxar e salvar os dados facilmente .
Exemplo e explicaзгo
PHP код:
forward DonSalva(playerid);
public 
DonSalva(playerid)
{
    
format(EmGeralsizeof(EmGeral), ContaSalva DonPegaNome(playerid));// Busca do local amarzenado as contas dos usuarios
    
if(!DOF2_FileExists(EmGeral))// Verifica se o mesmo tem ou nгo conta em nossos dados
    
{//Resposta caso nгo tenha
        
DOF2_CreateFile(EmGeral);//Ira criar arquivo em nossa pasta desejada
        
DOF2_SetString(EmGeral,"Senha",DonInforma[playerid][pSenha]); // Armazenara no arquivo a senha salva na pSenha
        
DOF2_SaveFile();//Farб uma att do arquivo
    
}else{// Caso ja tenha conta
        
DOF2_SetString(EmGeral,"Senha",DonInforma[playerid][pSenha]);// Armazenara no arquivo a senha salva na pSenha
        
DOF2_SaveFile();//Farб uma att do arquivo
    
}
    return 
true;

PHP код:
forward DonCarrega(playerid);
public 
DonCarrega(playerid)
{
    new 
Pass[50];// String
    
format(EmGeralsizeof(EmGeral), ContaSalva DonPegaNome(playerid));// Busca do local amarzenado as contas dos usuarios
    
if(!DOF2_FileExists(EmGeral))// Verifica se o mesmo tem ou nгo conta em nossos dados
    
{//Resposta nгo caso tenha
       
DOF2_CreateFile(EmGeral);//Ira criar arquivo em nossa pasta desejada
       
DOF2_GetString(EmGeral"Senha"Pass);// Carrega a informaзao de Senha gravada no arquivo
       
format(DonInforma[playerid][pSenha], 50,Pass); // Passa a informaзгo a variavel pSenha
    
}
    else
    {
//Resposta caso tenha
       
DOF2_GetString(EmGeral"Senha"Pass);// Carrega a informaзao de Senha gravada no arquivo
       
format(DonInforma[playerid][pSenha], 50,Pass);// Passa a informaзгo a variavel pSenha
    
}
    return 
true;

Bom e isso bem simples , qualquer duvida , sugestгo ou ate mesmo algo que eu tenha errado so posta.
Nгo serei tгo ativo quanto antes , mas tarei por ai .


bandeja exposta aos bicho preguiзa.





Re: Sistema de registro[DOF2] - GuilhermeNunes - 15.08.2017

Nгo Quero ser rude.... mas hj em dia tem varios tuto disso e FS ... principalmente no *******.

mais vai ajudar quem nгo sabe ainda.


Re: Sistema de registro[DOF2] - s4kuL - 15.08.2017

Quote:
Originally Posted by GuilhermeNunes
Посмотреть сообщение
Nгo Quero ser rude.... mas hj em dia tem varios tuto disso e FS ... principalmente no *******.

mais vai ajudar quem nгo sabe ainda.
;/ ;/ ;/


Re: Sistema de registro[DOF2] - zCyan - 15.08.2017

Bom tutorial!


Re: Sistema de registro[DOF2] - Don_Speed - 15.08.2017

Quote:
Originally Posted by Don_Speed
Посмотреть сообщение

Na grande maioria tutoriais poluidos , entгo resolvi trazer o meu modo de cria .
Muito parecido com os demais podem sem poluiзгo.
Quote:
Originally Posted by GuilhermeNunes
Посмотреть сообщение
Nгo Quero ser rude.... mas hj em dia tem varios tuto disso e FS ... principalmente no *******.

mais vai ajudar quem nгo sabe ainda.
Quote:
Originally Posted by s4kuL
Посмотреть сообщение
;/ ;/ ;/
Sу acho que era bom ler , o titulo nгo diz a qualidade do conteudo.
Nгo e nada genial , mas e um conteudo limpo .
Vocкs nгo teve nem o trabalho de ler o topico , geraзгo CTRL C.


Quote:
Originally Posted by zCyan
Посмотреть сообщение
Bom tutorial!
Hum

Minha opiniгo e foda-se quem nгo gostar .



Re: Sistema de registro[DOF2] - IlanZ - 15.08.2017

Nada mau.


Re: Sistema de registro[DOF2] - GuilhermeNunes - 15.08.2017

Pra que a ignorвncia cara ? eu n te critiquei e ainda dei rep pelo tuto e tu ja vem com ignorancia...


Re: Sistema de registro[DOF2] - RodrigoMSR - 15.08.2017

Quanto mais melhor.

Sу faltou uma coisa para ficar completo, um comando para salvar todos online e o salvamento automбtico de tempos em tempos, pois quando o servidor cai vбrios dados sгo perdidos e muitos novatos criam tуpicos por causa disso.


Re: Sistema de registro[DOF2] - Carlos001 - 15.08.2017

Muito bom!!
Sу dar um update com oque o Amigo disse acima ^^ que ficarб perfeito
Parabйns.


Re: Sistema de registro[DOF2] - zCyan - 15.08.2017

Quote:
Originally Posted by RodrigoMSR
Посмотреть сообщение
Quanto mais melhor.

Sу faltou uma coisa para ficar completo, um comando para salvar todos online e o salvamento automбtico de tempos em tempos, pois quando o servidor cai vбrios dados sгo perdidos e muitos novatos criam tуpicos por causa disso.
Nossa, bom saber disso kkk