 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
[Tutorial]Создание Диалогового окна
| |
| Dima-kun | Дата: Четверг, 29.10.2009, 22:47 | Сообщение # 1 |
|
Группа:
Разработчики
Сообщений: 6269
Награды: 72
Репутация: 3512
Замечания: 0%
Статус: 
| Урок по созданию диалогового окна в sa-mp 0.3 Автор:BlackWolfA Перевод:DizeL[ZR] Функция: Code ShowPlayerDialog(playerid, dialogid, style, caption[], info[], button1[], button2[]); Параметры: Code playerid, dialogid, style, caption[], info[], button1[], button2[] dialogid: например 1-2-3-4-5... и т.д Стили: 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[]) Параметры: Code playerid, dialogid, response, listitem, inputtext[] Сейчас расскажу здесь что означает: playerid: ну я думаю вы поняли что это ид игрок. dialogid: ид диалогового окна response: проверка нажал ли игрок на первую кнопку или на вторую listitem: если выбрали стиль окна DIALOG_STYLE_LIST ,то это будет выбор опции находящего в списке inputtext[] это то что игрок ввел в поле, например, в системе регистрации. Сейчас сделаю скрипт диалогового окна на примере стиля DIALOG_STYLE_MSGBOX(0). [pwn]public OnPlayerCommandText(playerid,cmdtext[]) { if(strcmp(cmdtext,"/okno",true)==0) {ShowPlayerDialog(playerid,0,DIALOG_STYLE_MSGBOX,"Заголовок","Текст информации","Кнопка1"," Кнопка2"); return 1;}return 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 - вертикальная табуляция \' - одиночная кавычка \" - двойные кавычки \? - вопросительный знак
Мои работы: [INC] Сборник d_includes [LAST],[FS] New Demage Effect,[FS]Авто-Поворотники, [FS]mp3player,[FS] Fun Chat Game,[FS] Car Buy Syst,[FS] Anti-AirBrk,[INC] d_setpos, [GM] Game Move v0.1,[FS+include]Super-Armour [0.3z],[FS + Include] Multi Checkpoints
Сообщение отредактировал DizeL-ZR- - Пятница, 30.10.2009, 15:20 |
| |
|
|
| G1F | Дата: Четверг, 13.01.2011, 18:07 | Сообщение # 151 |
|
Новенький
Группа:
Пользователи
Сообщений: 54
Награды: 0
Город: dsdddddd
Репутация: 0
Замечания: 0%
Статус: 
| Вот то что сейчас в моде: if(iscmd(cmd,"/help")){ tmp = strtok(cmdtext,idx); if(!strlen(tmp)) tmp = "general"; for(new i=0; i<strlen(tmp); i++) if(!((tmp[i]>='0' && tmp[i]<='9') || (tmp[i]>='a' && tmp[i]<='z') || (tmp[i]>='A' && tmp[i]<='Z'))) { Message(playerid,"Запрашуемого раздела не существует",clDarkRed); return 1; } new fname[max_line]; format(fname,max_line,"/help/%s.txt",tmp); if(!fexist(fname)){ Message(playerid,"Запрашуемого раздела не существует",clDarkRed); return 1; } format(msg,max_line,"[Справка: %s] Использование: /help [раздел]",tmp); Message(playerid,msg,clYellow); new File: f = fopen(fname,io_read), buff[max_line]; while(fread(f,buff)) Message(playerid,buff); fclose(f); return 1; } Хочу єто переделать под диалоговое окно DIALOG_STYLE_LIST!!! Помогите плиз!!!
|
| |
|
|
| GSDN | Дата: Пятница, 14.01.2011, 15:01 | Сообщение # 152 |
|
Уверенный в себе
Группа:
Пользователи
Сообщений: 266
Награды: 0
Город: Самара
Репутация: 27
Замечания: 60%
Статус: 
| ау народ помогите кто нибудь хочется научится окно делать....
███████████████████████████████████████████████ OPEN-GTO COOL!!! ███████████████████████████████████████████████
|
| |
|
|
| DoTstEr | Дата: Вторник, 18.01.2011, 15:21 | Сообщение # 153 |
|
Новенький
Группа:
Пользователи
Сообщений: 11
Награды: 0
Город: Днепропетровск
Репутация: 0
Замечания: 0%
Статус: 
| Quote (Borog) 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 ] А если такого паблика не существует ? Предполагаю что ответ будет : "создать" Где его создать ?
|
| |
|
|
| GSDN | Дата: Воскресенье, 23.01.2011, 21:37 | Сообщение # 154 |
|
Уверенный в себе
Группа:
Пользователи
Сообщений: 266
Награды: 0
Город: Самара
Репутация: 27
Замечания: 60%
Статус: 
| баёбы блин а. ............
███████████████████████████████████████████████ OPEN-GTO COOL!!! ███████████████████████████████████████████████
|
| |
|
|
| Kirja | Дата: Четверг, 27.01.2011, 21:17 | Сообщение # 155 |
|
Новенький
Группа:
Продвинутые
Сообщений: 35
Награды: 1
Город: Tallinn
Репутация: 5
Замечания: 0%
Статус: 
| Подскажите пожалуйста как сделать 2 диалоговых окна,что бы в первом ввести ИД игрока, а во втором Сколько денег передать. На примере команды /pay или /transfer _________________________________________ Уже не надо, сам всё сделал. 
Сообщение отредактировал Kirja - Пятница, 28.01.2011, 11:06 |
| |
|
|
| Dies_Black | Дата: Воскресенье, 30.01.2011, 11:19 | Сообщение # 156 |
|
Новенький
Группа:
Пользователи
Сообщений: 37
Награды: 0
Город: Internet
Репутация: -8
Замечания: 0%
Статус: 
| Kirja, не подскажешь как сделал? Тоже хотел такое сделать
Кому нужен исходник мода SF:Gang 1.8 стучите в аську 646-619-718 или пишите в ЛС, не дорого :)
|
| |
|
|
| npopok64RUS | Дата: Вторник, 08.03.2011, 09:25 | Сообщение # 157 |
|
Новенький
Группа:
Пользователи
Сообщений: 14
Награды: 0
Город: San Fiero
Репутация: 0
Замечания: 0%
Статус: 
| скажите пожалуста как мне зделать вот это но тока в диалоге: Code if(PlayerInfo[playerid][pTestRp] == 0) { TogglePlayerControllable(playerid, 0); EmptyMessages(playerid, 100); //SetPlayerPos(playerid, 2.8155,28.6501,1199.5938 ); // â ñàìîë¸òå //SetPlayerFacingAngle(playerid, 37.2185); SetPlayerPos(playerid, 1318.7843,1254.2932,14.2731 ); SetPlayerFacingAngle(playerid, 4.0); SetPlayerCameraPos(playerid, 1322.0588,1261.0223,15.8203 ); SetPlayerCameraLookAt(playerid, 1318.7843,1254.2932,14.2731 ); //ApplyAnimation(playerid,"PED","SEAT_down",4.1,0,0,0,1,1); SetPlayerInterior(playerid,0); SetPlayerVirtualWorld(playerid, playerid+1); PlayerInfo[playerid][pInt] = 0; SendClientMessage(playerid, COLOR_YELLOW2, "Âû äîëæíû ïðîéòè íåáîëüøîé íåáîëüøîé òåñò íà àäåêâàòíîñòü. Ïðàâèëà íà www.rg.mficho.ru"); SendClientMessage(playerid, COLOR_YELLOW2, "Åñëè âû óâåðåíû â ñåáå - âû íå äîïóñòèòå îøèáîê. Îòâåòüòå íà 10 ïðîñòûõ âîïðîñîâ."); SendClientMessage(playerid, COLOR_GREEN, "============ ÂÎÏÐÎÑ 1 =========="); SendClientMessage(playerid, COLOR_WHITE, "×òî òàêîå ÎÎÑ. Äàéòå îïðåäåëåíèå."); SendClientMessage(playerid, COLOR_WHITE, "1. Out of Character"); SendClientMessage(playerid, COLOR_WHITE, "2. Out Of Clothes"); SendClientMessage(playerid, COLOR_WHITE, "3. Out of City"); testtime[playerid] = 1; return 1; }
http://games-sait.ucoz.ru http://games-sait.ucoz.ru http://games-sait.ucoz.ru http://games-sait.ucoz.ru
|
| |
|
|
| HeKuT | Дата: Вторник, 08.03.2011, 10:24 | Сообщение # 158 |
|
Новенький
Группа:
Пользователи
Сообщений: 43
Награды: 0
Город: Liepaja
Репутация: 5
Замечания: 0%
Статус: 
| Code 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
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors. Помогите 
[IMG]http://s42.radikal.ru/i096/1103/c9/1f0531de33bf.jpg[/IMG]
|
| |
|
|
| Dies_Black | Дата: Суббота, 12.03.2011, 14:01 | Сообщение # 159 |
|
Новенький
Группа:
Пользователи
Сообщений: 37
Награды: 0
Город: Internet
Репутация: -8
Замечания: 0%
Статус: 
| HeKuT, неопределённая переменная dialogid
Кому нужен исходник мода SF:Gang 1.8 стучите в аську 646-619-718 или пишите в ЛС, не дорого :)
|
| |
|
|
| BannyHop | Дата: Суббота, 02.04.2011, 17:24 | Сообщение # 160 |
|
Освоившийся
Группа:
Продвинутые
Сообщений: 128
Награды: 3
Город: Кемерово
Репутация: 138
Замечания: 0%
Статус: 
| Скажите, какой максимальный размер окна диалога? (dialog box) Code if(listitem == 0)//Ïåðâûé ïóíêò { new string[256]; new string1[256]; new string2[256]; new string3[256]; new string4[256]; new string5[256]; new string6[256]; new string7[256]; new string8[256]; new string9[256]; new string10[256]; new string11[256]; new string12[256]; format(string,256,"--"); format(string1,256,"*** ÀÊÊÀÓÍÒ *** /rules /regnick /login /changenick /changepass /level /buylevel /upgrade\n"); format(string2,256,"*** ÎÁÙÅÅ *** /pay /charity /time /buy /unrentcar /givekey /switchkey /bmenu /lock1\n"); format(string3,256,"** ÎÁÙÅÅ *** /resetupgrades(100k) /betrace /betdm /bets /buygun /bestbuy /bestsale /rob /exitdm\n"); format(string4,256,"*** ×ÀÒ *** (/t)xt /pmoff /pmoffall /unpm\n"); format(string5,256,"*** ÁÀÍÊ *** /balance /withdraw /bank /wiretransfer /loan\n"); format(string6,256,"*** ÍÎÂÎÅ *** /count /countall /iconcolors /fixcar /bounties /lotto /animlist /teles /timeveh\n"); format(string7,256,"*** ÍÎÂÎÅ *** /respawn(anee au eaa) Noeee aiy:/NORMAL /BOXING /KUNGFU /KNEEHEAD /GRABKICK /ELBOW\n"); format(string8,256,"*** ÍÎÂÎÅ *** /outcar /miscar /rep\n*** Votekick *** /acsinfo /votekick /avote\n"); format(string9,256,"*** ÏÎËÈÖÈß *** (/r)adio (/d)epartments (/m)egaphone /duty /free /su\n*** ÏÎËÈÖÈß *** /roz /arest /jail\n"); format(string10,256,"*** ÌÅÄÈÊÈ *** (/r)adio (/d)epartments /heal\n*** ÄÐÓÃÎÅ *** /speedo /music /dice /fuel /kill /plnumber\n"); format(string11,256,"*** ÏÎÌÎÙÜ *** /help /cellphonehelp /househelp /renthelp /bizhelp /duelhelp /garagehelp\n"); format(string12,256,"*** ÏÎÌÎÙÜ *** /prisonhelp /ganghelp /kachhelp /bankhelp /cophelp /trenhelp /kshelp"); strcat(string,string1); strcat(string,string2); strcat(string,string3); strcat(string,string4); strcat(string,string5); strcat(string,string6); strcat(string,string7); strcat(string,string8); strcat(string,string9); strcat(string,string10); strcat(string,string11); strcat(string,string12); ShowPlayerDialog(playerid, 14, DIALOG_STYLE_MSGBOX, "Êîìàíäû ñåðâåðà", string, "Çàêðûòü", ""); return 1; } Cделал такой диалог, но показывается только 3 строки, и то не полностью. Код кривой, да. Подскажите как правильно сделать.
|
| |
|
|
| Dima-kun | Дата: Суббота, 02.04.2011, 18:22 | Сообщение # 161 |
|
Группа:
Разработчики
Сообщений: 6269
Награды: 72
Репутация: 3512
Замечания: 0%
Статус: 
| BannyHop, ну ты вася блин, а не проще сразу стринг выводить? а не запиливать кучу стрингов в один, а потом выводить? тебе массива 256 ячеек не хватает
Мои работы: [INC] Сборник d_includes [LAST],[FS] New Demage Effect,[FS]Авто-Поворотники, [FS]mp3player,[FS] Fun Chat Game,[FS] Car Buy Syst,[FS] Anti-AirBrk,[INC] d_setpos, [GM] Game Move v0.1,[FS+include]Super-Armour [0.3z],[FS + Include] Multi Checkpoints
|
| |
|
|
| BannyHop | Дата: Воскресенье, 03.04.2011, 08:12 | Сообщение # 162 |
|
Освоившийся
Группа:
Продвинутые
Сообщений: 128
Награды: 3
Город: Кемерово
Репутация: 138
Замечания: 0%
Статус: 
| Code if(dialogid ==13) //smile { if(response)//Åñëè íàæàë íà Ëåâóþ êíîïêó { if(listitem == 0)//Ïåðâûé ïóíêò { new string[13][1024]; format(string[0],512,"========================================\n"); format(string[1],512,"*** ÀÊÊÀÓÍÒ *** /rules /regnick /login /changenick /changepass /level /buylevel /upgrade\n"); format(string[2],512,"*** ÎÁÙÅÅ *** /pay /charity /time /buy /unrentcar /givekey /switchkey /bmenu /lock1\n"); format(string[3],512,"** ÎÁÙÅÅ *** /resetupgrades(100k) /betrace /betdm /bets /buygun /bestbuy /bestsale /rob /exitdm\n"); format(string[4],512,"*** ×ÀÒ *** (/t)xt /pmoff /pmoffall /unpm\n"); format(string[5],512,"*** ÁÀÍÊ *** /balance /withdraw /bank /wiretransfer /loan\n"); format(string[6],512,"*** ÍÎÂÎÅ *** /count /countall /iconcolors /fixcar /bounties /lotto /animlist /teles /timeveh\n"); format(string[7],512,"*** ÍÎÂÎÅ *** /respawn(anee au eaa) Noeee aiy:/NORMAL /BOXING /KUNGFU /KNEEHEAD /GRABKICK /ELBOW\n"); format(string[8],512,"*** ÍÎÂÎÅ *** /outcar /miscar /rep\n*** Votekick *** /acsinfo /votekick /avote\n"); format(string[9],512,"*** ÏÎËÈÖÈß *** (/r)adio (/d)epartments (/m)egaphone /duty /free /su\n*** ÏÎËÈÖÈß *** /roz /arest /jail\n"); format(string[10],512,"*** ÌÅÄÈÊÈ *** (/r)adio (/d)epartments /heal\n*** ÄÐÓÃÎÅ *** /speedo /music /dice /fuel /kill /plnumber\n"); format(string[11],512,"*** ÏÎÌÎÙÜ *** /help /cellphonehelp /househelp /renthelp /bizhelp /duelhelp /garagehelp\n"); format(string[12],512,"*** ÏÎÌÎÙÜ *** /prisonhelp /ganghelp /kachhelp /bankhelp /cophelp /trenhelp /kshelp"); strcat(string[0],string[1]); strcat(string[0],string[2]); strcat(string[0],string[3]); strcat(string[0],string[4]); strcat(string[0],string[5]); strcat(string[0],string[6]); strcat(string[0],string[7]); strcat(string[0],string[8]); strcat(string[0],string[9]); strcat(string[0],string[10]); strcat(string[0],string[11]); strcat(string[0],string[12]); ShowPlayerDialog(playerid, 14, DIALOG_STYLE_MSGBOX, "Êîìàíäû ñåðâåðà", string[0], "Çàêðûòü", ""); return 1; } Вообще не отображается диалогДобавлено (03.04.2011, 08:12) --------------------------------------------- Ребят, напишите пожалуйста пример диалога( msg_box), где будет больше 3-5 строк. Любые вообще строки. Но не так: "тутвставьтекст", а нормально сделайте и сами проверьте. Я уже день мозг *** с этой херней.
|
| |
|
|
| Dima-kun | Дата: Воскресенье, 03.04.2011, 13:15 | Сообщение # 163 |
|
Группа:
Разработчики
Сообщений: 6269
Награды: 72
Репутация: 3512
Замечания: 0%
Статус: 
| BannyHop, ппц Code format(string,sizeof(string),"текст1"); SendClientMessage(playerid,color,string); format(string,sizeof(string),"текст2"); SendClientMessage(playerid,color,string); format(string,sizeof(string),"текст3"); SendClientMessage(playerid,color,string); не?
Мои работы: [INC] Сборник d_includes [LAST],[FS] New Demage Effect,[FS]Авто-Поворотники, [FS]mp3player,[FS] Fun Chat Game,[FS] Car Buy Syst,[FS] Anti-AirBrk,[INC] d_setpos, [GM] Game Move v0.1,[FS+include]Super-Armour [0.3z],[FS + Include] Multi Checkpoints
|
| |
|
|
| BannyHop | Дата: Воскресенье, 03.04.2011, 13:47 | Сообщение # 164 |
|
Освоившийся
Группа:
Продвинутые
Сообщений: 128
Награды: 3
Город: Кемерово
Репутация: 138
Замечания: 0%
Статус: 
| Мне нужно показать диалог -_-
|
| |
|
|
| Al_Capone | Дата: Среда, 13.04.2011, 09:54 | Сообщение # 165 |
|
Новенький
Группа:
Пользователи
Сообщений: 52
Награды: 0
Город: Степное
Репутация: 0
Замечания: 0%
Статус: 
| Помогите сделать /help. Для фракций и работ. Например для LSPD "*** Фракция *** LSPD /su (дать розыск), /wanted, /cuff (надеть наручники)");
|
| |
|
|
|
 |
|
 | |
| |
|