 |
|
 |
|
|
|
Последние Файлы 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 |
| |
|
|
| [RGS]JAGUAR | Дата: Пятница, 13.08.2010, 19:04 | Сообщение # 106 |
|
Советчик
Группа:
Продвинутые
Сообщений: 1154
Награды: 25
Город: FloatX,FloatY,FloatZ
Репутация: 291
Замечания: 40%
Статус: 
| Quote (xLock) Но вот проблема! Даже если пользователь ничего не ввел его всеравно регает! Как это исправить? Как сделать так чтобы окно выскакивало пока он не введет норм пароль? перенеси в SetPlayerSpawn!
[/url] Новая ICQ: 593922
|
| |
|
|
| xLock | Дата: Пятница, 13.08.2010, 20:46 | Сообщение # 107 |
|
Освоившийся
Группа:
Продвинутые
Сообщений: 148
Награды: 3
Город: Грозный
Репутация: -8
Замечания: 20%
Статус: 
| фуф... всё разобрался в чом шнага была. [RGS]JAGUAR, не то но спасибо
www.samp-gto.ru - мир без правил, мир без победителей и проигравших. (с) MSRV Рекламируй свой сервер, повышай посещаемость, добавляй его в наш рейтинг
|
| |
|
|
| Jumpman23 | Дата: Суббота, 14.08.2010, 14:47 | Сообщение # 108 |
|
Группа:
I'm V.I.P.
Сообщений: 1359
Награды: 23
Город: Kingston, Rastapolis
Репутация: 504
Замечания: 100%
Статус: 
| Quote (xLock) фуф... всё разобрался в чом шнага была. ну так напиши всем, чтобы знали что делать...эгоист
Тсссс, тссс, отключите снисходительный тон. Помните: вас уже лишали права слова на этом форуме. Прошу прощения у всех кого я заебал или оскорбил (Кроме икварпа и чеза - вы ибланы). Великс ты красава.
|
| |
|
|
| KillForFun | Дата: Среда, 06.10.2010, 22:30 | Сообщение # 109 |
|
Освоившийся
Группа:
Продвинутые
Сообщений: 143
Награды: 3
Город: Cызрань
Репутация: 26
Замечания: 0%
Статус: 
| Люди хелп пытался сделать что бы можно было устраиваться на работу в диалогах выкидывает кучу ошибок помагите плиз Code if(strcmp(cmd, "/Работа", true) == 0) { new listitems[] = "1\tРабота1\n2\tРабота\n3\tРабота\n4\tРабота\n5\tÍРабота\n6\tРабота\n7\tРабота\n8\tGun Dealer\n9\tРабота\n10\tРабота"; ShowPlayerDialog(playerid,123,DIALOG_STYLE_LIST," Пуфто",listitems," Устроиться"," Отмена"); return 1; } и 2 в public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) Code if(dialogid == 123) { switch(listitem) { case 0: { SetPlayerFightingStyle (playerid, GettingJob[playerid] = 20); SendClientMessage(playerid, 0xFFFFFFAA, " Âû óñòðîèëèñü Âîäèòåëåì Äàëüíîáîéùèêîì!"); } case 1: { SetPlayerFightingStyle (playerid, GettingJob[playerid] = 1); SendClientMessage(playerid, 0xFFFFFFAA, " Âû óñòðîèëèñü íà ðàáîòó äåòåêòèâîì!"); } case 2: { SetPlayerFightingStyle (playerid, GettingJob[playerid] = 2); SendClientMessage(playerid, 0xFFFFFFAA, " Âû óñòðîèëèñü íà ðàáîòó Àäâîêàòîì!"); } case 3: { SetPlayerFightingStyle (playerid, GettingJob[playerid] = 3); SendClientMessage(playerid, 0xFFFFFFAA, " Âû óñòðîèëèñü íà ðàáîòó â ïóáëè÷íûé äîì!"); } case 4: { SetPlayerFightingStyle (playerid, GettingJob[playerid] = 4); SendClientMessage(playerid, 0xFFFFFFAA, " Âû óñòðîèëèñü ïðîäàâöîì íàðêîòèêîâ!"); } case 5: { SetPlayerFightingStyle (playerid, GettingJob[playerid] = 5); SendClientMessage(playerid, 0xFFFFFFAA, " Âû óñòðîèëèñü àâòî âîðîì!"); } case 6: { SetPlayerFightingStyle (playerid, GettingJob[playerid] = 7); SendClientMessage(playerid, 0xFFFFFFAA, " Âû óñòðîèëèñü ìåõàíèêîì!"); } case 7: { SetPlayerFightingStyle (playerid, GettingJob[playerid] = 9); SendClientMessage(playerid, 0xFFFFFFAA, " Âû óñòðîèëèñü Gun Dealer!"); } case 8: { SetPlayerFightingStyle (playerid, GettingJob[playerid] = 14); SendClientMessage(playerid, 0xFFFFFFAA, " Âû óñòðîèëèñü Âîäèòåëåì àâòîáóñà!"); } case 9: { SetPlayerFightingStyle (playerid, GettingJob[playerid] = 17); SendClientMessage(playerid, 0xFFFFFFAA, " Âû óñòðîèëèñü Âîäèòåëåì Áèëàçà!"); return 0; }
} что не так скажите плиз а да вот сами ошибки Code C:\ÌîÄý\GF.pwn(4956) : error 004: function "CheckForLicenseTestCheckpoint" is not implemented C:\ÌîÄý\GF.pwn(4971) : error 004: function "CheckForLicenseTestCheckpoint" is not implemented C:\ÌîÄý\GF.pwn(5379) : error 004: function "IsADrivingTest" is not implemented C:\ÌîÄý\GF.pwn(6590) : error 004: function "ClearChatbox" is not implemented C:\ÌîÄý\GF.pwn(6603) : error 004: function "ClearChatbox" is not implemented C:\ÌîÄý\GF.pwn(6617) : error 004: function "ClearChatbox" is not implemented C:\ÌîÄý\GF.pwn(6630) : error 004: function "ClearChatbox" is not implemented C:\ÌîÄý\GF.pwn(6644) : error 004: function "ClearChatbox" is not implemented C:\ÌîÄý\GF.pwn(6658) : error 004: function "ClearChatbox" is not implemented C:\ÌîÄý\GF.pwn(6671) : error 004: function "ClearChatbox" is not implemented C:\ÌîÄý\GF.pwn(6684) : error 004: function "ClearChatbox" is not implemented C:\ÌîÄý\GF.pwn(6700) : error 004: function "ClearChatbox" is not implemented C:\ÌîÄý\GF.pwn(6713) : error 004: function "ClearChatbox" is not implemented C:\ÌîÄý\GF.pwn(7294) : error 004: function "SaveGas" is not implemented C:\ÌîÄý\GF.pwn(8703) : error 004: function "LoadGas" is not implemented C:\ÌîÄý\GF.pwn(12932) : error 004: function "RemoveRoadblock" is not implemented C:\ÌîÄý\GF.pwn(12945) : error 004: function "RemoveRoadblock" is not implemented C:\ÌîÄý\GF.pwn(14070) : error 004: function "SaveGas" is not implemented C:\ÌîÄý\GF.pwn(14136) : error 017: undefined symbol "RangeBan" C:\ÌîÄý\GF.pwn(36405) : error 079: inconsistent return types (array & non-array) C:\ÌîÄý\GF.pwn(36425) : error 079: inconsistent return types (array & non-array) C:\ÌîÄý\GF.pwn(36448) : error 079: inconsistent return types (array & non-array) C:\ÌîÄý\GF.pwn(36456) : error 079: inconsistent return types (array & non-array) C:\ÌîÄý\GF.pwn(36469) : error 079: inconsistent return types (array & non-array) C:\ÌîÄý\GF.pwn(36477) : error 079: inconsistent return types (array & non-array) C:\ÌîÄý\GF.pwn(36485) : error 079: inconsistent return types (array & non-array)
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
26 Errors. если мод компелировать без того что я добавлял диалоги . то норм все пашет (((
|______Мои работы______| Хотдоги на диалогах |______________________| Modern State[RP] IP Addres 88.198.67.14:7557 Cайт http:\\rp-ms.ru
|
| |
|
|
| Parlament | Дата: Среда, 06.10.2010, 23:18 | Сообщение # 110 |
|
Группа:
I'm V.I.P.
Сообщений: 271
Награды: 19
Город: Маарду
Репутация: 474
Замечания: 0%
Статус: 
| BloodRain, SetPlayerFightingStyle это причём тут? Я бы на твоём месте сделал бы всё через listitem И просто став GettingJob[playerid] = 1; и т.п
|
| |
|
|
| abhor | Дата: Среда, 06.10.2010, 23:18 | Сообщение # 111 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 184
Награды: 3
Город: Оттава
Репутация: 108
Замечания: 0%
Статус: 
| BloodRain, попробуй так: Команда: Code if(!strcmp(cmdtext, "/работа", true)) { ShowPlayerDialog(playerid, 123, DIALOG_STYLE_LIST, "Работа", "Работа 1\nРабота 2\nРабота 3", "Устроится", "Отмена"); return 1; } в ondialogresponse: Code if(dialogid == 123 && response) { switch(listitem) { case 0: { //действие при нажатие на Работа 1 } case 1: { //действие при нажатие на Работа 2 } case 2: { //действие при нажатие на Работа 3 } } }
HostName: [MoD] Call Of Duty - Urban Clashes. FREE VIP! Address: 91.121.164.164:8077
|
| |
|
|
| Parlament | Дата: Среда, 06.10.2010, 23:29 | Сообщение # 112 |
|
Группа:
I'm V.I.P.
Сообщений: 271
Награды: 19
Город: Маарду
Репутация: 474
Замечания: 0%
Статус: 
| Моя версия Code if(strcmp(cmd, "/join", true) == 0) { new listitems[] = "1\tРабота1\n2\tРабота\n3\tРабота\n4\tРабота\n5\tÍРабота\n6\tРабота\n7\tРабота\n8\tGun Dealer\n9\tРабота\n10\tРабота"; ShowPlayerDialog(playerid,123,DIALOG_STYLE_LIST,"Работа",listitems," Устроиться"," Отмена"); return 1; } Code if(dialogid == 123) { if(response) { if(listitem == 1) { GettingJob[playerid] = 1; SendClientMessage(playerid, COLOR_YELLOW, " У тебя новая работа "); } if(listitem == 2) { GettingJob[playerid] = 2; SendClientMessage(playerid, COLOR_YELLOW, " У тебя новая работа "); } } else { Можешь написать тут что-то, если хочешь)) } return 1; } И так далее, но это я так привык так делать, так что не судите строго
Сообщение отредактировал Parlament - Среда, 06.10.2010, 23:32 |
| |
|
|
| Zmey | Дата: Среда, 13.10.2010, 19:25 | Сообщение # 113 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 185
Награды: 8
Город: Москва
Репутация: 79
Замечания: 0%
Статус: 
| Помогите как мне создать хорошую регистрацию в диалоговом окне чтобы в файл все писалось нормально для ДМ сервера!! ПОЖАЛУЙСТА ПОМОГИТЕ!!!
(skype) zmey77771 (icq) 24-77-58-69
|
| |
|
|
| maximus-vrn | Дата: Понедельник, 25.10.2010, 17:18 | Сообщение # 114 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 174
Награды: 2
Город: Воронеж
Репутация: 13
Замечания: 0%
Статус: 
| Из-за чего может быть такая штука? У меня окно ShowPlayerDialog типа DIALOG_STYLE_LIST и вот, когда прокручиваешь мышкой список до конца и отпускаешь мышь то через несколько секунд опять список переходит на начало, хотя я видел на некоторых серверах не переходит, а остаётся там где и оставили.
|
| |
|
|
| SMOUK | Дата: Понедельник, 25.10.2010, 18:57 | Сообщение # 115 |
|
Местный
Группа:
Продвинутые
Сообщений: 646
Награды: 13
Город: Рославль
Репутация: 284
Замечания: 100%
Статус: 
| Quote (maximus-vrn) Из-за чего может быть такая штука? У меня окно ShowPlayerDialog типа DIALOG_STYLE_LIST и вот, когда прокручиваешь мышкой список до конца и отпускаешь мышь то через несколько секунд опять список переходит на начало, хотя я видел на некоторых серверах не переходит, а остаётся там где и оставили. Диалог открываеться через пикап ? Если да то после нового появления пикпа а это где то 3 секунды - диалог сново выскакивает. на других серверах настраивают сам пикап. Или же DestroyPickup ) Wiki юзай )

|
| |
|
|
| maximus-vrn | Дата: Понедельник, 25.10.2010, 21:26 | Сообщение # 116 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 174
Награды: 2
Город: Воронеж
Репутация: 13
Замечания: 0%
Статус: 
| DestroyPickup мне удалит мой пикап, а он мне нужен. А как настроить можно?
|
| |
|
|
| SMOUK | Дата: Понедельник, 25.10.2010, 23:05 | Сообщение # 117 |
|
Местный
Группа:
Продвинутые
Сообщений: 646
Награды: 13
Город: Рославль
Репутация: 284
Замечания: 100%
Статус: 
| Code CreatePickup(1242, 2, 1503.3359, 1432.3585, 10.1191, -1); Попробуй вместо 2(или что там у тебя) поставить вот эту цифру 4. Мы таким образом сменим тип пикапа , 4 - исчезнет и появиться через некоторое время. Но я канешно сомневаюсь в эотм способе но всё можетполучиться.. ) Тем более если учитывать проходимость канала хостинга на катором стоит или будет стоять твой сервер а так же интернет игрока вскрывающего диалог то времени достаточно на пользование самим диалогом. ) На локалке тебе просто кажеться что быстро ) Ах да . Вот тебе переведенный списочек типов. Попробуешь может ище какие нибуть. Пикап не отображается. 1 Не pickupable, существует все время. (Подходит для полностью сценарий Доставка использованием OnPlayerPickUpPickup) 2 Pickupable, появляется снова через некоторое время. 3 Pickupable, появляется после смерти 4 Исчезает вскоре после того, создается (возможно, для оружия капли?) 5 Исчезает вскоре после того, создается (возможно, для оружия капли?) 8 Pickupable, но не имеет никакого эффекта. Исчезает автоматически. 11 Взрывает несколько секунд после создания (бомбы?) 12 Взрывает несколько секунд после создания. 13 Медленно decends на землю. 14 Pickupable, но только тогда, когда в транспортном средстве. Фолс через предметы, сделанные с CreateObject, и т.д. 15 Pickupable, появляется после смерти 19 Pickupable, но не имеет никакого эффекта (информация иконки?) 22 Pickupable, появляется после смерти. 23 Pickupable, но не исчезает на пикап.

