Итак, начнем...
Диалоги бывают всего 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