[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
#2

Bom tutorial me ajudo muito sabia nada de dialog vlw!
Reply
#3

Bom tutorial .

@Edit: Nгo posso dar +REP
Reply
#4

Dei a REP porйm ela nгo aumenta...
Reply
#5

Quote:
Originally Posted by ProKillerpa
Посмотреть сообщение
Dei a REP porйm ela nгo aumenta...

Rep nгo faz difereзa nenhuma pra mim , mas como posso ajudar alguem seu rep agora e possitivo!
E legal ter bastante rep e , mas nгo muda minha vida , meus rep nгo me dгo dinheiro.
Reply
#6

Quote:
Originally Posted by Don_Speed
Посмотреть сообщение

Rep nгo faz difereзa nenhuma pra mim , mas como posso ajudar alguem seu rep agora e possitivo!
E legal ter bastante rep e , mas nгo muda minha vida , meus rep nгo me dгo dinheiro.
Eu dou REP pra incendivar, atй esses dias eu conseguia, agora nгo mais..

Parabйns pelo tutorial, й de grande importвncia para quem quer aprender <3
Reply
#7

Vlw '-'
Reply
#8

Poderia falar sobre o uso de enumeradores para os ids.

pawn Код:
enum {
    DIALOG_REGISTRO,
    DIALOG_LOGIN,
    DIALOG_SEILAOQ
}
Reply
#9

Quote:
Originally Posted by Jason`
Посмотреть сообщение
Poderia falar sobre o uso de enumeradores para os ids.

pawn Код:
enum {
    DIALOG_REGISTRO,
    DIALOG_LOGIN,
    DIALOG_SEILAOQ
}
E mesmo irei editar jaja.
Reply
#10

Bem legal,gostei..
Ensinou atй a usar o Enum um pouco
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)