← Ferramentas
Criador de diálogos
Escolha um estilo, escreva o título, o texto e os botões, teste o diálogo como um jogador faria e copie o código que o mostra e trata a resposta.
Cada linha é um item, que {RRGGBB} colore.
Prévia
Clique numa linha para escolhê-la e num botão (ou dê um clique duplo) para responder. As setas, Enter e Esc funcionam como no jogo.
Teleports
| Los Santos |
| San Fierro |
| Las Venturas |
| Mount Chiliad |
| Back |
Aperte um botão na prévia para ver o que o OnDialogResponse recebe.
Dentro do que o cliente aceita.
Código
Código para
O SA-MP e o open.mp aceitam este código do jeito que está: a escolha só muda os includes com que ele é compilado.
Mostrar o diálogo
#define DIALOG_TELEPORTS 3
ShowPlayerDialog(playerid, DIALOG_TELEPORTS, DIALOG_STYLE_LIST, "Teleports", "Los Santos\nSan Fierro\nLas Venturas\n{FFFF00}Mount Chiliad\n{AAAAAA}Back", "Go", "Close");Tratar a resposta (se você já tem um OnDialogResponse, adicione este if a ele)
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if (dialogid == DIALOG_TELEPORTS)
{
if (!response)
{
// "Close" or Esc
return 1;
}
switch (listitem)
{
case 0: // Los Santos
{
}
case 1: // San Fierro
{
}
case 2: // Las Venturas
{
}
case 3: // Mount Chiliad
{
}
case 4: // Back
{
}
}
return 1;
}
return 0;
}Cole um ShowPlayerDialog para editá-lo
Como funcionam os diálogos do SA-MP
- Um jogador vê um diálogo por vez: ShowPlayerDialog substitui o que estiver aberto, e um ID -1 o fecha.
- O OnDialogResponse recebe response 1 pelo botão esquerdo ou Enter, e 0 pelo botão direito ou Esc, mesmo quando não há botão direito.
- Numa lista, listitem é a linha escolhida, a partir de 0, e inputtext o texto dela sem cores. Numa tabela é o texto da primeira coluna, e a linha de cabeçalhos não conta.
- Os compiladores de Pawn recusam linhas muito longas, então um texto longo é montado em partes com strcat, numa string grande o bastante para ele todo.