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 Код:entгo vamos lб
Crie uma abreviaзгo para seu dialog - Podemos fazer de duas maneiras:
Maneira 1:
Podemos usar enum EX:
- Código:
enum di{
DIALOG_SKIN
}
new DIALOGINFO[MAX_PLAYERS][di];
PHP код:
- Código:
Exemplo de uso
ShowPlayerDialog(playerid, DIALOGINFO[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 Код:E o melhor metodo para evitar conflito com outras dialogs
Maneira 2:
- Código:
#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 Код: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
- Código:
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 код:- Código:
ShowPlayerDialog(Jogador, NomeDialog, Estilo 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 :
- Código:
[left]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;
}[/left]
Explicaзгo rapida
PHP код:- Código:
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 2) Quando possui ! e quando ele seleciona o segundo Botton
- Código:
switch(listitem)
{
case 0:SetPlayerSkin(playerid, 125);
case 1:SetPlayerSkin(playerid, 110);
case 2:SetPlayerSkin(playerid, 119);
}
switch e uma abreviaзгo para que possa usar case , utilizando case e melhor pra codar , no meu ponto de vista.
PHP код:- Código:
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
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