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] Base de GPS em dialog fxckshzt

    Weslley_Script
    Weslley_Script
    SS - Fundador
    SS - Fundador


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

    [Tutorial] Base de GPS em dialog fxckshzt Empty [Tutorial] Base de GPS em dialog fxckshzt

    Mensagem por Weslley_Script Sáb 25 Mar 2023 - 10:53

    Olб.

    Sou iniciante em programзгo pawno, Este й o meu terceiro tutorial, mas vim passar pra vocкs uma base de GPS em dialog, mas tambйm estarei ensinando como eu fiz essa base.
    Aceito Crнticas e Sugestхes!
    Includes Utilizadas: ||

    1є Passo:
    Crie uma definiзгo para a sua DIALOG com uma numeraзгo.
    PHP код:

    Código:
    #define DIALOG_GPS   1
    //#define DIALOG_NOMEDADIALOG    NUMERAЗAO_DA_DIALOG 

    2є Passo:
    Vamos criar uma variбvel para ser reconhecida quando o player chegar ao local e ser removido o ponto.
    PHP код:

    Código:
    new GPSLocal[MAX_PLAYERS];
    //new NOME_DA_VARIAVEL   [MAX_PLAYERS](se refere ao mбximo de players encontrados no servidor); 

    3є Passo:
    Vamos na callback OnPlayerEnterCheckPoint(playerid) e vamos fazer as verificaзхes dentro da variбvel.
    PHP код:

    Código:
    public OnPlayerEnterCheckpoint(playerid)
    {
        if(GPSLocal[playerid] == 1)
        {
            GPSLocal[playerid] = 0;
            DisablePlayerCheckpoint(playerid);
        }
        return 1;


    Explicaзхes da aзгo acima:
    Quote:


    public OnPlayerEnterCheckpoint(playerid) - Callback de quando o player estiver dentro de uma marcaзгo criada.
    { - Abertura da chave da Callback
    if(GPSLocal[playerid] == 1) - verificaзгo, nуs verificamos se a variбvel GPSLocal й criada.
    { - Abertura da chave de verificaзгo
    GPSLocal[playerid] = 0; - Estamos zerando qualquer marcaзгo criada por alguma funзгo
    DisablePlayerCheckpoint(playerid); - Estamos desabilitando todas as marcaзхes (desabilitando todas que estiverem sido criadas no momento)
    } - Fechando chave de abertura da verificaзгo
    return 1; - Retornamos a Callback para 1 ou fizemos o retorno verdadeiro da callback
    } - Fechando a chave de abertura da Callback
    4є Passo:
    Vamos criar o comando, no caso para aparecer a DIALOG dos locais. Eu fiz um exemplo para ir atй uma casa lotйrica.
    PHP код:

    Código:
    CMD:gps(playerid)
    {
        ShowPlayerDialog(playerid, DIALOG_GPS, DIALOG_STYLE_LIST, "GPS", "LOTERICA", "Selecionar", "Fechar");
        return 1;


    Obs.:Ъnica funзгo utilizada foi a ShowPlayerDialog, que й para mostrar uma caixa de Dialog para o player que digitou o comando.
    Brevemente, trarei um tutorial explicando mais sobre a funзгo.
    Caso queira estudar: ShowPlayerDialog

    5є Passo:
    Vamos atй a callback que й responsбvel por responder as dialogs, no caso a public OnDialogResponse.
    PHP код:

    Código:
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
        if(dialogid == DIALOG_GPS)
            {
                if(response)
                {
                    if(listitem == 0)
                    {
                        SetPlayerCheckpoint(playerid,1289.8077,-1654.2590,13.5469,8.0);
                        SendClientMessage(playerid,-1,"[INFO] - A Lotйrica foi marcada no seu mapa!");
                        GPSLocal[playerid] = 1;
                    }
                }
            }
        return 1;


    Explicaзгo da aзгo acima:
    Quote:


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) - Й Responsбvel pelo inнcio da funзгo.
    { - Abertura da chave da callback
    if(dialogid == DIALOG_GPS) - Estб verificando se a dialogid existe, e a aзгo contra ela serб feita.
    { - Abertura da Chave da Verificaзгo
    if(response) - Verificaзгo da responsabilidades que possuem as colunas.
    { - Abertura da Chave de Responsabilidade
    if(listitem == 0) - Verificaзгo se do item citado nas linhas do comando. No pawno, tudo comeзa do nъmero 0(zero), O Zero equivale a primeira linha.
    { - Abertura da Verificaзгo dos itens.
    SetPlayerCheckPoint(playerid, 1289.8077,-1654.2590,13.5469,8.0); - Criar um checkpoint no mapa do jogo. playerid й o player que digitar o comando. Essas nъmeraзхes sгo as coordenadas X,Y,Z,Size(Tamanho)
    SendClientMessage(playerid, -1, "[INFO]: Lotйrica marcado no Mapa, Vб atй o ponto"); - Enviamos uma mensagem ao client. -1 й a cor que vocк deseja que apareзa na mensagem(branco no pawn). Mensagem.
    GPSLocal[playerid] = 1; - Damos um valor para a variбvel GPSLocal, que foi 1 ao clicarmos no Local desejado, apуs chegarmos, o local serб desmarcado.
    } - Fecha a verificaзгo dos itens.
    } - Fechando a chave de responsabilidade.
    } - Fechando a chave de verificaзгo de definiзгo da DIALOG.
    return 1; - Estamos finalizando ou dando o retorno final(ou verdadeiro) da funзгo.
    } - Fechando chave de funзгo da callback.
    Por fim, toda a funзгo serб da seguinte forma:
    PHP код:

    Código:
    #include <a_samp>
    #include <zcmd>
    #define DIALOG_GPS      1
    new GPSLocal[MAX_PLAYERS];
    CMD:gps(playerid)
    {
        ShowPlayerDialog(playerid, DIALOG_GPS, DIALOG_STYLE_LIST, "GPS", "LOTERICA", "Selecionar", "Fechar");
        return 1;
    }
    public OnPlayerEnterCheckpoint(playerid)
    {
        if(GPSLocal[playerid] == 1)
        {
            GPSLocal[playerid] = 0;
            DisablePlayerCheckpoint(playerid);
        }
        return 1;
    }
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
        if(dialogid == DIALOG_GPS)
         {
              if(response)
               {
                 if(listitem == 0)
                   {
                     SetPlayerCheckpoint(playerid,1289.8077,-1654.2590,13.5469,8.0);
                       SendClientMessage(playerid,-1,"[INFO] - A Lotйrica foi marcada no seu mapa!");
                     GPSLocal[playerid] = 1;
                   }
                }
          }
        return 1;


    @Edit:

    Caso queira o comando "/desligargps":
    PHP код:

    Código:
    CMD:desligargps(playerid)
    {
        if(GPSLocal[playerid] == 1)
        {
            GPSLocal[playerid] = 0;
            DisablePlayerCheckpoint(playerid);
            SendClientMessage(playerid, -1, "{00BFFF}[SERVER]{FFFFFF}: GPS Desligado!");
         }
         else
         {
             SendClientMessage(playerid, -1, "{FF0000}ERRO: Vocк nгo estб com o GPS ligado!");
         }
        return 1;


    Ter a opзгo de desligar GPS na Dialog:
    PHP код:

    Código:
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
        if(dialogid == DIALOG_GPS)
         {
              if(response)
            {
                if(listitem == 0)
                {
                    if(GPSLocal[playerid] == 1)
                    {
                        GPSLocal[playerid] = 0;
                        DisablePlayerCheckpoint(playerid);
                        SendClientMessage(playerid, -1, "{00BFFF}[SERVER]{FFFFFF}: GPS Desligado!");
                    }
                    else
                    {
                        SendClientMessage(playerid, -1, "{FF0000}ERRO: Vocк nгo estб com o GPS ligado!");
                    }
                }
                 if(listitem == 1)
                   {
                     SetPlayerCheckpoint(playerid, 1289.8077, -1654.2590, 13.5469, 8.0);
                       SendClientMessage(playerid,-1,"[INFO] - A Lotйrica foi marcada no seu mapa!");
                     GPSLocal[playerid] = 1;
                   }
               }
           }
        return 1;


    Obrigado!

    Source: Pastebin

    Creditos: fxckshzt



    [Tutorial] Base de GPS em dialog fxckshzt D07Xwqb
    [Tutorial] Base de GPS em dialog fxckshzt Yjab9HN

      Data/hora atual: Seg 20 maio 2024 - 5:12