|
| |
|
|
| maximus-vrn | Дата: Понедельник, 25.10.2010, 23:24 | Сообщение # 118 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 174
Награды: 2
Город: Воронеж
Репутация: 13
Замечания: 0%
Статус: 
| Поменял на 4, перескакиваний нет, но у меня пикап выдаёт оружие и полочается как только я что-то купил, пикап сразу пропадает и появляется только после того как я выйду и войду в магазин. За перевод спасобо, но PROMT у меня тоже есть
|
| |
|
|
| SMOUK | Дата: Понедельник, 25.10.2010, 23:38 | Сообщение # 119 |
|
Местный
Группа:
Продвинутые
Сообщений: 646
Награды: 13
Город: Рославль
Репутация: 284
Замечания: 100%
Статус: 
| maximus-vrn Я кагбе не промт а гугл онлайн юзал Если такая обстановка не устраивает то тогда создавай таймер в SetPlayerUnJaill. По которому будет удалять пикаап и опять ставить его. ) Но там полная марока. Я уже объяснил что нечего страшного в такой фишке что у тебя происходит - нэт

|
| |
|
|
| maximus-vrn | Дата: Вторник, 26.10.2010, 00:03 | Сообщение # 120 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 174
Награды: 2
Город: Воронеж
Репутация: 13
Замечания: 0%
Статус: 
| SMOUK, А почему в списке описаний ID пикапов отсутствуют некоторые номера? Те которые отсутствуют они действующие, просто о них нет информации на Wiki?
|
| |
|
|
|
 |
|
 | |
| |
|