Стили: 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 - вертикальная табуляция \' - одиночная кавычка \" - двойные кавычки \? - вопросительный знак
Ykrop86, При наличии public ShowStats(playerid, targetid), вставляем в него: [ pwn КОД паблика ShowStats ]public ShowStats(playerid, targetid) { new string[256]; new playername[MAX_PLAYER_NAME]; GetPlayerName(targetid, playername, sizeof(playername)); new m[4][256]; // Где 4 - количество всех параметров, отображаемых в статистике format(string, 128, "Статистика игрока %s", playername); // Заголовок m[0] = string; format(string, 128, "Уровень: %d", PlayerInfo[playerid][pLevel]);// Количество подобных строк должно соответствовать количеству значений "x" в переменной m[х][256]; m[1] = string; format(string, 128, "Деньги: %d", PlayerInfo[playerid][pCash]); m[2] = string; format(string, 128, "Админ уровень: %d", PlayerInfo[playerid][pAdmin]); m[3] = string; format(string, sizeof(string), "%s \n%s \n%s", m[1], m[2], m[3]); // Количество всех '\n%s' и ', m[х]' должно соответствовать количеству значений "x" в переменной m[х][256]; ShowPlayerDialog(targetid, 1, DIALOG_STYLE_LIST, m[0], string, "Ok", "Cancel"); Где 1 - ид окна return 1; } Ну и конечно же не забудем про public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) [ pwn КОД паблика public OnDialogResponse ]
А если такого паблика не существует ? Предполагаю что ответ будет : "создать" Где его создать ?
Подскажите пожалуйста как сделать 2 диалоговых окна,что бы в первом ввести ИД игрока, а во втором Сколько денег передать. На примере команды /pay или /transfer _________________________________________
Уже не надо, сам всё сделал.
Сообщение отредактировал Kirja - Пятница, 28.01.2011, 11:06
D:\Documents and Settings\Admin\Рабочий стол\servak\Server R2\RolePlay.pwn(17616) : error 017: undefined symbol "dialogid" D:\Documents and Settings\Admin\Рабочий стол\servak\Server R2\RolePlay.pwn(17616) : warning 215: expression has no effect D:\Documents and Settings\Admin\Рабочий стол\servak\Server R2\RolePlay.pwn(17616) : error 001: expected token: ";", but found "]" D:\Documents and Settings\Admin\Рабочий стол\servak\Server R2\RolePlay.pwn(17616) : error 029: invalid expression, assumed zero D:\Documents and Settings\Admin\Рабочий стол\servak\Server R2\RolePlay.pwn(17616) : fatal error 107: too many error messages on one line
Добавлено (03.04.2011, 08:12) --------------------------------------------- Ребят, напишите пожалуйста пример диалога( msg_box), где будет больше 3-5 строк. Любые вообще строки. Но не так: "тутвставьтекст", а нормально сделайте и сами проверьте. Я уже день мозг *** с этой херней.