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.

2 participantes

    [Tutorial]Criando Dialog

    BoB_Script
    BoB_Script
    --> Postador Iniciante
    --> Postador Iniciante


    Mensagens : 26
    Moedas : 4486
    Data de inscrição : 18/10/2012
    Idade : 26
    Localização : Aqui, Na SS

    [Tutorial]Criando Dialog Empty [Tutorial]Criando Dialog

    Mensagem por BoB_Script Seg 29 Out 2012 - 18:03

    Código:
    Vou Postar Esse Sistema De Dialog Pois é Igual o Que eu Uso Nos Meus GM's Mesmo o Tutorial Não sendo criado por mim, Vamos Lá:


    Criando um dialog
    Vendo que muitos tem dúvidas sobre como criar um dialog vou aqui fazer uma coisa rápida de como cria-lo..

    Primeiramente você tem que conhecer as funções..

    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])]
    Este é o callback onde você irá colocar as funções de cada dialog.

    playerid - ID do player a qual está sendo mostrado o dialog e ocorrerá a função.
    dialogid - ID do dialogo criado. É extremamente importante que você coloque sempre ids diferentes, e de preferência em ordem crescente. E para uma maior organização, você pode usar defines. Ex: #define DialogoDeRegistro 1


    Créditos : Criando um dialog
    Vendo que muitos tem dúvidas sobre como criar um dialog vou aqui fazer uma coisa rápida de como cria-lo..

    Primeiramente você tem que conhecer as funções..

    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])]
    Este é o callback onde você irá colocar as funções de cada dialog.

    playerid - ID do player a qual está sendo mostrado o dialog e ocorrerá a função.
    dialogid - ID do dialogo criado. É extremamente importante que você coloque sempre ids diferentes, e de preferência em ordem crescente. E para uma maior organização, você pode usar defines. Ex: #define DialogoDeRegistro 1
    response - É usado para gerenciar os dois botões.
    listitem - É usado para gerenciar os itens da lista conforme a ordem. listitem 1, 2, 3 e quantos você estiver colocado. Usado no estilo DIALOG_STYLE_LIST.
    inputtext - É usado para pegar o texto(string[]) digitado pelo jogador na caixa. Usado no estilo DIALOG_STYLE_INPUT.
    ShowPlayerDialog(playerid, dialogid, style, caption[], info[], button1[], button2[]);
    Função usada para criar o dialog.

    playerid - ID do player a ser exibido o dialog.
    dialogid - ID de ordem do dialog criado. É extremamente importante que você coloque sempre ids diferentes, e de preferência em ordem crescente. E para uma maior organização, você pode usar defines. Ex: #define DialogoDeRegistro 1
    style - Estilo do dialog a ser criado. Existem 3 tipos:
    0 - DIALOG_STYLE_MSGBOX - Estilo que só mostra uma mensagem na caixa.
    1 - DIALOG_STYLE_INPUT - Estilo onde abre uma caixa com uma mensagem, e um espaço para o player digitar.
    2 - DIALOG_STYLE_LIST - Exibe uma lista de itens para ser selecionado e ocorrer a função para tal id.

    caption[] - Usado para colocar o texto do cabeçalho.

    info[] - Usado para escrever o conteúdo que aparecerá dentro do dialog.

    button1[] - Texto que aparecerá no botão número 1.

    button2[] - Texto que aparecerá no botão número 2.

    Para criar um dialog é simples. Vamos começar com o estilgo MSGBOX:

    Primeiramente crie-o com a função ShowPlayerDialog:
    PAWN Code:
    #define DialogBoxEx 1
    new str[256];
    format(str, sizeof(str), "%d < Mostra o ID do Player \n Aqui será o texto a ser introduzido no dialog.\n Você terá que determinar um valor correto na variável criada de acordo \n com o tamanho do seu texto", playerid);

    ShowPlayerDialog(playerid, DialogBoxEx, DIALOG_STYLE_MSGBOX, "Cabeçalho", str, "Ok", "Cancelar");
    Este dialog criado, não necessitará inicialmente de usar o callback OnDialogResponse, a não ser para algumas funções desejadas, como usar variáveis, timers e etc.

    Agora com o estilo  DIALOG_STYLE_INPUT:
    PAWN Code:
    #define DialogInputEx 2
    new str[512];
    format(str, sizeof(str), "%d < Mostra o ID do Player \n Aqui será o texto a ser introduzido no dialog.\n Você terá que determinar um valor correto na variável criada de acordo \n com o tamanho do seu texto \n Abaixo o Player digitará um texto", playerid);


    ShowPlayerDialog(playerid, DialogInputEx, DIALOG_STYLE_INPUT, "Cabeçalho", str, "Ok", "Cancelar");

    //Agora você irá no OnDialogResponse e colocará a função após ele ter apertado OK.

    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
     if(dialogid == DialogInputEx)//identifica o id do dialog.
     {
      if(response)//Caso ele clique no primeiro botão
      {
      new Nome[64];
      GetPlayerName(playerid, Nome, sizeof(nome));
      if(!strcmp(inputtext, Nome, true)) //Identifica se o texto digitado é igual ao seu nome/nick do jogo.
      {
        SendClientMessage(playerid, COR, "Parabéns! Você sabe seu nome e por isso ganhará 1000 Reais!!!");
        GivePlayerMoney(playerid, 1000);
        return 1;
      }
      }
      else //caso ele click no segundo botão
      {
      SendClientMessage(playerid, COR, "Você clicou no segundo botão, o dialog desaparecerá que nem mágica e você será kickado!!!!!");
      Kick(playerid);
      }
     }
     return 1;
    }

    Agora com o estilo  DIALOG_STYLE_LIST:
    PAWN Code:
    new Clicado[MAX_PLAYERS];//Usado para armazenar o ID do player clicado

    public OnPlayerClickPlayer(playerid, clickedplayerid, source) //Quando o player clicar em outro player (No Tab)
    {
     if(IsPlayerAdmin(playerid))
     {
        new str[64] = "Ir até\nTrazer\nKickar\nBanir";  //Para cada item use "/n" o que pulará uma linha para o próximo item.
                ShowPlayerDialog(playerid, 0, DIALOG_STYLE_LIST, "Opções - Administrador", str, "Selecionar", "Cancelar"); //mostrará o dialog
      Clicado[playerid] = clickedplayerid;//armazenará o id do player clicado
     }
     return 1;
    }

    //Agora no OnDialogResponse

    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])//Dialog criado por [VGS]Mac_OC
    {
     new string[128];
     
     if(dialogid == 0)
     {
      if(IsPlayerAdmin(playerid))//verifica se o player é administrador, caso não queira só para administrador, retire-o
      {
            if(response)//botão 1
            {
                new Float:Coord[3];
                if(listitem == 0)//Item 0 da lista( é o primeiro da lista)
                {
        GetPlayerPos(Clicado[playerid], Coord[0], Coord[1], Coord[2]);
        new intid = GetPlayerInterior(Clicado[playerid]);
        if(IsPlayerInAnyVehicle(playerid))
        {
          new vid = GetPlayerVehicleID(playerid);
          SetVehiclePos(vid, Coord[0], Coord[1]+4, Coord[2]+4);//teleportará o veiculo
          SetPlayerInterior(playerid, intid);
          LinkVehicleToInterior(vid, intid);
        }
        else
        {
          SetPlayerInterior(playerid, intid);
          SetPlayerPos(playerid, Coord[0], Coord[1]+4, Coord[2]+4);//teleportará o player
        }
        format(string, sizeof(string), "Você se teleportou até %s(id: %d)", PlayerName(Clicado[playerid]), Clicado[playerid]);
        SendClientMessage(playerid, Cor_Verde, string);
        return 1;
                }
               
                else if(listitem == 1)//item da lista 1 (segundo da lista) fará com que traga o player
                {
        GetPlayerPos(playerid, Coord[0], Coord[1], Coord[2]);
        new intid = GetPlayerInterior(playerid);
        if(IsPlayerInAnyVehicle(Clicado[playerid]))
        {
          new vid = GetPlayerVehicleID(Clicado[playerid]);
          SetVehiclePos(vid, Coord[0], Coord[1]+4, Coord[2]+4);
          SetPlayerInterior(Clicado[playerid], intid);
          LinkVehicleToInterior(vid, intid);
        }
        else
        {
          SetPlayerInterior(Clicado[playerid], intid);
          SetPlayerPos(Clicado[playerid], Coord[0], Coord[1]+4, Coord[2]+4);
        }
        format(string, sizeof(string), "Você trouxe %s(id: %d) até você.", PlayerName(Clicado[playerid]), Clicado[playerid]);
        SendClientMessage(playerid, Cor_Verde, string);
        return 1;
        }
       
        else if(listitem == 2)
        {
              format(string, sizeof(string),"%s foi kickado por %s ", PlayerName(Clicado[playerid]), PlayerName(playerid));
              SendClientMessageToAll(Cor_Vermelho, string);
              Kick(Clicado[playerid]);
              return 1;

        }
       
        else if(listitem == 3)
        {
        format(string, sizeof(string), "%s foi kickado por %s ", PlayerName(Clicado[playerid]), PlayerName(playerid));
        SendClientMessageToAll(Cor_Vermelho, string);
        Ban(Clicado[playerid]);
            return 1;

        }
                  }
      }
      return 1;
     }
     return 0;
    }


    Quem tiver erro de PlayerName, crie uma variavel e use o GetPlayerName, ou adicionem essa função ao seu mode:
    PAWN Code:
    stock PlayerName(playerid)
    {
     new Nome[MAX_PLAYER_NAME];
     GetPlayerName(playerid, Nome, MAX_PLAYER_NAME);
     return Nome;
    }

    Créditos : [VGS]speliarmos_OC


    Última edição por BoB_Script em Sex 23 Nov 2012 - 17:09, editado 1 vez(es)

    Rafinha_Script
    Rafinha_Script
    --> Postador Médio
    --> Postador Médio


    Mensagens : 305
    Moedas : 5257
    Data de inscrição : 29/03/2012
    Idade : 26
    Localização : Broklin

    [Tutorial]Criando Dialog Empty Re: [Tutorial]Criando Dialog

    Mensagem por Rafinha_Script Seg 29 Out 2012 - 18:19

    Código:
    dahora mais poe em codigo, fico grandao



    Ajudei? Da + Nao Custa Nada!! Abraçoo.
    [Tutorial]Criando Dialog 6AhLjUX

    - Eu falo o que penso! Foda-se os outros , não nasci para agradar ninguem ¬¬' - Att : Rafinha
    BoB_Script
    BoB_Script
    --> Postador Iniciante
    --> Postador Iniciante


    Mensagens : 26
    Moedas : 4486
    Data de inscrição : 18/10/2012
    Idade : 26
    Localização : Aqui, Na SS

    [Tutorial]Criando Dialog Empty Re: [Tutorial]Criando Dialog

    Mensagem por BoB_Script Sex 23 Nov 2012 - 17:08

    Rafinha_Script escreveu:
    Código:
    dahora mais poe em codigo, fico grandao
    ok


    Conteúdo patrocinado


    [Tutorial]Criando Dialog Empty Re: [Tutorial]Criando Dialog

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Seg 25 Nov 2024 - 20:19