Итак, начнем...
Диалоги бывают всего 4 вида, это:
1) Диалог, который показывает просто сообщение игроку
Ид: 0
Название: DIALOG_STYLE_MSGBOX
Скриншот:

Код диалога:
ShowPlayerDialog(playerid, 8008 , DIALOG_STYLE_MSGBOX, "Тут название", "Тут текст", "Кнопка1", "Кнопка2");
2) Диалог с полем, в которое можно ввести что-либо
Ид: 1
Название: DIALOG_STYLE_INPUT
Скриншот:

Код диалога:
ShowPlayerDialog(playerid,8009,DIALOG_STYLE_INPUT,"Тут название","Тут ваш текст","Кнопка1","Кнопка2");
3) Диалог, со списком
Ид: 2
Название: DIALOG_STYLE_LIST
Скриншот:

Код диалога:
ShowPlayerDialog(playerid, 8007, DIALOG_STYLE_LIST, "Тут название", "Пункт 1\nПункт 2", "Кнопка1", "Кнопка2");
4) Диалог, с полем ввода(используется для ввода пароля) он просто шифрует введеные символы точками
Внимание: диалог был добавлен в версию клиента samp 0.3d (я его не тестировал, поэтому и скрин с офф сайта)
Ид: 3
Название: DIALOG_STYLE_PASSWORD
Скриншот:

Код диалога:
ShowPlayerDialog(playerid, 8008, DIALOG_STYLE_PASSWORD, "Тут название", "Тут текст(можете написать 'Введите пароль')", "Кнопка1", "Кнопка2");
Использование:
• Диалог 1 ( DIALOG_STYLE_MSGBOX )
if(strcmp(cmd, "/test", true) == 0)
{
ShowPlayerDialog(playerid, 8008 , DIALOG_STYLE_MSGBOX, "Тут название", "Тут текст", "Кнопка1", "Кнопка2");
return 1;
}
// И в паблик OnDialogResponse:
if(dialogid == 8008) // 8008 это ид диалога( как бы порядковый )
{
if(response)
{
// действие если игрок нажал на кнопку 1
SendClientMessage(playerid, COLOR_GRAD5, "Вы нажали на кнопку1!");
}
else
{
// действие если игрок нажал на кнопку 2
SendClientMessage(playerid, COLOR_GRAD5, "Вы нажали на кнопку2!");
}
}
• Диалог 2 ( DIALOG_STYLE_INPUT )
if(strcmp(cmd, "/test", true) == 0)
{
ShowPlayerDialog(playerid,8009,DIALOG_STYLE_INPUT,"Тут название","Тут ваш текст","Кнопка1","Кнопка2");
return 1;
}
// И в паблик OnDialogResponse:
if(dialogid == 8009) //
{
if(response)
{
if(!strlen(inputtext)) // этта проверка проверяет, если игрок ничего не ввел в окно, тогда действие
{
SendClientMessage(playerid, COLOR_GRAD5, "Вы ничего не ввели!");
ShowPlayerDialog(playerid,8009,DIALOG_STYLE_INPUT,"Тут название","Тут ваш текст","Кнопка1","Кнопка2");
return 1;
}
// а если игрок что то ввел тогда:
format(string, sizeof(string), "Вы ввели в окно: %s", inputtext);
SendClientMessage(playerid, COLOR_GRAD5, string);// это будет выводить в чат, то, что вы ввели в окно диалога
}
else
{
// тут если он нажал на кнопку 2
SendClientMessage(playerid, COLOR_GRAD5, "Вы нажали на кнопку2!");
}
}
• Диалог 3 ( DIALOG_STYLE_LIST )
if(strcmp(cmd, "/test", true) == 0)
{
ShowPlayerDialog(playerid, 8007, DIALOG_STYLE_LIST, "Тут название", "Пункт 1\nПункт 2", "Кнопка1", "Кнопка2");
return 1;
}
// И в паблик OnDialogResponse:
if(dialogid == 8007) //
{
if(response)
{
if(listitem == 0)
{
SendClientMessage(playerid, COLOR_GRAD5, "Вы выбрали пункт1!");
}
if(listitem == 1)
{
SendClientMessage(playerid, COLOR_GRAD5, "Вы выбрали пункт2!");
}
}
}
• Диалог 4 ( DIALOG_STYLE_PASSWORD )
if(strcmp(cmd, "/test", true) == 0)
{
ShowPlayerDialog(playerid, 8008, DIALOG_STYLE_PASSWORD, "Тут название", "Тут текст(можете написать 'Введите пароль')", "Кнопка1", "Кнопка2");
return 1;
}
// И в паблик OnDialogResponse:
if(dialogid == 8008) //
{
if(response)
{
if(!strlen(inputtext)) // этта проверка проверяет, если игрок ничего не ввел в окно, тогда действие
{
SendClientMessage(playerid, COLOR_GRAD5, "Вы ничего не ввели!");
ShowPlayerDialog(playerid, 8008, DIALOG_STYLE_PASSWORD, "Тут название", "Тут текст(можете написать 'Введите пароль')", "Кнопка1", "Кнопка2");
return 1;
}
// а если игрок что то ввел тогда:
format(string, sizeof(string), "Ваш пароль: %s", inputtext);
SendClientMessage(playerid, COLOR_GRAD5, string);// это будет выводить в чат, то, что вы ввели в окно диалога
}
else
{
// тут если он нажал на кнопку 2
SendClientMessage(playerid, COLOR_GRAD5, "Вы нажали на кнопку2!");
}
}
Автор: Mike
© При копировании на посторонние ресурсы ссылка на pawn-wiki.ru и автор должны быть написаны обязательно!
Сообщение отредактировал Romzes: 30 апреля 2018 - 16:53
Вход
Регистрация
Помощь

Тема закрыта












