Стили: 3 стиля диалогового окна. Стиль 0=DIALOG_STYLE_MSGBOX Стиль 1=DIALOG_STYLE_INPUT Стиль 2=DIALOG_STYLE_LIST
Примеры использования стилей: DIALOG_STYLE_MSGBOX(0) можно использовать для вывода сообщений. DIALOG_STYLE_INPUT(1) система регистрации и т.п. DIALOG_STYLE_LIST(2) Лист возможных опций
caption: Название диалога info: Текст в диалоговом окне button1: Первая кнопка например: Ок, Login button2: вторая кнопка .Пример:Cancel
Вот вам пример кода:
Code
if(strcmp(cmdtext, "/login", true) == 0) { new s[128]; new loginname[MAX_PLAYER_NAME]; GetPlayerName(playerid,loginname,MAX_PLAYER_NAME); format(s,sizeof(s),"Welcome again, %s!\n\nContiune to login!",loginname); ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Login Plase!",s,"Login","Cancel"); return 1; }
Добавка от меня а если вот так то текст будет по-русски:
Code
if(strcmp(cmdtext, "/login", true) == 0) { new s[128]; new loginname[MAX_PLAYER_NAME]; GetPlayerName(playerid,loginname,MAX_PLAYER_NAME); format(s,sizeof(s)," Здарова еще раз, %s!\n\n Зайди под своим ником!",loginname); ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT," Форма Логина!",s," Логин"," Отмена"); return 1; }
Проверено, пишет по-русски.. ладно продолжим туториал...Дальше вообще то отсутствует функция работы с диалоговым окном, т.е. что будет срабатывать если нажали на Ок.... в туториале который я переводил но шас попробую вам рассказать сам.
Вот паблик функции работы с ней:
Code
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
Сейчас расскажу здесь что означает: playerid: ну я думаю вы поняли что это ид игрок. dialogid: ид диалогового окна response: проверка нажал ли игрок на первую кнопку или на вторую listitem: если выбрали стиль окна DIALOG_STYLE_LIST ,то это будет выбор опции находящего в списке inputtext[] это то что игрок ввел в поле, например, в системе регистрации.
Сейчас сделаю скрипт диалогового окна на примере стиля DIALOG_STYLE_MSGBOX(0).
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == 0) { if(response) { //Здесь то что случится если игрок нажмет на кнопка1 } else { //А здесь если он нажмет кнопка2 } } }[/pwn]
Вот Вам не большой пример скрипта..
Кстати да при использования диалогового окна в случае необходимости нужно пользоваться: \b - backspae - забой \f - Form feed - перевод страницы \n - new line - новая строка \r - возврат каретки \t - табуляция \v - вертикальная табуляция \' - одиночная кавычка \" - двойные кавычки \? - вопросительный знак
ПАМАГИТЕ ПЛИЗ: Я зделал /drink в диалоге. диалог пашет но тока диалог и всё! http://www.4shared.com/document/6NsQvOh_/1_online.html - я добавил код в блакноте просматрите плиз и потскажитк!
Добавлено (11.11.2010, 17:00) --------------------------------------------- и подскажите плиз как мне зделать так чтобы когда потходиш к пикапу (вигледит тк"j")автоматически вилезло диалоговае окно с нескальками вариантами!?
{ if(pickupid == mesto) // Вместо mesto > pic { // Тут диалог!!! } return 1; }
Добавлено (13.11.2010, 22:43) --------------------------------------------- Помогите перевести на диалоги! Должно ипользоваться при конекте и когда игрок еще не зарегистрирован:
SiZMaN, Ты хочешь регистрацию в диолог перевести ? ________________ Ребят когда диологи создоешь нужно что нибудь добовлять ? ну там new, forward, define ??
всем ку.делаю правила для сервера. непойму что и куда вставлять чтобі если я непринимаю правила чтобы кик вот я тут что то сделал и незнаю куда присунуть кик
Makar_Pogorelov, Создавай команду, при её вводе вызывай диалоговое окно, в этом диалоговом окне сделай пункты, "Статистика игрока", что тебе там еще надо..Ну и допустим при нажатии на "Статистика игрока" показывай статистику.
Makar_Pogorelov, У тебя GF? если да, то делай так:
В public OnPlayerCommandText вставь: [cut=Код]if(strcmp(cmd, "/command", true) == 0) { // 888 - ID диалога , DIALOG_STYLE_LIST - Стиль диалога ShowPlayerDialog(playerid, 888, DIALOG_STYLE_LIST, "Выберите пункт", "Статистика\nЧто-то другое", "Выбрать", "Отмена"); return 1; }[/cut]
И в public OnDialogResponse вставь:
[cut=Код]if(dialogid == 888) { if(response) { if(listitem == 0) { ShowStats(playerid,playerid); // Действие которое будет выполняться при выборе пункта "Статистика" } if(listitem == 1) { SendClientMessage(playerid, 0x33AA33AA, "Что-то другое"); // Действие которое будет выполняться при выборе пункта "Что-то другое" } } }[/cut]
Сообщение отредактировал AdrenalineRush - Четверг, 02.12.2010, 23:20
Подскажите пожалуста как делать диалоги DIALOG_STYLE_INPUT ?? ХОЧУ СДЕЛАТЬ ЧТО БЫ МОЖНО БЫЛО ПИСАТЬ СВОЕЙ ИМЯ И ФАМИЛИЯ. нУ НАПРИМЕР РЕГАЕШЬСЯ И ТЕБЕ нужно придумать имя и фамилию только не те которые ты написал в сампе. а когда заходишь на сервер после введения пароля.
Добавлено (04.12.2010, 19:35) --------------------------------------------- мдэ... проошло 7 часов и не одного ответа.