[Tutorial] DS Usando Dialog List
#1


Ola a pedido de alguns venho trazendo um tutorial de como utilizar um dialog list!
entгo vamos lб


Crie uma abreviaзгo para seu dialog - Podemos fazer de duas maneiras:

Maneira 1:
Podemos usar enum EX:
pawn Код:
enum di{
    DIALOG_SKIN
}
new DIALOGINFO[MAX_PLAYERS][di];
PHP код:
Exemplo de uso
ShowPlayerDialog
(playeridDIALOGINFO[playerid][DIALOG_SKIN], DIALOG_STYLE_LIST"Escolha sua skin:""Skin 01/nSkin 02\nSkin03""Selecionar","Cancelar"); 
Neste caso nгo usaria numeros .
E o melhor metodo para evitar conflito com outras dialogs

Maneira 2:
pawn Код:
#define DIALOG_SKIN                  800
Porque desta definiзгo
Simples para que vocк possa trocar o numero da dialog facilmente sem que ocorra erros!
Claro jamais voce usarб o mesmo numero ou o mesmo nome para duas dialogґs

FICAREMOS USANDO O METODO 2

pawn Код:
ShowPlayerDialog(playerid, DIALOG_SKIN, DIALOG_STYLE_LIST, "Escolha sua skin:", "Skin 01/nSkin 02\nSkin03", "Selecionar","Cancelar");
Isto e a parte mais facil. Olha onde e titulo etc:
PHP код:
ShowPlayerDialog(JogadorNomeDialogEstilo de Dialog"Titulo""Opзoes para ser escolhido""Botton 1","Botton 2"); 

Vamos fazer a resposta da dialog ( Dialog sendo list )
Procure pela callback OnDialogResponse :
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_SKIN)
    {
          if(!response) return true;
          switch(listitem)
          {
              case 0:SetPlayerSkin(playerid, 125);
              case 1:SetPlayerSkin(playerid, 110);
              case 2:SetPlayerSkin(playerid, 119);
                          default:SetPlayerSkin(playerid, 0);
          }
    }
    return true;
}
Explicaзгo rapida
PHP код:
if(dialogid == DIALOG_SKIN) - Esta e a chamada para a resposta da dialog
if(!response) return true; - Isto envolve os botoes da dialog (Botton 1 Botton 2Quando possui e quando ele seleciona o segundo Botton 
PHP код:
switch(listitem)
          {
              case 
0:SetPlayerSkin(playerid125);
              case 
1:SetPlayerSkin(playerid110);
              case 
2:SetPlayerSkin(playerid119);
          } 
switch e uma abreviaзгo para que possa usar case , utilizando case e melhor pra codar , no meu ponto de vista.

PHP код:
o que o default???
Caso tenha mais opзoes do que a numeraaзгo da dialog!
Porisso existe esta funзгo caso tenha mais opзoes doq a resposta ele setara neste exemplo a kin a  zero 
Porque comeзar do case 0
Pois comeзa do zero os numeros ...
Depois dos : vocк coloca o que que a dialog responda para cada opзгo.

LEMBRANDO ESSA RESPOSTA SEMPRE TARA EM ORDEM DAS OPЗOES QUE VOCК ACRESCENTOU AO DIALOG.



Creditos
DonSpeed e wiki sa-mp
Reply


Messages In This Thread
DS Usando Dialog List - by Don_Speed - 05.06.2013, 13:52
Re: DS Usando Dialog List - by vitere - 05.06.2013, 14:28
Respuesta: DS Usando Dialog List - by Wendell - 05.06.2013, 14:32
Re: DS Usando Dialog List - by ProKillerpa - 05.06.2013, 15:05
Re: DS Usando Dialog List - by Don_Speed - 05.06.2013, 15:07
Re: DS Usando Dialog List - by ProKillerpa - 05.06.2013, 15:09
Re: DS Usando Dialog List - by Don_Speed - 05.06.2013, 16:11
Re: DS Usando Dialog List - by Jason` - 05.06.2013, 17:53
Re: DS Usando Dialog List - by Don_Speed - 05.06.2013, 17:55
Re: DS Usando Dialog List - by vitorvlv - 05.06.2013, 18:29

Forum Jump:


Users browsing this thread: 4 Guest(s)