SSGamers - 12 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

Participe do fórum, é rápido e fácil

SSGamers - 12 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

SSGamers - 12 Anos online por você.

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Chegou o novo tema 6.5.5 - SSGamers - Servidores online de qualidade - Aproveite e entre para nossa comunidade, inscreva-se já! - Ouça nossa web radio - Veja nossas novidades - Participe dos nossos setores de jogos online - Parcerias aberta fale já com um administrador.

    [Tutorial] Sistema de registro[DOF2]

    Weslley_Script
    Weslley_Script
    SS - Fundador
    SS - Fundador


    Steam Steam : WeslleySSGames
    Zello : WeslleySSGames
    Mensagens : 11378
    Moedas : 1031976
    Data de inscrição : 06/10/2011
    Idade : 28
    Localização : Brasil

    [Tutorial] Sistema de registro[DOF2] Empty [Tutorial] Sistema de registro[DOF2]

    Mensagem por Weslley_Script Sáb 25 Mar 2023 - 11:05

    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 код:
    Código:
    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 код:
    Código:
    #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 код:
    Código:
    stock DonPegaNome(playerid)
    {
        new name[MAX_PLAYER_NAME];
        GetPlayerName(playerid, name, sizeof(name));
        return name;
    }
    /*Modo de uso */
    format(str, sizeof str, "Seu nome e %s",DonPegaNome(playerid));
    SendMessageClient(playerid, -1, str); 
    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 код:
    Código:
    format(EmGeral, sizeof(EmGeral), ContaSalva , DonPegaNome(playerid));// Procura no lugar onde fica amarzenado as contas
        if(!DOF2_FileExists(EmGeral))// Verifica se o usuario possui conta
          ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Registro", "Registro", "Registro", #);/*Caso nгo possua conta ira aparecer essa dialog*/
         else
            ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_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 код:
    Código:
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
        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], 50, inputtext);/*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(playerid, DIALOG_LOGIN, DIALOG_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 код:
    Código:
    forward DonSalva(playerid);
    public DonSalva(playerid)
    {
        format(EmGeral, sizeof(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 код:
    Código:
    forward DonCarrega(playerid);
    public DonCarrega(playerid)
    {
        new Pass[50];// String
        format(EmGeral, sizeof(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 .

    Don_speed
    bandeja exposta aos bicho preguiзa.



    [Tutorial] Sistema de registro[DOF2] D07Xwqb
    [Tutorial] Sistema de registro[DOF2] Yjab9HN

      Data/hora atual: Ter 7 maio 2024 - 18:26