Pasha_Sharabura
Компетентный
Здравствуйте пользователи портала! Когда я только начинал обучаться Pawno я очень надолго завис на диалогах, по этому хочу преподать урок для новичков, как правильно использовать различные диалоги.
Для начала осмотрим функцию показа диалога ShowPlayerDialog
Параметры функции:
PHP:
(playerid, dialogid, style, caption[], info[], button1[], button2[])
playerid ID игрока, которому будет показан диалог.
dialogid Уникальный ID диалога. Используется в OnDialogResponse. При значении, равном -1, любой текущий диалог будет скрыт с экрана игрока.
style Стиль диалогового окна.
caption[] Заголовок окна.
info[] Текст самого диалога. Можно использовать \n для перевода строки и \t для табуляции.
button1[] Название первой (левой) кнопки диалога.
button2[] Название второй (правой) кнопки.
Всего существует 4 стиля.
1)Первый стиль: DIALOG_STYLE_MSGBOX.
DIALOG_STYLE_MSGBOX - это обычный диалог с двумя кнопками.
Пример использования:
PHP:
ShowPlayerDialog(playerid,1876,DIALOG_STYLE_MSGBOX,"DIALOG_STYLE_MSGBOX","Сообщение для игрока","Кнопка 1","Кнопка 2");
2) Второй стиль: DIALOG_STYLE_INPUT.
DIALOG_STYLE_INPUT - диалог с полем для ввода.
Пример использования:
PHP:
ShowPlayerDialog(playerid,1877,DIALOG_STYLE_INPUT,"DIALOG_STYLE_INPUT","Сообщение для игрока","Кнопка 1","Кнопка 2");
3)Третий стиль: DIALOG_STYLE_LIST
DIALOG_STYLE_LIST - список из нескольких элементов.
Пример использования:
PHP:
ShowPlayerDialog(playerid,1878,DIALOG_STYLE_LIST,"DIALOG_STYLE_LIST","Элемент 0\nЭлемент 1\nЭлемент 2\nЭлемент 3","Кнопка 1","Кнопка 2");
4) Ну и последний стиль, который разработчики добавили в 0.3d это DIALOG_STYLE_PASSWORD.
DIALOG_STYLE_PASSWORD - позволяет игрокам вводить пароль не раскрывая его.
Пример использования:
PHP:
ShowPlayerDialog(playerid,1879,DIALOG_STYLE_PASSWORD,"DIALOG_STYLE_PASSWORD","Диалог позволит вводить пароль без отображения","Кнопка 1","Кнопка 2");
Теперь расскажу о паблике в котором размещаются опции диалогов.
Это public OnDialogResponse
Данная функция вызывается сервером, когда игрок выбирает любую кнопку/пункт в созданном диалоге ShowPlayerDialog.
Параметры паблика:
PHP:
(playerid, dialogid, response, listitem, inputtext[])
playerid ID игрока, который совершил действие с диалогом
dialogid ID диалога, в котором игрок совершил действие.
response Возвращает 1 - при выборе первой кнопки и 0 при выборе второй кнопки
listitem ID выбранного пункта из списка
inputtext[] Текст, введенный игроком в поле ввода или текст из выбранного пункта списка
Создадим простой диалог с вводом текста(DIALOG_STYLE_INPUT)
PHP:
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Заголовок","Введите текст в поле","Ок","Отмена");
PHP:
if(dialogid == 1)
{
if(!response) SendClientMessage(playerid, 0xFFFFFFFF, "Вы отменили действие!");
new message[196];
format(message, sizeof(message), "Вы ввели: %s", inputtext);
SendClientMessage(playerid, 0xFFFFFFFF, message);
return 1;
}
return 0;
Урок писал сам, совсем немного взял с викки. От спасибки и + не откажусь))
Последнее редактирование:
