SSGamers - 13 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

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

SSGamers - 13 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

SSGamers - 13 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] Como colocar timer nos diálogos

    Weslley_Script
    Weslley_Script
    SS - Fundador
    SS - Fundador


    Steam Steam : WeslleySSGames
    Zello : WeslleySSGames
    Mensagens : 11644
    Moedas : 1032955
    Data de inscrição : 06/10/2011
    Idade : 29
    Localização : Brasil

    [Tutorial] Como colocar timer nos diálogos Empty [Tutorial] Como colocar timer nos diálogos

    Mensagem por Weslley_Script Qui 27 Abr 2023 - 17:26

    Bom dia galera, estou aqui com a intenção de dar uma ajeitada nesse tutorial.

    Bom galera, vejo muita gente pedindo ajuda de como colocar timer nas dialogs, entгo resolvi compartilhar uma criaзгo minha, sei que nгo й nada muito avanзado, afinal eu ainda continuo codando com codes antigos, nгo consegui me adaptar a zcmd, sscanf e etc. Mas enfim vamos lá, sei que por mais simples que seja o código, vai ajudar muitos novos.

    OBS: Lembrem-se de adaptar as variáveis ​​de acordo com o seu GM.
    Comeзando:

    Vocк deve colocar as variбveis no inicio do seu GM, junto com as demais variбveis
    peão Код:

    Código:
    #define D_Tutorial 100 //ID do diálogo usado no tutorial, deve mudar conforme o seu servidor
    new  bool : PodePassarTutorial [ MAX_PLAYERS ] ;       //Irá verificar se o jogador pode ou não passar o tutorial
    new  bool : VendoTutorial [ MAX_PLAYERS ] ;            //Irá verificar se ele está ou não está vendendo o tutorial
    new TempoTutorial [ MAX_PLAYERS ] ;                 //Define o tempo que o player deve esperar
    new timertutorial [ MAX_PLAYERS ];                 // Variável utilizada para salvar as informações do timer para cada player


    Um exemplo de como usar na sua caixa de diálogo
    peão Код:

    Código:
    [size=14][size=13]//Em OnPlayerDialog
        new stringtuto [ 128 ] ;
        if ( dialogid == D_Tutorial )   // Em sua dialog você deve colocá-lo da seguinte forma:
        {
            if ( response ==  0 )
            {
                return  1 ;
            }
            if ( resposta ==  1 )
            {
                if ( PodePassarTutorial [ playerid ]  == true )     //Aqui verifica que o player já está autorizado a passar o tutorial
                {
                    ShowPlayerDialog ( playerid, D_Tutorial, DIALOG_STYLE_MSGBOX, "Tutorial!" , "Bem vindo ao tutorial." , ">>" , "" ) ;
                    PodePassarTutorial [ playerid ]  = false;   // Aqui está definindo que o jogador não pode passar para o próximo diálogo antes do tempo acabar.
                    TempoTutorial [ playerid ]  =  10 ;           // Aqui define o tempo que o player vai esperar para poder passar o tutorial.
                }
                else  if ( PodePassarTutorial[ playerid ]  == false )  //Aqui verifica que o player ainda não está autorizado a passar o tutorial, retornando-o para o diálogo anterior
                {
                    format ( stringtuto, 128 , "Você deve esperar %d segundos para poder passar o tutorial! " , TempoTutorial [ playerid ] ) ;
                    SendClientMessage ( playerid, - 1 , stringtuto ) ;
                    ShowPlayerDialog ( playerid, D_Tutorial + 1 , DIALOG_STYLE_MSGBOX, "Tutorial:", "Muito bem, você esperou o tempo suficiente para passar o tutorial!" , ">>" , "" ) ;
                    VendoTutorial [ playerid ]  = false;        // Define que o player nгo estб mais vendendo o tutorial
                     PlayerInfo [ playerid ] [ pTutorial ]  =  1 ;    // Define que o player jà visualizou o tutorial, Usado na maioria dos GF's, edite de acordo com seu gm
                }
            }
            return  1 ;
        }[/size][/size]


    [center][/center]

    Aqui é onde inicia o tutorial. Você deve por no final do registro do player, ex:
    peão Код:

    Código:
    public OnPlayerSpawn ( playerid )   // Usei como exemplo o OnPlayerSpawn, mas você pode ajustar de sua forma
    {
        if ( InfoPlayer [ playerid ] [ pTutorial ]  ==  0 )
        {
             PodePassarTutorial [ playerid ]  = false;   // Não deixará o player passar o tutorial antes do tempo
             VendoTutorial [ playerid ]  = true;         // Define que o player está vendendo o tutorial
             TempoTutorial [ playerid]  =  5 ;            // Define o tempo que o player deve esperar
             timertutorial [ playerid ]  = SetTimerEx ( "VendoTuto" , 1000 , true, "i" , playerid ) ;   // Timer que irá checar quando o jogador pode passar para o próximo tutorial
        }
        return  1 ;
    }


    Coloca em OnPlayerConnect para não haver bugs
    peão Код:

    Código:
    [size=14][size=13]PodePassarTutorial [ playerid ]  = false;
    VendoTutorial [ playerid ]  = false;
    TempoTutorial [ playerid ]  =  0 ;[/size][/size]


    [center][color=black][size=14][u]Este callback é usado para verificar o tempo que o jogador deve esperar para passar o tutorial. Pode colocá-la no final de seu GM[/u][/size][/color][/center]
    [size=14]peão Код:
    [size=13]encaminhar VendoTuto ( playerid ) ;
    public VendoTuto ( playerid )
    {
        if ( VendoTutorial [ playerid ]  == true )  // Aqui verifica se o player está vendendo o tutorial, em caso de true, ele irá diminuir o valor da variável de tempo
        {
            if ( TempoTutorial [ playerid ]  = =  0 ) // Checa se já se passou o tempo de espera do player, no caso do valor da variável se igualar a 0, irá retornar para o player que ele poderá passar o tutorial
            {
                PodePassarTutorial [ playerid ]  = true;    // Permite que o jogador passe para o próximo diálogo
                 SendClientMessage ( playerid, cinza, "Você já pode passar para a página!" ) ;
            }
            else { TempoTutorial [ playerid ]  -- ; } // Diminui o tempo de espera do player de 1 em 1 segundo
        }
        else  if ( VendoTutorial [ playerid ]  == false )// Verifica, se o player nгo estiver mais vendendo o tutorial ele irб "excluir" o timer, fazendo com que nгo fique contando de varde
        {
             KillTimer ( timertutorial [ playerid ] ) ; // "Excluir" o timer para nгo haver lag desnecessбrio
             TempoTutorial [ playerid ]  =  0 ;
        }
        retorna  1 ;
    }[/size][/size]


    MatheusDalZot



    [Tutorial] Como colocar timer nos diálogos D07Xwqb
    [Tutorial] Como colocar timer nos diálogos Yjab9HN

      Data/hora atual: Qua 27 Nov 2024 - 3:56