Доступ к готовым решениям

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

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

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

Мануал Использование диалоговых окон

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

I'm Cobra

Специалист

Здравствуйте уважаемые пользователи Pawno-Info!​

Сегодня я просматривал тему "Какие уроки вы хотели бы видеть у нас на форуме?" и я увидел там один комментарий.
1)Название Урока: Урок по Диологам.
2)Суть урока: Все по диалогам виды и тд, что бы было написанно как сделать последовательность от 1 го диолога ко второму обход из 2 диолога в 1 вый
3)Что это даст: при создании чего либо новечки уже смогут орентироваться в кое чем
И вот решил создать тему с подробным объяснением и примерами использования диалогов.

Давайте начнем.

Типы диалогов.
Всего типов диалоговых окон , это:

1. DIALOG_STYLE_MSGBOX - Диалог, который показывает просто сообщение игроку.
2. DIALOG_STYLE_INPUT - Диалог с полем, в которое можно ввести что-либо.
3. DIALOG_STYLE_LIST - Диалог, со списком.
4. DIALOG_STYLE_PASSWORD - Диалог, с полем ввода пароля.

Также вместо ввода названия стиля диалогового окна можно использовать цифры 0, 1, 2, 3

0 ID - DIALOG_STYLE_MSGBOX - Диалог, который показывает просто сообщение игроку.
1 ID - DIALOG_STYLE_INPUT - Диалог с полем, в которое можно ввести что-либо.
2 ID - DIALOG_STYLE_LIST - Диалог, со списком.
3 ID - DIALOG_STYLE_PASSWORD - Диалог, с полем ввода пароля.

Функция, для вывода диалога:

ShowPlayerDialog(playerid, dialogid, style, caption[], info[], button1[], button2[])

playerid - ID игрока которому будет показан диалог.
dialogid - ID диалога.
style - Стиль диалогового окна.
caption[] - Заголовок диалога.
info[] - Текст диалога.
button1[] - Название левой кнопки диалога.
button2[] - Название правой кнопки диалога.

Пример использования:

PHP:
ShowPlayerDialog(playerid, 1, 0, "Заголовок", "Мы создали первое диалоговое окно\nPawno-Info", "Pawno", "Info");
\n - для перевода строки
\t - для табуляции

Теперь поработаем с командами:

DIALOG_STYLE_MSGBOX - Диалог, который показывает просто сообщение игроку.

PHP:
CMD:dialog(playerid, params[]) return ShowPlayerDialog(playerid, 1, 0, "Заголовок", "Мы создали первое диалоговое окно\nPawno-Info", "Pawno", "Info");
В public OnDialogResponse добавляем:

PHP:
case 1:
{
	if(response) // Это если игрок нажал на кнопку 'Pawno'
	{
		SendClientMessage(playerid, -1, "* Вы нажали на кнопку Pawno!");
	}
	else // Это если игрок нажал на кнопку 'Info'
	{
		SendClientMessage(playerid, -1, "* Вы нажали на кнопку Info!");
	}
}
Также можно сделать чтобы при нажатии кнопки выскакивал другой диалог:

PHP:
case 1:
{
	if(response) // Это если игрок нажал на кнопку 'Pawno'
	{
		ShowPlayerDialog(playerid, 2, 0, "Заголовок 2", ""Мы создали второе диалоговое окно\nPawno-Info, "Pawno", "Info");
	}
	else
	{
		ShowPlayerDialog(playerid, 3, 0, "Заголовок 3", ""Мы создали третье диалоговое окно\nPawno-Info, "Pawno", "Info");
	}
}
DIALOG_STYLE_INPUT - Диалог с полем, в которое можно ввести что-либо.

PHP:
CMD:dialog(playerid, params[]) return ShowPlayerDialog(playerid, 1, 1, "Заголовок", "Введите что-нибудь:", "Pawno", "Info");
В public OnDialogResponse добавляем:

PHP:
case 1:
{
	if(response)
	{
		if(!strlen(inputtext)) // Это проверка на то, ввел ли игрок что-нибудь
		{
			SendClientMessage(playerid, -1, "* Вы ничего не ввели!");
			ShowPlayerDialog(playerid, 1, 1, "Заголовок", "Введите что-нибудь:", "Pawno", "Info");
			return 1;
		}
		format(string, sizeof(string, "* Вы ввели: %s", inputtext);
		SendClientMessage(playerid, -1, string);
	}
	else // Это если игрок нажал на кнопку 'Info'
	{
		SendClientMessage(playerid, -1, "* Вы нажали на кнопку Info!");
	}
}
Также вместо вывода сообщений можно сделать диалоги.

DIALOG_STYLE_LIST - Диалог, со списком.

PHP:
CMD:dialog(playerid, params[]) return ShowPlayerDialog(playerid, 1, 2, "Заголовок", "1\n2", "Pawno", "Info");
В public OnDialogResponse добавляем:

PHP:
case 1:
{
	if(response)
	{
		switch(listitem)
		{
			case 0: // Это если игрок выбрал 1
			{
				SendClientMessage(playerid, -1, "* Вы выбрали цифру 1!");
			}
			case 1: // Это если игрок выбрал 2
			{
				SendClientMessage(playerid, -1, "* Вы выбрали цифру 2");
			}
		}
	}
}
Также можно использовать диалоги вместо сообщения.

DIALOG_STYLE_PASSWORD - Диалог, с полем ввода пароля.
Этот диалог отличается от DIALOG_STYLE_INPUT только тем что он скрывает то что вы вводите на •.

PHP:
CMD:dialog(playerid, params[]) return ShowPlayerDialog(playerid, 1, 3, "Заголовок", "Введите что-нибудь:", "Pawno", "Info");
В public OnDialogResponse добавляем:

PHP:
case 1:
{
	if(response)
	{
		if(!strlen(inputtext)) // Это проверка на то, ввел ли игрок что-нибудь
		{
			SendClientMessage(playerid, -1, "* Вы ничего не ввели!");
			ShowPlayerDialog(playerid, 1, 3, "Заголовок", "Введите что-нибудь:", "Pawno", "Info");
			return 1;
		}
		format(string, sizeof(string, "* Вы ввели: %s", inputtext);
		SendClientMessage(playerid, -1, string);
	}
	else // Это если игрок нажал на кнопку 'Info'
	{
		SendClientMessage(playerid, -1, "* Вы нажали на кнопку Info!");
	}
}
Ну думаю вы все поняли. Всем спасибо :)
Автор: I'm Cobra
© При копировании на посторонние ресурсы ссылка на pawno-info и автор должны быть написаны обязательно!
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу