[Урок] Диалоги
|
|
[CM]iNiko |
Дата: Пятница, 12.02.2016, 17:27 | Сообщение # 1
|
Бывалый
Сообщений: 397
Статус: Offline
|
Всем привет,надеюсь такого урока не было ещё тут,сейчас я вам расскажу о типах диалогов,и что с ними можно делать. И так,есть такие виды диалогов:
Код DIALOG_STYLE_LIST DIALOG_STYLE_INPUT DIALOG_STYLE_MXGBOX DIALOG_STYLE_PASSWORD Сейчас пройдёмся по каждому подробно: DIALOG_STYLE_LIST - диалог для вывода списка нужных функций или команд. Ко всем командам: Для DC_CMD:
Код CMD:dialog(playerid) { ShowPlayerDialog(playerid,555,DIALOG_STYLE_LIST,"Пример диалога","Содержимое списка 1\nСодержимое списка 2\nСодержимое списка 3","Кнопка 1","Кнопка 2"); return 1; }
Стандартный командный процессор:
Код if(strcmp(cmd, "/test", true) == 0) { ShowPlayerDialog(playerid, 8007, DIALOG_STYLE_LIST, "Пример диалога","Содержимое списка 1\nСодержимое списка 2\nСодержимое списка 3","Кнопка 1","Кнопка 2"); return 1; } Информация: У вас в моде паблик отвечающий за диалоги может называться по другому И в Код public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) вставляем следующий код: Информация: Измените id диалога,что бы он не совпадал уже с существующими
Код { if(dialogid == 555) { if(response) { if(listitem == 0) return SendClientMessage(playerid,0x88AA88AA,"Вы нажали на кнопку 'Содержимое списка 1'"); if(listitem == 1) return SendClientMessage(playerid,0x88AA88AA,"Вы нажали на кнопку 'Содержимое списка 2'"); if(listitem == 2) return SendClientMessage(playerid,0x88AA88AA,"Вы нажали на кнопку 'Содержимое списка 3'");
} else { SendClientMessage(playerid,0x88AA88AA,"Вы нажали на 'Кнопка 2' либо Esc"); return 1; } } return 1; } Выглядит данный диалог таким образом:
Идём дальше. DIALOG_STYLE_MSGBOX - данный диалог используется для красивого вывода информации,дабы не создавать лишний флуд в чат игроку. Ко всем командам: Для DC_CMD:
Код CMD:dialog1(playerid) { ShowPlayerDialog(playerid,556,DIALOG_STYLE_MSGBOX,"Пример диалога","Содержимое(текст)","Кнопка 1","Кнопка 2"); return 1; } Стандартный командный процессор:
Код f(strcmp(cmd, "/test", true) == 0) { ShowPlayerDialog(playerid, 556 , DIALOG_STYLE_MSGBOX, "Пример диалога", "Содержимое(текст)", "Кнопка1", "Кнопка2"); return 1; }
Информация: У вас в моде паблик отвечающий за диалоги может называться по другому И в Код public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) вставляем следующий код: Информация: Измените id диалога,что бы он не совпадал уже с существующими
Код public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == 556) { if(response) { SendClientMessage(playerid,0x88AA88AA,"Вы нажали на 'Кнопка 1' либо Enter"); return 1; } else { SendClientMessage(playerid,0x88AA88AA,"Вы нажали на 'Кнопка 2' либо Esc"); return 1; } } return 1; }
Данный диалог выглядит таким образом:
DIALOG_STYLE_INPUT и DIALOG_STYLE_PASSWORD одинаковы по своей сути. Отличаются они тем,что DIALOG_STYLE_PASSWORD - скрывает вводимые символы в диалоговое окно,вместо набранного текста появятся звёздочки,а DIALOG_STYLE_INPUT - не скрывает вводимые вами символы. Ко всем командам: Для DC_CMD:
Код CMD:dialog2(playerid) { ShowPlayerDialog(playerid,557,DIALOG_STYLE_INPUT,"Пример диалога","Содержимое(текст)","Кнопка 1","Кнопка 2"); return 1; } Для стандартного командного процессора:
Код if(strcmp(cmd, "/test", true) == 0) { ShowPlayerDialog(playerid,558,DIALOG_STYLE_INPUT,"Пример диалога","Содержимое(текст)","Кнопка1","Кнопка2"); return 1; } Информация: У вас в моде паблик отвечающий за диалоги может называться по другому И в Код public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) вставляем следующий код: Информация: Измените id диалога,что бы он не совпадал уже с существующими
Код
if(dialogid == 557) { if(response) { new str[100]; format(str,sizeof(str),"Вы ввели: %s",inputtext); SendClientMessage(playerid,0x88AA88AA,str); return 1; } else { SendClientMessage(playerid,0x88AA88AA,"Вы нажали на 'Кнопка 2' либо Esc"); return 1; } } return 1; }
Выглядит данный диалог таким образом:
Диалоги которые ввели в 0.3.7 версии В новой версии SA:MP были введены два новых видов диалогов а именно:
Код DIALOG_STYLE_TABLIST DIALOG_STYLE_TABLIST_HEADERS DIALOG_STYLE_TABLIST - данный диалог зачастую используется на различных серверах при покупке чего либо,где указано название,цену и количество которое продастся вам. Ко всем командам: Для DC_CMD:
Код CMD:dialog5(playerid) { ShowPlayerDialog(playerid, 1337, DIALOG_STYLE_TABLIST, "Покупка оружия", "Дигл\t$5000\t100\n\ Дробовик\t$5000\n100\n\ Пистолет\t$1000\t50", // и т. д. "Выбрать", "Отмена"); } Для стандартного командного процессора:
Код if(strcmp(cmd, "/test", true) == 0) { ShowPlayerDialog(playerid, 1337, DIALOG_STYLE_TABLIST, "Покупка оружия", "Дигл\t$5000\t100\n\ Дробовик\t$5000\n100\n\ Пистолет\t$1000\t50", // и т. д. "Выбрать", "Отмена"); } Выглядит данный диалог таким образом:
DIALOG_STYLE_TABLIST_HEADERS: - выглядит так-же как и предыдущий тип диалога,но в этом диалоге вы можете указать название чего-либо над диалоговым окном. Ко всем командам: Для DC_CMD:
Код CMD:dialog6(playerid) { ShowPlayerDialog(playerid, 777, DIALOG_STYLE_TABLIST_HEADERS, "Покупка оружия", "Оружие\tЦена\tпатроны\n\ Дигл\t$5000\t100\n\ Дробовик\t$5000\t100\n\ Пистолет\t$1000\t50", // и т. д. "Выбрать", "Отмена"); } Для стандартного командного процессора:
Код if(strcmp(cmd, "/test", true) == 0) { ShowPlayerDialog(playerid, 777, DIALOG_STYLE_TABLIST_HEADERS, "Покупка оружия", "Оружие\tЦена\tпатроны\n\ Дигл\t$5000\t100\n\ Дробовик\t$5000\t100\n\ Пистолет\t$1000\t50", // и т. д. "Выбрать", "Отмена"); } Выглядит данный диалог таким образом:
Теперь объясню некоторые вещи: \n - значит перенос строки; \t - табуляция; 777 - id диалога. Так-же у вас в моде может вместо Код if(dialogid == тут будет id диалога) МОЖЕТ использоваться ,если у вас в моде используется то просто замените Код if(dialogid == тут будет id диалога) на
Задавайте вопросы,рад буду помочь всем.
Всё случается в этой жизни.
Сообщение отредактировал [CM]iNiko - Воскресенье, 10.04.2016, 09:05 |
|
|
|
Asan2012 |
Дата: Пятница, 12.02.2016, 17:42 | Сообщение # 2
|
Боец
Сообщений: 68
Статус: Offline
|
Написал свой первый диалог, спс
|
|
|
|
[CM]iNiko |
Дата: Воскресенье, 14.02.2016, 10:19 | Сообщение # 3
|
Бывалый
Сообщений: 397
Статус: Offline
|
Подниму тему
Всё случается в этой жизни.
|
|
|
|
Quizzes |
Дата: Среда, 02.03.2016, 16:42 | Сообщение # 4
|
Новичок
Сообщений: 2
Статус: Offline
|
Спасибо, за такой подробный урок. Молодец, что не поленился :З
|
|
|
|
[CM]iNiko |
Дата: Среда, 02.03.2016, 17:38 | Сообщение # 5
|
Бывалый
Сообщений: 397
Статус: Offline
|
Цитата Quizzes ( ) Спасибо, за такой подробный урок. Молодец, что не поленился :З Благодарю.
Всё случается в этой жизни.
|
|
|
|
Укроп |
Дата: Среда, 09.03.2016, 19:53 | Сообщение # 6
|
Любитель
Сообщений: 31
Статус: Offline
|
Сойдет.
)
|
|
|
|
[СM]Myренок |
Дата: Четверг, 10.03.2016, 01:09 | Сообщение # 7
|
Боец
Сообщений: 71
Статус: Offline
|
Все норм,годнота !
|
|
|
|
[CM]iNiko |
Дата: Среда, 30.03.2016, 20:40 | Сообщение # 8
|
Бывалый
Сообщений: 397
Статус: Offline
|
Цитата Укроп ( ) Сойдет.
Цитата Укроп ( ) Все норм,годнота ! Спасибо,старался же Добавлено (30.03.2016, 20:40) --------------------------------------------- Подниму тему,ведь она полезная для новичков как ни как.
Всё случается в этой жизни.
|
|
|
|
[CM]Планокур |
Дата: Понедельник, 04.04.2016, 02:58 | Сообщение # 9
|
实现你的目标
Сообщений: 433
Статус: Offline
|
Очень хорошо оформил тему, спасибо за урок, плюс твой)
|
|
|
|
[CM]iNiko |
Дата: Понедельник, 04.04.2016, 17:43 | Сообщение # 10
|
Бывалый
Сообщений: 397
Статус: Offline
|
Цитата [CM]Планокур ( ) Очень хорошо оформил тему, спасибо за урок, плюс твой)
Спасибо,мне очень приятно
Всё случается в этой жизни.
|
|
|
|
Shaga228 |
Дата: Вторник, 05.04.2016, 12:03 | Сообщение # 11
|
|
Спасибо, научился
|
|
|
|
[CM]iNiko |
Дата: Суббота, 09.04.2016, 15:42 | Сообщение # 12
|
Бывалый
Сообщений: 397
Статус: Offline
|
Цитата Shaga228 ( ) Спасибо, научился Всегда рад помочь Добавлено (09.04.2016, 15:42) --------------------------------------------- подниму полезный урок
Всё случается в этой жизни.
|
|
|
|
Rider405402 |
Дата: Суббота, 09.04.2016, 18:51 | Сообщение # 13
|
Любитель
Сообщений: 47
Статус: Offline
|
Ты откуда маленький его копировал?
|
|
|
|
[CM]iNiko |
Дата: Воскресенье, 10.04.2016, 08:56 | Сообщение # 14
|
Бывалый
Сообщений: 397
Статус: Offline
|
Цитата Rider405402 ( ) Ты откуда маленький его копировал? Маленький? О боги,смотрите "взрослый" в теме. Максимум,что я как ты написал "копировал" взял уже готовые картинки ._.
Всё случается в этой жизни.
|
|
|
|
[CM]iNiko |
Дата: Пятница, 06.05.2016, 09:25 | Сообщение # 15
|
Бывалый
Сообщений: 397
Статус: Offline
|
Цитата Coober ( ) Вот как раз диалогами занят, спасибо как раз кстати ) Всегда пожалуйста
Всё случается в этой жизни.
|
|
|
|