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] Log e Check-in de diálogo usando Y_INI

    Weslley_Script
    Weslley_Script
    SS - Fundador
    SS - Fundador


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

    [Tutorial] Log e Check-in de diálogo usando Y_INI Empty [Tutorial] Log e Check-in de diálogo usando Y_INI

    Mensagem por Weslley_Script Sáb 27 maio 2023 - 20:28

    O que é isso?
    É um tutorial simples de se registrar e fazer login usando o Y_INI include

    O que é Y_INI?
    Y_INI é extensa é um leitor com base em ini também conhecido como "sistema de gerenciamento de arquivos", criado por ******. Este é incluído na biblioteca juntamente com YSI outro inclui como Y_COMMANDS e Y_GROUPS.

    Passo 1

    Abra o seu gm e haci Adiciona inclui:
    peão Код:

    Código:
    #include <YSI\y_ini>


    Ele contém tudo o que você precisa para criar e registrar o nosso usuário

    Passo 2

    Definir as nossas caixas de diálogo
    peão Код:

    Código:
    #define DIALOG_REGISTER 1
    #define DIALOG_LOGIN 2
    #define DIALOG_SUCCESS_1 3
    #define DIALOG_SUCCESS_2 4


    Passo 3

    Defina a pasta ini
    peão Код:

    Código:
    #define PATH "/Users/%s.ini"


    Você deve criar uma pasta em seus arquivos de script usuários da pasta.


    Passo 4

    adicione alguns núcleos
    peão Код:

    Código:
    #define COL_WHITE "{FFFFFF}"//Color Blanco
    #define COL_RED "{F81414}"//Color rojo
    #define COL_GREEN "{00FF22}"//Color verde
    #define COL_LIGHTBLUE "{00CED1}"//Azul Claro

    Etapa 5

    Vamos a Enumerar para poder salvar nossas variáveis
    peão Код:

    Código:
    enum pInfo
    {
         pPass, //Clave
         pCash, //Dinero
         pAdmin, //Administracion
         pKills, //Muertes a FAvor
         pDeaths //Muertes en contra
    }
    new PlayerInfo [ MAX_PLAYERS ] [ pInfo ] ;


    Passo 6

    Agora crie o código para carregar os dados do usuário, adicione.
    peão Код:

    Código:
    encaminhar LoadUser_data ( playerid,nome [ ] , valor [ ] ) ;
    public LoadUser_data ( playerid,name [ ] ,value [ ] )
    {
         INI_Int ( "senha" , PlayerInfo [ playerid ] [ pPass ] ) ;
        INI_Int ( "
    dinheiro" ,PlayerInfo [ playerid ] [ pCash ] ) ;
        INI_Int ("Admin" , PlayerInfo [ playerid ] [ pAdmin ] ) ;
        INI_Int ( "Mata" ,PlayerInfo [ playerid ] [ pKills ] ) ;
        INI_Int ( "Mata contra" ,PlayerInfo [ playerid ] [ pMortes ] ) ; //Não sabia como mas llamarle xD
        return  1 ;
    }


    Passo 7

    Nós vamos criar uma função simples
    peão Код:

    Código:
    stock UserPath ( playerid )
    {
        nova string [ 128 ] , playername [ MAX_PLAYER_NAME ] ;
        GetPlayerName ( playerid,playername, sizeof ( playername ) ) ;
        formato ( string, sizeof ( string ) , PATH, nome do jogador ) ;
        string de retorno ;
    }


    Agarre Isso sу neste caso, o "PATH" arquivos do usurio.

    Passo 8

    Adicione esta linha abaixo do ciclo anterior
    peão Код:

    Código:
    /*Créditos para Dracoblue*/
    stock udb_hash ( buf [ ] )  {
        novo comprimento = strlen ( buf ) ;
        novo s1 =  1 ;
        novo s2 =  0 ;
        novo n;
        for  ( n = 0 ; n < comprimento; n ++ )
        {
            s1 =  ( s1 + buf [ n ] )  %  65521 ;
           s2 =  ( s2 + s1 )      %  65521 ;
        }
        return  ( s2 <<  16 )  + s1;
    }


    Este código é usado para definir senhas

    Passo 9

    Agora vamos usar OnPlayerConnect para verificar se o aparelho está conectado
    peão Код:

    Código:
    public OnPlayerConnect ( playerid )
    {
        if ( fexist ( UserPath ( playerid ) ) )
        {
             INI_ParseFile ( UserPath ( playerid ) , "LoadUser_%s" , .bExtra = true, .extra = playerid ) ;
            ShowPlayerDialog ( playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "" COL_WHITE "Login" , "" COL_WHITE "Digite sua senha para entrar." ,"Entrar" , "Sair" ) ;
        }
        else
        {
             ShowPlayerDialog ( playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "" COL_WHITE "Registrando..." , "" COL_WHITE "Digite sua senha para criar uma nova conta" , "Register" , "Sair" ) ;
        }
        retorna  1 ;
    }


    Passo 10
    peão Код:

    Código:
    public OnDialogResponse ( playerid, dialogid, resposta, listitem, inputtext [ ] )
    {
        switch ( dialogid )
        {
            case DIALOG_REGISTER :
            {
                if  ( ! response )  return Kick ( playerid ) ;
                if ( resposta )
                {
                    if ( ! strlen ( inputtext ) )  return ShowPlayerDialog ( playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""COL_WHITE "Registrando..." , "" COL_RED "Escrevi uma chave inválida. \n " COL_WHITE "Escreva a sua chave para registrar uma nova conta" , "Registrar" , "Sair" ) ;
                    novo  INI : File = INI_Open ( UserPath ( playerid ) ) ;
                    INI_SetTag ( Arquivo, "dados" ) ;
                    INI_WriteInt ( Arquivo, "Senha" ,) ;
                    INI_WriteInt ( Arquivo, "Dinheiro" , 0 ) ;
                    INI_WriteInt ( Arquivo, "Administrador" , 0 ) ;
                    INI_WriteInt ( Arquivo, "Matas" , 0 ) ;
                    INI_WriteInt ( Arquivo, "Mortes" , 0 ) ;
                    INI_Close ( Arquivo ) ;

                    SetSpawnInfo ( playerid, 0 , 0 ,1958.33 , 1343.12 , 15.36 , 269.15 , 0 , 0 , 0 , 0 , 0 , 0 ) ;
                    SpawnPlayer ( playerid ) ;
                    ShowPlayerDialog ( playerid, DIALOG_SUCCESS_1, DIALOG_STYLE_MSGBOX, "" COL_WHITE "Listo!" , "" COL_GREEN "Reloguea Pronto conta criada para salvar suas estatísticas" , "Ok" , "" ) ;
                }
            }

            case DIALOG_LOGIN :
            {
                if  (  ! resposta )  return Chute ( playerid ) ;
                if ( resposta )
                {
                    if ( udb_hash ( inputtext )  == PlayerInfo [ playerid ] [ pPass ] )
                    {
                         INI_ParseFile ( UserPath ( playerid ) , "LoadUser_%s" , .bExtra = true, .extra =ID do jogador ) ;
                        GivePlayerMoney ( playerid, PlayerInfo [ playerid ] [ pCash ] ) ;
                        ShowPlayerDialog ( playerid, DIALOG_SUCCESS_2, DIALOG_STYLE_MSGBOX, "" COL_WHITE "Listo" , "" COL_GREEN "Sua conta foi logada" , "Ok" , "" ) ;
                    }
                    else
                    {
                         ShowPlayerDialog ( playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, """" COL_RED "Você digitou uma chave inválida. \n " COL_WHITE "Digite sua senha para login." , "Entrar" , "Sair" ) ;
                    }
                    retorna  1 ;
                }
            }
        }
        return  1 ;
    }


    Passo 11

    Lembre-se de manter essas variáveis ​​OnPlayerDisconnect ser usadas para salvar esta variável
    peão Код:

    Código:
    public OnPlayerDisconnect ( playerid, razão )
    {
        novo  INI : File = INI_Open ( UserPath ( playerid ) ) ;
        INI_SetTag ( Arquivo, "dados" ) ;
        INI_WriteInt ( Arquivo, "Dinheiro" , GetPlayerMoney ( playerid ) ) ;
        INI_WriteInt ( Arquivo, "Admin" , PlayerInfo [ playerid ] [ pAdmin ] ) ;
        INI_WriteInt ( Arquivo, "Mata" , PlayerInfo [ playerid ] [ pKills ] ) ;
        INI_WriteInt ( Arquivo, "Mortes" , PlayerInfo [ playerid ] [ pMortes ] ) ;
        INI_Close ( Arquivo ) ;
        retornar  1 ;
    }


    Passo 12

    Adicionar este ahy também que, a fim de ser gravado mortes OnPlayerDeath
    peão Код:

    Código:
    public OnPlayerDeath ( playerid, killerid, razão )
    {
        if ( killerid != INVALID_PLAYER_ID )
        {
               PlayerInfo [ killerid ] [ pKills ] ++ ;
        }
         PlayerInfo [ playerid ] [ pMortes ] ++ ;
        retornar  1 ;
    }

    Baseado em um post de: Kush

    Traduzido e modificado por Host

    Qualquer coisa Avisen

    Se você ver um erro Corrija-me por favor
    Creditos: Host



    [Tutorial] Log e Check-in de diálogo usando Y_INI D07Xwqb
    [Tutorial] Log e Check-in de diálogo usando Y_INI Yjab9HN

      Data/hora atual: Qui 9 maio 2024 - 1:03