Четверг, 17.07.2025, 18:12
Приветствую Вас Гость | RSS
[•X•X•X•X•X•X•X•X•X• SRK •X•X•X•X•X•X•X•X•X•] - 193.107.179.214:7777
Главная | Урок №21 DIALOG_STYLE_LIST - Форум | Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: DimanCC, Awesome, [Tuner_Life]Nikotin  
Урок №21 DIALOG_STYLE_LIST
AwesomeДата: Среда, 29.02.2012, 16:46 | Сообщение # 1
Генерал-майор
Группа: Проверенные
Сообщений: 70
Награды: 14
Репутация: 25
Статус: Offline
В этом уроке мы переходим к разбору третьего стиля диалога: DIALOG_STYLE_LIST. Давайте
рассмотрим данный стиль диалога на следующем примере. Допустим нам нужно командой,
вызвать меню со списком оружия на выбор.
Создаем простейшую команду и внутрь ее пишем функцию вызова диалога. Так как это
будет список, нам нужно использовать \n – переход на новую строчку. Т.е. мы пишем название
пункта \n название пункта и снова \n.
Code
if (strcmp("/weaponlist", cmdtext, true, 10) == 0)  
{  
ShowPlayerDialog(playerid,0,DSL,"Список оружия»,«Кольт\nКольт с глушителем\nПустынный орел",  
"Выбор", "Отмена");  
return 1;  
}


Диалог будет выглядеть следующим образом:
Перед тем как написать функцию для этого диалогового окна, давайте посмотрим на
следующую конструкцию приведенную ниже.
Code
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])  
{  
if(dialogid == 0)  
{  
if(listitem == 1) //Если был выбран 1 пункт списка  
{  
//Выполнить этот код  
}  
if(listitem == 2) //Если был выбран 2 пункт списка  
{  
//Выполнить этот код  
}  
}  
return 1;  
}


Вот так должен выглядеть код для данного стиля диалога. Тут мы проверяем значение
listitem, т.е. пункта списка которого мы выберем в диалоге. listitem = 1 – это кольт, значит, в
условную конструкцию listitem == 1 мы должны вписать функцию GivePlayerWeapon, чтобы дать
оружие игроку.
Code
if(listitem == 1) //Если был выбран 1 пункт списка  
{  
GivePlayerWeapon(playerid,22,100); //Дать игроку кольт и 100 патронов  
}


То же самое делаем и для остальных listitem. Вписываем ту же строчку, только вместо 22,
пишем следующее: 23 – для кольта с глушителем, 24 – для пустынного орла (эти цифры, это ID
модели этого оружия). ID модели смотрите на странице «ID оружия».
Вообще, приведенный выше пример, очень схож с оператором switch, т.к. мы проверяем
значение одного аргумента и в зависимости от этого значения выполняем действие. Тоесть, это
все можно заменить на оператор switch, таким образом:
Code
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])  
{  
if(dialogid == 0)  
{  
switch(listitem)  
{  
case 1: //Если был выбран 1 пункт списка  
{  
//Выполнить этот код  
}  
case 2: //Если был выбран 1 пункт списка  
{  
//Выполнить этот код  
}  
}  
}  
return 1;  
}


Но все же, если вы хорошо не усвоите этот урок, лучше этим примером не пользоваться


я вернулся
 
  • Страница 1 из 1
  • 1
Поиск:

Поддержка пишите на наш форум:Walter & alisa