07.01.2013, 00:41
(
Последний раз редактировалось HeyHoLetsGo; 08.01.2013 в 22:49.
)
INTRODUЗГO
Iae manolada! Suaves? Bom, neste tutorial, eu vou ensinar a usar as dialogs, todos os estilos! Que sгo MSGBOX, 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.
TUTORIAL
Bom, para iniciar o tutorial, devo explicar que para criar uma dialog, precisa-se definir o ID dela no topo do GM/FS! Da seguinte maneira:
Funзгo da dialog:
Certo, entгo vamos comeзar o tutorial...
Para comeзar vou ensinar a criar o estilo de dialog mais sнmples 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 dialog:
Explicando
ShowPlayerDialog = Funзгo para chamar uma dialog;
playerid = ID do jogador que vai ver a dialog;
DIALOG_CREDITOS = ID da dialog;
DIALOG_STYLE_MSGBOX = Estilo da dialog, 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 dialog!
Sнmples! 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:
Explicando
public OnDialogResponse = Chamamos a callback que para fazer as funзхes das dialogs;
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 as dialogs tenha apenas UM botгo, deixe a string do botгo 2 em branco! Exemplo:
Sнmples esta dialog... prestando atenзгo neste tutorial vocк vai aprender sem problemas!
DIALOG_STYLE_LIST
Bom, este estilo de dialog й 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:
Explicando
ShowPlayerDialog = Funзгo para chamar uma dialog;
playerid = ID do player que vai ver a dialog;
DIALOG_LISTA = ID da dialog;
DIALOG_STYLE_LIST = Estilo da dialog, neste caso й a LIST;
"ESCOLHA UMA OPЗГO" = Esta primeira string й para o tнtulo;
"Crйditos\nFуrum\nMensбgem" = Lista de opзхes
Bem, como vocкs puderam 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 а esta lista:
Na callback OnDialogResponse:
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 dialog 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 dialog sгo aqueles que tem um espaзo para o jogador escrever. Como vocкs podem perceber, eu vou ensinar estas duas dialogs ao mesmo tempo, mas porque? Porque elas sгo a mesma coisa, a diferenзa entre elas й porque a INPUT aparece oque o player estб digitando, e a PASSWORD aparece aquelas bolinhas "•" no lugar do texto. Eu vou ensinar com os exemplos do INPUT, mas vocк pode substituir por PASSWORD se nгo quiser que apareзa o texto que estб sendo digitado.
Explicando
ShowPlayerDialog = Funзгo para chamar uma dialog;
playerid = ID do player que vai ver a dialog;
DIALOG_POR_TEXTO = ID da dialog;
DIALOG_STYLE_INPUT = Estilo da dialog, 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, atй aqui estб facil, mas agora vamos ver como utilizamos oque foi escrito na caixa de escrever:
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, isto serve para que no lugar disto apareзa a mensagem, tambйm repare que depois desta string eu coloquei inputtext, isto significa que eu quero que apareзa oque foi escrito na dialog no lugar do %s;
else = Se clicar no segundo botгo, no caso Sair.
Bem, й isto, para pegar oque foi escrito na dialog, 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 foi escrito. 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 й tгo dificil, basta treinar!
COMENTБRIOS
Bem, para ser sincero, dialogs nгo й uma coisa difнcil, isto requer treino e estudo, crie dialogs e vб treinando que vocк conseguirб fazer qualquer coisa com elas. As dialogs 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!
Iae manolada! Suaves? Bom, neste tutorial, eu vou ensinar a usar as dialogs, todos os estilos! Que sгo MSGBOX, 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.
TUTORIAL
Bom, para iniciar o tutorial, devo explicar que para criar uma dialog, precisa-se definir o ID dela no topo do GM/FS! Da seguinte maneira:
pawn Код:
#define DIALOG_NOME [ID]
pawn Код:
ShowPlayerDialog(playerid,DIALOG_ID,ESTILO_DA_DIALOG,"TITULO","MENSAGEM","BOTAO 1","BOTAO 2");
Para comeзar vou ensinar a criar o estilo de dialog mais sнmples 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 dialog:
pawn Код:
// 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")
}
ShowPlayerDialog = Funзгo para chamar uma dialog;
playerid = ID do jogador que vai ver a dialog;
DIALOG_CREDITOS = ID da dialog;
DIALOG_STYLE_MSGBOX = Estilo da dialog, 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 dialog!
Sнmples! 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:
pawn Код:
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!");
}
}
return 1;
}
Explicando
public OnDialogResponse = Chamamos a callback que para fazer as funзхes das dialogs;
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 as dialogs tenha apenas UM botгo, deixe a string do botгo 2 em branco! Exemplo:
pawn Код:
ShowPlayerDialog(playerid,DIALOG_ID,DIALOG_STYLE,"TITULO","MENSAGEM","BOTГO 1","");
DIALOG_STYLE_LIST
Bom, este estilo de dialog й 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:
pawn Код:
// TOPO:
#define DIALOG_LISTA ID
CMD:dialoglist(playerid)
{
ShowPlayerDialog(playerid,DIALOG_LISTA,DIALOG_STYLE_LIST,"ESCOLHA UMA OPЗГO","Crйditos\nFуrum\nMensбgem","VER","Sair");
}
ShowPlayerDialog = Funзгo para chamar uma dialog;
playerid = ID do player que vai ver a dialog;
DIALOG_LISTA = ID da dialog;
DIALOG_STYLE_LIST = Estilo da dialog, neste caso й a LIST;
"ESCOLHA UMA OPЗГO" = Esta primeira string й para o tнtulo;
"Crйditos\nFуrum\nMensбgem" = Lista de opзхes
Bem, como vocкs puderam 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 а esta lista:
Na callback OnDialogResponse:
pawn Код:
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(listitem == 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 a dialog desapareceu!");
}
return 1;
}
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 dialog 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 dialog sгo aqueles que tem um espaзo para o jogador escrever. Como vocкs podem perceber, eu vou ensinar estas duas dialogs ao mesmo tempo, mas porque? Porque elas sгo a mesma coisa, a diferenзa entre elas й porque a INPUT aparece oque o player estб digitando, e a PASSWORD aparece aquelas bolinhas "•" no lugar do texto. Eu vou ensinar com os exemplos do INPUT, mas vocк pode substituir por PASSWORD se nгo quiser que apareзa o texto que estб sendo digitado.
pawn Код:
// 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");
}
ShowPlayerDialog = Funзгo para chamar uma dialog;
playerid = ID do player que vai ver a dialog;
DIALOG_POR_TEXTO = ID da dialog;
DIALOG_STYLE_INPUT = Estilo da dialog, 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, atй aqui estб facil, mas agora vamos ver como utilizamos oque foi escrito na caixa de escrever:
pawn Код:
public OnDialogResponse(playerid, dialogid, response, 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 a dialog desapareceu!");
}
}
return 1;
}
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, isto serve para que no lugar disto apareзa a mensagem, tambйm repare que depois desta string eu coloquei inputtext, isto significa que eu quero que apareзa oque foi escrito na dialog no lugar do %s;
else = Se clicar no segundo botгo, no caso Sair.
Bem, й isto, para pegar oque foi escrito na dialog, 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 foi escrito. 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 й tгo dificil, basta treinar!
COMENTБRIOS
Bem, para ser sincero, dialogs nгo й uma coisa difнcil, isto requer treino e estudo, crie dialogs e vб treinando que vocк conseguirб fazer qualquer coisa com elas. As dialogs 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!