Здравствуйте дорогие пользователи bforum.uz,сегодня я хотел бы вам рассказать про последний диалог,этот диалог называется DIALOG_STYLE_LIST,и так приступим.
В этом уроке мы переходим к разбору третьего стиля диалога: DIALOG_STYLE_LIST. Давайте
рассмотрим данный стиль диалога на следующем примере. Допустим нам нужно командой, вызвать
меню со списком оружия на выбор.
Создаем простейшую команду и внутрь ее пишем функцию вызова диалога. Так как это будет
список, нам нужно использовать \n – переход на новую строчку. Т.е. мы пишем название пункта \n
название пункта и снова \n.
Диалог будет выглядеть следующим образом:PHP код:
if (strcmp("/weaponlist", cmdtext, true, 10) == 0)
{
ShowPlayerDialog(playerid,0,DSL,"Список оружия»,«Кольт\nКольт с глушителем\nПустынный орел", "Выбор", "Отмена");
return 1;
}
Перед тем как написать функцию для этого диалогового окна, давайте посмотрим на
следующую конструкцию приведенную ниже.
Вот так должен выглядеть код для данного стиля диалога. Тут мы проверяем значение listitem,PHP код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 0)
{
if(listitem == 1) //Если был выбран 1 пункт списка
{
//Выполнить этот код
}
if(listitem == 2) //Если был выбран 2 пункт списка
{
//Выполнить этот код
}
}
return 1;
}
т.е. пункта списка которого мы выберем в диалоге. listitem = 1 – это кольт, значит, в условную
конструкцию listitem == 1 мы должны вписать функцию GivePlayerWeapon, чтобы дать оружие игроку.
То же самое делаем и для остальных listitem. Вписываем ту же строчку, только вместо 22,PHP код:
if(listitem == 1) //Если был выбран 1 пункт списка
{
GivePlayerWeapon(playerid,22,100); //Дать игроку кольт и 100 патронов
}
пишем следующее: 23 – для кольта с глушителем, 24 – для пустынного орла (эти цифры, это ID модели
этого оружия). ID модели смотрите на странице «ID оружия».
Вообще, приведенный выше пример, очень схож с оператором switch, т.к. мы проверяем
значение одного аргумента и в зависимости от этого значения выполняем действие. Тоесть, это все
можно заменить на оператор switch, таким образом:
Точно также можно поступить и с параметром dialogid, кому как удобнее.PHP код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 0)
{
switch(listitem)
{
case 1: //Если был выбран 1 пункт списка
{
//Выполнить этот код
}
case 2: //Если был выбран 1 пункт списка
{
//Выполнить этот код
}
}
}
return 1;
}
Ну вот и всё,это был последний урок про диалоги,спасибо всем за внимание.