Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Использование различных диалогов

Статус
В этой теме нельзя размещать новые ответы.

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[]	Название второй (правой) кнопки.
Теперь немного о стилях диалогового окна(style):
Всего существует 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,"Заголовок","Введите текст в поле","Ок","Отмена");
Это мы создали только показ диалога. Что бы он работал в паблик OnDialogResponse вставляем следующий код:
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;
Теперь то что мы ввели в поле отобразится в чате. При нажатии кнопки Отмена мы получим сообщение "Вы отменили действие".

Урок писал сам, совсем немного взял с викки. От спасибки и + не откажусь))
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу