07:33
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
Модератор форума: Dima-kun  
Форум SAMP о мультиплеерах для GTA. »   » Wiki-Samp-Rus » [Tutorial]Создание Диалогового окна (Переведено с sa-mp.com)
[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
Dima-kunДата: Среда, 13.04.2011, 13:29 | Сообщение # 166
Группа: Разработчики
Сообщений: 6269
Награды: 72
Репутация: 3512
Замечания: 0%
Статус:
Al_Capone, делай по уроку, для этого он и сделан


Мои работы:
[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
pawmanДата: Среда, 13.04.2011, 23:57 | Сообщение # 167
Уверенный в себе
Группа: Пользователи
Сообщений: 188
Награды: 12
Город: Новороссийск
Репутация: 38
Замечания: 0%
Статус:
Ошибка, вы написали backspae


Разрабатываю карты для сервера. Обращайтесь, качество гарантирую.
Мои работы:
[MAP+FS]Особняк
[MAP+FS]Пляж
[MAP+FS]sa_city_bilding
Сайт: фаникс.рф
Steep_CheleДата: Четверг, 14.04.2011, 21:39 | Сообщение # 168
Постоялец
Группа: I'm V.I.P.
Сообщений: 312
Награды: 12
Город: Ульяновск
Репутация: 815
Замечания: 40%
Статус:
Al_Capone, Гугль в помощь, таких уроков куча.
Vova1176Дата: Понедельник, 16.05.2011, 21:29 | Сообщение # 169
Новенький
Группа: Пользователи
Сообщений: 1
Награды: 0
Город: Казань
Репутация: 0
Замечания: 0%
Статус:
Люди помогите кто нибудь! suicide2
http://depositfiles.com/files/rnhau3j4j
пожалуйста исправьте скрипт с диалогом)



[10street_BOSS]Vova
nikolasdedbyДата: Пятница, 01.07.2011, 04:17 | Сообщение # 170
Новенький
Группа: Пользователи
Сообщений: 3
Награды: 0
Город: Minsk
Репутация: 0
Замечания: 0%
Статус:
Здравствуйте, подскажите пожалуйста как "взять" информацию которую игрок вводит в диалоге типа 1 (Input)
Суть вообще, в проверке того, что ввел игрок и в зависимости от этого вывод другого диалога типа 0 (msgbox)

Начальный код:
Code

else if(dialogid == 777)
  {
     if(response) // при нажатие на кнопку согласится
   {
         ShowPlayerDialog(playerid, 778, DIALOG_STYLE_INPUT, "Выбор автомобиля", "Введите ID желаемого авто:", "Ok", "Уйти");
         return 1;
    {
    if(listitem == 0) [color=blue]???[/color]
     {
                     ShowPlayerDialog(playerid, 779, DIALOG_STYLE_MSGBOX, "Описание автомобиля", "\tНазвание: Jester [559] \nПрототип: Toyota Supra`92 \nМакс. Скорость: 100 км/ч \nПривод: передний", "Ok", "Уйти");
        }
    else
     {
      SendClientMessage(playerid, COLOR_RED, "Вы отказались от покупки! Досвидание!");
     }
    }
   }

wall

king_5Дата: Пятница, 01.07.2011, 11:50 | Сообщение # 171
Уверенный в себе
Группа: Продвинутые
Сообщений: 292
Награды: 3
Город: Черновцы
Репутация: 303
Замечания: 20%
Статус:
Quote (nikolasdedby)
Здравствуйте, подскажите пожалуйста как "взять" информацию которую игрок вводит в диалоге типа 1 (Input)

Чтобы узнать информацию которую ввёл игрок в диалог используй new ammount = strval(inputtext); , ну или вместо ammount любое своё значение. А дальше уж ставь проверки, например if(ammount == 1) и т.д.



[FS] Сис-ма ворот, шлагбаумов[2.0][100 рублей] by king_5
[FS] Новая сис-ма рыбалки[1.0][100 рублей] by king_5
[FS] Сис-ма объектов[1.0] by king_5

[FS] Сбрасывание бомб с самолёта
[FS+MAP] LV Авто-Школа
[MAP] Зал суда
[FS] Мак-авто


nikolasdedbyДата: Пятница, 01.07.2011, 12:52 | Сообщение # 172
Новенький
Группа: Пользователи
Сообщений: 3
Награды: 0
Город: Minsk
Репутация: 0
Замечания: 0%
Статус:
Quote (king_5)
А дальше уж ставь проверки, например if(ammount == 1) и т.д.

Т.е. если я хочу проверить ввел игрок "559" или нет нужно вписать: if(ammount == 559) ?

king_5Дата: Пятница, 01.07.2011, 14:24 | Сообщение # 173
Уверенный в себе
Группа: Продвинутые
Сообщений: 292
Награды: 3
Город: Черновцы
Репутация: 303
Замечания: 20%
Статус:
Quote
Т.е. если я хочу проверить ввел игрок "559" или нет нужно вписать: if(ammount == 559) ?

Да, именно так. А почему именно 559?(мне не очень интересно, просто надо 20 символов :) )



[FS] Сис-ма ворот, шлагбаумов[2.0][100 рублей] by king_5
[FS] Новая сис-ма рыбалки[1.0][100 рублей] by king_5
[FS] Сис-ма объектов[1.0] by king_5

[FS] Сбрасывание бомб с самолёта
[FS+MAP] LV Авто-Школа
[MAP] Зал суда
[FS] Мак-авто


nikolasdedbyДата: Пятница, 01.07.2011, 20:52 | Сообщение # 174
Новенький
Группа: Пользователи
Сообщений: 3
Награды: 0
Город: Minsk
Репутация: 0
Замечания: 0%
Статус:
Окна эти ведь для системы авто делаю. Покупки авто. И в окошко будет вводиться ID.
Может поможете ещё, какой опцией или вообще как и что вписать чтобы при if(response) спаунилась машина в определенном месте.
Желательно образец приложить))

necros1kДата: Четверг, 14.07.2011, 17:03 | Сообщение # 175
Новенький
Группа: Пользователи
Сообщений: 37
Награды: 0
Город: SPB
Репутация: -10
Замечания: 0%
Статус:
люд плиз помогите я в скриптенге недавно прочитал статью так то понел но не оч помогите плиз сделать из этого кода

Code
if(strcmp(cmd, "/veh", true) == 0)  
   {  
     if(!strlen(cmdtext)) return SendClientMessage(playerid,COLOR_GREY,"/veh [id] [цвет1] [цвет2]");  
     new id = strval(strpar(cmdtext));  
     if(id < 400 || id > 611) return SendClientMessage(playerid,COLOR_GREY,"Введите ID 400 - 611");  
    new col1 = strval(strpar(cmdtext));  
    new col2 = strval(cmdtext);  
    new Float:x,Float:y,Float:z,Float:a;  
    GetPlayerPos(playerid,x,y,z);  
    GetPlayerFacingAngle(playerid,a);  
    CreateVehicle(id,x+1,y,z,a,col1,col2,90000);  
    SendClientMessage(playerid,COLOR_GREY,"Вы использовали команду /veh");  
    return 1;  
   }


плиз помогите сделать чтобы в водя эту команду появилась табличка чтобы туда в вести ид машины и чтобы машина появлялась и я сидел в ней. но и + к этому плиз сделайте чтобы не надо было в водить цвета а появлятась она сразу белая)) спс за ранее тому кто сделает я дам +

DANTДата: Вторник, 13.09.2011, 17:27 | Сообщение # 176
Новенький
Группа: Пользователи
Сообщений: 71
Награды: 0
Город: Киев
Репутация: -11
Замечания: 0%
Статус:
А есть программа для создания диалогового окна ?
чтоб только кнопочку клоцнул и уже все готово ))

ImperealДата: Вторник, 13.09.2011, 17:35 | Сообщение # 177
Мастер джэдай
Группа: I'm V.I.P.
Сообщений: 2677
Награды: 51
Город: Санкт-Петербург
Репутация: 1868
Замечания: 100%
Статус:
Quote (DANT)
А есть программа для создания диалогового окна ? чтоб только кнопочку клоцнул и уже все готово ))

Вы обленившийся индюк!



Прощай самп-рус =Р

Сообщение отредактировал Impereal - Вторник, 13.09.2011, 17:36
DANTДата: Вторник, 13.09.2011, 18:58 | Сообщение # 178
Новенький
Группа: Пользователи
Сообщений: 71
Награды: 0
Город: Киев
Репутация: -11
Замечания: 0%
Статус:
Impereal, Время деньги

Добавлено (13.09.2011, 18:58)
---------------------------------------------
подскажите как сделать диалоговое окно к примеру

под названием админ команды
1-Уровень 0
0 уровень:
/register [пароль] - регистрация аккаунта на сервере,
/login [пароль] - вход в созданный аккаунт,
/report [id] [причина] - жалоба на игрока,
/stats [id] статистика игрока,
/time - время на сервере,
/changepass [новый пароль] - смена пароля к аккаунту,
/resetstats - сброс статистики,
/getid [имя] - узнать id игрока по имени,

2-Уровень 1
0 уровень:
/register [пароль] - регистрация аккаунта на сервере,
/login [пароль] - вход в созданный аккаунт,
/report [id] [причина] - жалоба на игрока,
/stats [id] статистика игрока,
/time - время на сервере,
/changepass [новый пароль] - смена пароля к аккаунту,
/resetstats - сброс статистики,
/getid [имя] - узнать id игрока по имени,

итд вообщем чтоб выскакивало диалоговае окно с разделами нажимаеш на 2 там просто написаны админ команды 2 го уровня
хотяб шаблон покажите а дальше я сам а то ничерта не смыслю в скриптинге а хочется чтоб на серве все было нормально

FragmentДата: Среда, 21.09.2011, 22:52 | Сообщение # 179
Новенький
Группа: I'm V.I.P.
Сообщений: 46
Награды: 2
Город: Днепропетровск
Репутация: -34
Замечания: 20%
Статус:
Спасибо, за урок, понял все понятно.


Графика на заказ.
Маппинг на заказ.
Skype: foost-food
ten_strikeДата: Воскресенье, 02.10.2011, 07:53 | Сообщение # 180
Новенький
Группа: Пользователи
Сообщений: 5
Награды: 0
Город: da
Репутация: 0
Замечания: 0%
Статус:
нород помогите а в какой повно вставлять их там выше крыши
и кому не сложно помогите написать не фига не получаеться мне надо DIALOG_STYLE_LIST название петбай а там продрозделы я их сам могу заполнить самое главное чтобы командой открывалось /mm

Форум SAMP о мультиплеерах для GTA. »   » Wiki-Samp-Rus » [Tutorial]Создание Диалогового окна (Переведено с sa-mp.com)
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua