 |
|
 |
|
|
|
Последние Файлы 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 |
| |
|
|
| Axelerator | Дата: Воскресенье, 02.10.2011, 14:07 | Сообщение # 181 |
|
Уверенный в себе
Группа:
I'm V.I.P.
Сообщений: 237
Награды: 2
Город: Омск
Репутация: 159
Замечания: 40%
Статус: 
| Quote (ten_strike) нород помогите а в какой повно вставлять их там выше крыши Всмысле в какой pawno? В тот что в папке "pawno/pawno.exe"
Quote (ten_strike) и кому не сложно помогите написать не фига не получаеться мне надо DIALOG_STYLE_LIST название петбай а там продрозделы я их сам могу заполнить самое главное чтобы командой открывалось /mm Если я тебя правильно понял, то тебе нужно чтобы по команде "/mm" выводился диалог типа "DIALOG_STYLE_LIST". Просто создавай команду и выводи в ней диалог игроку, например:
Code if(strcmp(cmd, "/mm", true) == 0) { ShowPlayerDialog(playerid, dialogid, DIALOG_STYLE_LIST, "Заголовок диалога", "Строка1\nСтрока2 (и т.д)", "Первая кнопка (например ОК)", "Вторая кнопка (например Отмена)"); return 1; }
Сообщение отредактировал Axelerator - Воскресенье, 02.10.2011, 14:10 |
| |
|
|
| ten_strike | Дата: Воскресенье, 02.10.2011, 16:20 | Сообщение # 182 |
|
Новенький
Группа:
Пользователи
Сообщений: 5
Награды: 0
Город: da
Репутация: 0
Замечания: 0%
Статус: 
| я пытаюсь а не получаеться если не сложно можеш подсказать куда сохранять этот повно потом и нодо ли где пробисавать его
|
| |
|
|
| Axelerator | Дата: Воскресенье, 02.10.2011, 16:50 | Сообщение # 183 |
|
Уверенный в себе
Группа:
I'm V.I.P.
Сообщений: 237
Награды: 2
Город: Омск
Репутация: 159
Замечания: 40%
Статус: 
| ten_strike, что значит "куда сохранять этот повно" ? и что "пробисавать"?
|
| |
|
|
| ten_strike | Дата: Воскресенье, 02.10.2011, 22:20 | Сообщение # 184 |
|
Новенький
Группа:
Пользователи
Сообщений: 5
Награды: 0
Город: da
Репутация: 0
Замечания: 0%
Статус: 
| Quote (Axelerator) "пробисавать"? сори ошибся прописывать Quote (Axelerator) что значит "куда сохранять этот повно ну там несколько папок в какуя конкретно и надо где ево прописывать ну типо как плагин дапустим он прописываеться в сервер кфг а павно надо где или нет??
|
| |
|
|
| Axelerator | Дата: Четверг, 06.10.2011, 18:32 | Сообщение # 185 |
|
Уверенный в себе
Группа:
I'm V.I.P.
Сообщений: 237
Награды: 2
Город: Омск
Репутация: 159
Замечания: 40%
Статус: 
| Quote (ten_strike) ну там несколько папок в какуя конкретно и надо где ево прописывать ну типо как плагин дапустим он прописываеться в сервер кфг а павно надо где или нет?? В server.cfg прописываются моды/фильтрскрипты, которые будут запускаться при старте сервера.
|
| |
|
|
| Misha_Focus | Дата: Четверг, 13.10.2011, 14:29 | Сообщение # 186 |
|
Новенький
Группа:
Пользователи
Сообщений: 7
Награды: 0
Город: Екатеринбург
Репутация: -20
Замечания: 0%
Статус: 
| Я не чего не понял Может мне пожалуйста кто-нибудь написать диалоговое окно для телепорта по этажам. Типо встаёш на пикап и выходит окно там выбераешь этаж
|
| |
|
|
| Axelerator | Дата: Четверг, 13.10.2011, 14:36 | Сообщение # 187 |
|
Уверенный в себе
Группа:
I'm V.I.P.
Сообщений: 237
Награды: 2
Город: Омск
Репутация: 159
Замечания: 40%
Статус: 
| Quote (Misha_Focus) Я не чего не понял Что именно непонятно? Все и так ясно и понятно написано...
|
| |
|
|
| Dreven | Дата: Воскресенье, 16.10.2011, 04:02 | Сообщение # 188 |
|
Гуру
Группа:
Продвинутые
Сообщений: 1096
Награды: 205
Город: od.ua
Репутация: 1099
Замечания: 0%
Статус: 
| Misha_Focus, Code if(!strcmp(cmdtext, "/этаж", true)) { ShowPlayerDialog(playerid, 99, DIALOG_STYLE_LIST, "Donate Money", "1 этаж\n2этаж\n3 этаж", "Выбрать", "Отмена"); return 1; } Потом в паблик Code public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) Code if(dialogid == 99) { if(response) { if(listitem == 0) { SetPlayerPos(playerid, 1 этаж твой); SetPlayerInterior(playerid,0); PlayerInfo[playerid][pInt] = 0; } if(listitem == 1) { SetPlayerPos(playerid, 2 этаж твой); SetPlayerInterior(playerid,0); PlayerInfo[playerid][pInt] = 0; } if(listitem == 2) { SetPlayerPos(playerid, 3 этаж твой); SetPlayerInterior(playerid,0); PlayerInfo[playerid][pInt] = 0; } }
www.samp-rpg.com
Сообщение отредактировал Dreven - Воскресенье, 16.10.2011, 04:03 |
| |
|
|
| DimanBag | Дата: Четверг, 27.10.2011, 12:05 | Сообщение # 189 |
|
Новенький
Группа:
Пользователи
Сообщений: 14
Награды: 0
Город: Киселевск
Репутация: -19
Замечания: 20%
Статус: 
| В проект нужен опытный скриптер подробности в skype diman8355
(пометка !скриптер! обязательна)
Diman_Treiser
|
| |
|
|
| SAMP---RUS | Дата: Понедельник, 06.02.2012, 18:49 | Сообщение # 190 |
|
Новенький
Группа:
Пользователи
Сообщений: 29
Награды: 0
Город: stavropol
Репутация: -16
Замечания: 0%
Статус: 
| ктонить переделайте мне статистику вот код Code if(strcmp(cmdtext, "/mystats", true) == 0) { new prtm; prtm=(((500*(100*(level[playerid]+1)))/100))-LevUp[playerid]; SendClientMessageToAll(COLOR_WHITE, "------------------------------------------------------"); format(string, sizeof(string), ">> %s's Ñòàòèñòèêà:", PlayerName(playerid)); SendClientMessageToAll(COLOR_YELLOW, string); format(string, sizeof(string), ">> Óáèéñòâà äëÿ óðîâíÿ: %d Ñìåðòè äëÿ óðîâíÿ: %d Ðåàëüíûõ óáèéñòâ: %d Ðåàëüíûõ ñìåðòåé: %d Ðåïóòàöèÿ: %0.2f Óðîâåíü: %d ", KillCount[playerid], DeathCount[playerid], RealKills[playerid], RealDeaths[playerid], (Float:KillCount[playerid]+Float:statsRab[playerid]+Float:Sport[playerid])/(Float:DeathCount[playerid]+Float:autokill[playerid]+Float:level[playerid]),level[playerid]); SendClientMessageToAll(COLOR_YELLOW, string); format(string, sizeof(string), ">> Ñïîðò: %d Îáùåå âðåìÿ ïðîâåäåííîå íà ñåðâåðå: %d ÷, Äî ñëåäóþùåãî óðîâíÿ îñòàëîñü: %d ìèí, Âðåìÿ çà ðóëåì: %d ìèí", Sport[playerid], timeInGame[playerid]/60, prtm, timeDrive[playerid]); SendClientMessageToAll(COLOR_YELLOW, string); format(string, sizeof(string), ">> Ñðîê Ïðàâ %d , Ñðîê îðóæèÿ %d , Ñåéô %d ", DriveSrok[playerid], WeapSrok[playerid], bankDom[playerid]); SendClientMessageToAll(COLOR_YELLOW, string); SendClientMessageToAll(COLOR_WHITE, "------------------------------------------------------"); return 1; }
|
| |
|
|
| Mckenzy | Дата: Понедельник, 06.02.2012, 20:09 | Сообщение # 191 |
|
Советчик
Группа:
I'm V.I.P.
Сообщений: 1212
Награды: 130
Город: Ярославль
Репутация: 2125
Замечания: 80%
Статус: 
| SAMP---RUS, если есть руки и голова, сам сделаешь ибо как делать написано в первом посте.
|
| |
|
|
| Max_Davydon | Дата: Воскресенье, 19.02.2012, 12:33 | Сообщение # 192 |
|
Новенький
Группа:
Пользователи
Сообщений: 1
Награды: 0
Город: Электросталь
Репутация: -9
Замечания: 0%
Статус: 
| Ребят,помогите пожалуйста сделать Диалоговое окно (Приглашение на Мероприятие) Вот так: Внимание! Внимание! Внимание! На сервере мероприятие. Согласны ли вы участвовать в нём? [В <b>] ( Внимание! Внимание! Внимание! "Красный", а остальное "Оранжевый", и пожалуйста Жирный шрифт.
"Да" "Нет" (Да "Красный", Нет "Зелёный")
Кто сделает буду очень благодарен Очень очень буду Благодарен. Кто сделает просьба Скинуть в скайп: fakel321 ну или на форуме
|
| |
|
|
| Latron | Дата: Воскресенье, 19.02.2012, 13:09 | Сообщение # 193 |
|
Группа:
I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус: 
| Max_Davydon,
ShowPlayerDialog( playerid, 1025, DIALOG_STYLE_MSGBOX, "{FF0000}Внимание! Внимание! Внимание!", "{FFA500}На сервере мероприятие.\nСогласны ли вы участвовать в нём?", "Да", "Нет" );
1025 - это ID диалогового окна. А цвет кнопок менять нельзя.
Моё портфолио
Мои работы: [ Lesson ] Операторы в PAWN. [ Lesson ] Переменная. [ GM ] RegSys. ( Last update: 21.04.2012 )
Сообщение отредактировал Latron - Воскресенье, 19.02.2012, 13:11 |
| |
|
|
| NiXON | Дата: Воскресенье, 19.02.2012, 13:57 | Сообщение # 194 |
|
Местный
Группа:
I'm V.I.P.
Сообщений: 708
Награды: 32
Город: MyGame*World
Репутация: 0
Замечания: 80%
Статус: 
| Quote (Latron) А цвет кнопок менять нельзя. Можно менять цвет текства на кнопке,но только если на ней 1 буква
Полный FAQ для любого сервера по установке и настройке GTA SA-MP Как начать играть в GTA SA online. Скачать GTA San Andreas Нас пугает наш блеск, а не наш мрак. Быть маленьким и скромным не самая благородная роль. Ничтожность никого не вдохновляет... даже если она удобна окружающим. Мы хотим блистать и сверкать.
|
| |
|
|
| Великс | Дата: Воскресенье, 19.02.2012, 14:09 | Сообщение # 195 |
|
Мастер джэдай
Группа:
Модераторы
Сообщений: 3931
Награды: 287
Город: Мухосранск
Репутация: 8429
Замечания: 0%
Статус: 
| Quote (Nixonchik) Можно менять цвет текства на кнопке,но только если на ней 1 буква Ну тогда можно сделать Y и N
[cut=freestyle] ПРИНЕСЛА СОРОКА В РОТЕ ПРИВОРОТ , СВЯЗАЛАСЬ НА ШЕЕ ЛОЗА И БЫЛ ПОЛНЫЙ ПИ**ЕЦ, ОСЕНЬ С ЗИМОЙ, ЛЕТО С ВЕСНОЙ, ГУСЬ С ЛИСОЙ, ЕБ**ИСЬ ВО ТЬМЕ НОЧНОЙ. УЗЕЛ ЗАВЯЗАЛСЯ, ПЕПЕЛ РАЗМЕТАЛСЯ И ЛИСА ЗАБЕРЕМЕНЕЛА. ВМЕСТЕ ВЕК ВЕКОВАТЬ, ПУТУ НЕ РАЗВЯЗАТЬ. ТРАВА ПЕРЕПЛЕТИСЬ, УЗЕЛ ЗАВОРОЖИСЬ. ЛЕНАРУ ДАЙ УМА И ЛЕНУ НА ВЕЛЕ НЕ ОТРАЗИСЬ,ЕБ*СЬ ЕБ*СЬ ЕБ*СЬ © Хасан [/cut]
|
| |
|
|
|
 |
|
 | |
| |
|