I NTRODUÇÃO
Iae manolada! Suaves? Bom, neste tutorial, eu vou ensinar a usar os diálogos, todos os estilos! Que sãoMSGBOX, LIST, INPUT e PASSWORD. Eu quis criá-lo porque eu realmente não tinha nada para fazer agora e me deu uma vontade de criar um tuto ' >_<. Bom, prestem atenção porque eu vou tentar ser o mais claro possível.
T UTORIAL
Bom, para iniciar o tutorial, devo explicar que para criar uma caixa de diálogo, precisa-se definir oIDdela notopo do GM/FS! Da seguinte maneira:
peão Код:Iae manolada! Suaves? Bom, neste tutorial, eu vou ensinar a usar os diálogos, todos os estilos! Que sãoMSGBOX, LIST, INPUT e PASSWORD. Eu quis criá-lo porque eu realmente não tinha nada para fazer agora e me deu uma vontade de criar um tuto ' >_<. Bom, prestem atenção porque eu vou tentar ser o mais claro possível.
T UTORIAL
Bom, para iniciar o tutorial, devo explicar que para criar uma caixa de diálogo, precisa-se definir oIDdela notopo do GM/FS! Da seguinte maneira:
- Código:
#define DIALOG_NOME [ID]
Função da caixa de diálogo:
peão Код:- Código:
ShowPlayerDialog ( playerid,DIALOG_ID,ESTILO_DA_DIALOG, "TITULO" , "MENSAGEM" , "BOTAO 1" , "BOTAO 2" ) ;
Certo, então vamos começar o tutorial...
Para começar, vou ensinar a criar o estilo de diálogo mais simples e fácil de todas.
DIALOG_STYLE_MSGBOX
Bom, esta dialog é aquela dialog símples, com uma mensagem e os botхes. Vamos fazer um exemplo desta caixa de diálogo:
peão Код:Para começar, vou ensinar a criar o estilo de diálogo mais simples e fácil de todas.
DIALOG_STYLE_MSGBOX
Bom, esta dialog é aquela dialog símples, com uma mensagem e os botхes. Vamos fazer um exemplo desta caixa de diálogo:
- Código:
// TOPO:
#define DIALOG_CREDITOS 1
CMD : creditos ( playerid )
{
ShowPlayerDialog ( playerid,DIALOG_CREDITOS,DIALOG_STYLE_MSGBOX, "CRÉDITOS DO TUTORIAL" , "Tutorial foi criado por HeyHoLetsGo" , "OK" , "Sair" )
}
Explicando
ShowPlayerDialog = Função para chamar uma caixa de diálogo;
playerid = ID do jogador que vai ver um diálogo;
DIALOG_CREDITOS = ID da caixa de diálogo;
DIALOG_STYLE_MSGBOX = Estilo da caixa de diálogo, neste caso é a MSGBOX;
"CRÉDITOS DO TUTORIAL" = Esta primeira string é para o título;
"Tutorial foi criado por HeyHoLetsGo" = Menságem que vai aparecer dentro da caixa de diálogo!
Simples! Esta é a mais fácil de todas, mas caso você queira que os botхes tenham alguma função, então faz o seguinte:
Na callback OnDialogResponse , faremos o seguinte:
peão Код:ShowPlayerDialog = Função para chamar uma caixa de diálogo;
playerid = ID do jogador que vai ver um diálogo;
DIALOG_CREDITOS = ID da caixa de diálogo;
DIALOG_STYLE_MSGBOX = Estilo da caixa de diálogo, neste caso é a MSGBOX;
"CRÉDITOS DO TUTORIAL" = Esta primeira string é para o título;
"Tutorial foi criado por HeyHoLetsGo" = Menságem que vai aparecer dentro da caixa de diálogo!
Simples! Esta é a mais fácil de todas, mas caso você queira que os botхes tenham alguma função, então faz o seguinte:
Na callback OnDialogResponse , faremos o seguinte:
- Código:
public OnDialogResponse ( playerid, dialogid, response, listitem, inputtext [ ] )
{
if ( dialogid == DIALOG_CREDITOS )
{
if ( response )
{
SendClientMessage ( playerid, - 1 , "[ ! ] Você clicou em OK!" ) ;
}
else
{
SendClientMessage ( playerid, - 1 , "[ ! ] Você clicou em Sair!" ) ;
}
}
retorno 1 ;
}
Explicando
public OnDialogResponse = Chamamos um callback que para fazer as funções das caixas de diálogo;
if(dialogid == DIALOG_CREDITOS) = Chamamos as funções da DIALOG_CREDITOS;
if(response) = Se clicar no primeiro botão, no caso, OK;
else = Se clicar no segundo, no caso, Sair.
Pronto! Agora os botхes desta dialogs, quando apertados, mostrarгo as funзхes que vocк colocou, no caso deste exemplo, mostrarб uma mensбgem ao jogador.
OBS: Caso você queira que os dialogs tenham apenas UM botáo , deixe a string do botáo 2 em branco ! Exemplo:
- Código:
ShowPlayerDialog ( playerid,DIALOG_ID,DIALOG_STYLE, "TITULO" , "MENSAGEM" , "BOTÃO 1" , "" ) ;
Símples esta dialog... prestando atenção neste tutorial você vai aprender sem problemas!
DIALOG_STYLE_LIST
Bom, este estilo de diálogo é daqueles que mostram uma lista de opções ao jogador. Este nгoй tгo sнmples quanto ao MSGBOX . Então vamos ver como funciona, veja o exemplo abaixo:
peão Код:DIALOG_STYLE_LIST
Bom, este estilo de diálogo é daqueles que mostram uma lista de opções ao jogador. Este nгoй tгo sнmples quanto ao MSGBOX . Então vamos ver como funciona, veja o exemplo abaixo:
- Código:
// TOPO:
#define DIALOG_LISTA ID
CMD : dialoglist ( playerid )
{
ShowPlayerDialog ( playerid,DIALOG_LISTA,DIALOG_STYLE_LIST, "ESCOLHA UMA OPÇÃO" , "Crйditos \n Fуrum \n Mensбgem" , "VER" , "Sair" ) ;
}
Explicando
ShowPlayerDialog = Função para chamar uma caixa de diálogo;
playerid = ID do player que vai ver um diálogo;
DIALOG_LISTA = ID do diálogo;
DIALOG_STYLE_LIST = Estilo da caixa de diálogo, neste caso é a LIST;
"ESCOLHA UMA OPÇÃO" = Esta primeira corda é para o título;
"Crйditos\nFуrum\nMensбgem" = Lista de opзхes
Bem, como vocкs podem ver, na segunda string da funзгo , tem umas palavras separadas por \n , bem, estes carбcteres nesta funзгo servem para separar as linhas, ou seja, separar as opзхes , no caso, estas palavras ficariam uma em baixo da outra, formando 3 opções para escolher.
Agora vamos adicionar funções a esta lista:
Na callback OnDialogResponse :
peão Код:ShowPlayerDialog = Função para chamar uma caixa de diálogo;
playerid = ID do player que vai ver um diálogo;
DIALOG_LISTA = ID do diálogo;
DIALOG_STYLE_LIST = Estilo da caixa de diálogo, neste caso é a LIST;
"ESCOLHA UMA OPÇÃO" = Esta primeira corda é para o título;
"Crйditos\nFуrum\nMensбgem" = Lista de opзхes
Bem, como vocкs podem ver, na segunda string da funзгo , tem umas palavras separadas por \n , bem, estes carбcteres nesta funзгo servem para separar as linhas, ou seja, separar as opзхes , no caso, estas palavras ficariam uma em baixo da outra, formando 3 opções para escolher.
Agora vamos adicionar funções a esta lista:
Na callback OnDialogResponse :
- Código:
[size=13][size=13]public OnDialogResponse ( playerid, dialogid, response, listitem, inputtext [ ] )
{
if ( dialogid == DIALOG_LISTA )
{
if ( response )
{
if ( listitem == 0 )
{
SendClientMessage ( playerid, - 1 , "[ ! ] Tutorial foi criado por HeyHoLetsGo" ) ;
}
if ( item da lista == 1 )
{
SendClientMessage ( playerid, - 1 , "[!] forum.sa-mp.com" ) ;
}
if ( listitem == 2 )
{
ShowPlayerMessage ( playerid, - 1 , "[ ! ] Olá! Você escolheu a 3° opção da lista!" ) ;
}
}
else
{
SendClientMessage ( playerid, - 1 , "[ ! ] Você clicou em sair e o diálogo desapareceu!" ) ;
}
retorna 1 ;
}[/size][/size]
Explicando
if(dialogid == DIALOG_LISTA) = Chamamos as funções da DIALOG_CREDITOS;
if(response) = Se clicar no primeiro botão, no caso VER;
if(listitem == 0) = Se selecionar o primeiro item da lista;
if(listitem == 1) = Se selecionar o segundo item da lista;
if(listitem == 2) = Se selecionar o terceiro item da lista;
else = Se clicar no segundo botão, no caso Sair.
Como vocкs podem notar, o listitem comeзa do ZERO , e nгo do 1, entгo se comeзarem do 1, vocк estarб pulando o primeiro нtem...
Então, esta caixa de diálogo também não tem complicações! Basta pegar o jeito e você faz qualquer coisa com ela fácil fácil! Agora, o prуximo estilo de dialog, aliбs, os prуximos, serгm um pouco mais complicados, recomendo prestar muita atenзгo nas explicaзхes para entender!
DIALOG_STYLE_INPUT / DIALOG_STYLE_PASSWORD
Estes estilos de diálogo são aqueles que têm um espaço para o jogador escrever. Como vocês podem perceber, eu vou ensinar estas duas conversas ao mesmo tempo, mas porque? Porque elas são a mesma coisa , a diferença entre elas é porque a INPUT aparece o que o player está digitando, e a SENHA aparece aquelas bolinhas "•" no lugar do texto. Eu vou ensinar com os exemplos do INPUT , mas você pode substituir porPASSWORD se nгo quiser que apareça o texto que estб sendo digitado.
peão Код:if(dialogid == DIALOG_LISTA) = Chamamos as funções da DIALOG_CREDITOS;
if(response) = Se clicar no primeiro botão, no caso VER;
if(listitem == 0) = Se selecionar o primeiro item da lista;
if(listitem == 1) = Se selecionar o segundo item da lista;
if(listitem == 2) = Se selecionar o terceiro item da lista;
else = Se clicar no segundo botão, no caso Sair.
Como vocкs podem notar, o listitem comeзa do ZERO , e nгo do 1, entгo se comeзarem do 1, vocк estarб pulando o primeiro нtem...
Então, esta caixa de diálogo também não tem complicações! Basta pegar o jeito e você faz qualquer coisa com ela fácil fácil! Agora, o prуximo estilo de dialog, aliбs, os prуximos, serгm um pouco mais complicados, recomendo prestar muita atenзгo nas explicaзхes para entender!
DIALOG_STYLE_INPUT / DIALOG_STYLE_PASSWORD
Estes estilos de diálogo são aqueles que têm um espaço para o jogador escrever. Como vocês podem perceber, eu vou ensinar estas duas conversas ao mesmo tempo, mas porque? Porque elas são a mesma coisa , a diferença entre elas é porque a INPUT aparece o que o player está digitando, e a SENHA aparece aquelas bolinhas "•" no lugar do texto. Eu vou ensinar com os exemplos do INPUT , mas você pode substituir porPASSWORD se nгo quiser que apareça o texto que estб sendo digitado.
- Código:
// TOPO:
#define DIALOG_POR_TEXTO ID
CMD : dialoglist ( playerid )
{
ShowPlayerDialog ( playerid,DIALOG_POR_TEXTO,DIALOG_STYLE_INPUT, "ESCREVER NOME" , "Escreva seu nome para mostrar em uma mensбgem!" , "OK" , "Sair" ) ;
}
Explicando
ShowPlayerDialog = Função para chamar uma caixa de diálogo;
playerid = ID do player que vai ver um diálogo;
DIALOG_POR_TEXTO = ID da caixa de diálogo;
DIALOG_STYLE_INPUT = Estilo da caixa de diálogo, neste caso é a INPUT;
"ESCREVER NOME" = Esta primeira string é para o título;
"Escreva seu nome para mostrar em uma menságem!" = Texto da dialog.
Muito bem, aqui está fácil, mas agora vamos ver como utilizamos o que foi escrito na caixa de escrever :
peão Код:ShowPlayerDialog = Função para chamar uma caixa de diálogo;
playerid = ID do player que vai ver um diálogo;
DIALOG_POR_TEXTO = ID da caixa de diálogo;
DIALOG_STYLE_INPUT = Estilo da caixa de diálogo, neste caso é a INPUT;
"ESCREVER NOME" = Esta primeira string é para o título;
"Escreva seu nome para mostrar em uma menságem!" = Texto da dialog.
Muito bem, aqui está fácil, mas agora vamos ver como utilizamos o que foi escrito na caixa de escrever :
- Código:
[size=13][size=13]public OnDialogResponse ( playerid, dialogid, resposta, listitem, inputtext [ ] )
{
if ( dialogid == DIALOG_POR_TEXTO )
{
if ( response )
{
new Mensagem [ 128 ] ;
format ( Mensagem, sizeof ( Mensagem ) , "[ ! ] Você escreveu: %s " ,inputtext ) ;
SendClientMessage ( playerid, - 1 ,Mensagem );
}
else
{
SendClientMessage ( playerid, - 1 , "[ ! ] Você clicou em sair e o diálogo desapareceu!" ) ;
}
}
retorna 1 ;
}[/size][/size]
Explicando
if(dialogid == DIALOG_POR_TEXTO) = Chamamos as funções da DIALOG_INPUT;
if(response) = Se clicar no primeiro botão, no caso VER;
new Mensagem = Var criada para formatar o texto que irá aparecer;
format(Mensagem,sizeof(Mensagem),"[ ! ] Vocк escreveu: %s",inputtext = Formatamos o texto que irá aparecer, repare que eu coloquei o %s, serve para que no lugar disto apareça a mensagem, também repare que depois desta string eu coloquei inputtext, isso significa que eu quero que apareça o que foi escrito na dialog no lugar do %s; else = Se
clicar no segundo boto, no caso Sair.
, você precisa usar inputtext, e caso o local de escrever seja para escrever apenas nъmeros , use strval(inputtext) , que irá pegar os nъmeros que foram escritos. Então, se quiser colocar o inputtext numa string, use format , ou se quiser colocar o inputtext numa Variável , use variavel = strval(inputtext) . Nгo й trгo dificil, basta treinar!
C OMENTÁRIOS
Bem, para ser sincero, diálogos não é uma coisa difícil, isso requer treino e estudo, crie diálogos e vá treinando que você conseguirá fazer qualquer coisa com elas. Como diálogos são muito importantes, é uma das coisas que você mais precisa saber para criar um bom sistema! Espero que vocês tenham gostado, se tiverem perguntas deixem nos comentários! Também aceito críticas, deixe-nos comentários também. Se você acha que eu expliquei alguma coisa errada, também fale nos comentários que consertarei o mais breve possível! Obrigado a todos, e bons trabalhos!
Creditos: HeyHoLetsGo