Показано с 1 по 2 из 2

Тема: [Урок]Про диалоги 3 часть

  1. #1
    Аватар для Tolyanchik
    Активный участник
    Регистрация
    25.06.2012
    Сообщений
    150
    Благодарностей
    28
    Сказали спасибо: 107

    [Урок]Про диалоги 3 часть

    Здравствуйте дорогие пользователи bforum.uz,сегодня я хотел бы вам рассказать про последний диалог,этот диалог называется DIALOG_STYLE_LIST,и так приступим.

    В этом уроке мы переходим к разбору третьего стиля диалога: DIALOG_STYLE_LIST. Давайте
    рассмотрим данный стиль диалога на следующем примере. Допустим нам нужно командой, вызвать
    меню со списком оружия на выбор.
    Создаем простейшую команду и внутрь ее пишем функцию вызова диалога. Так как это будет
    список, нам нужно использовать \n – переход на новую строчку. Т.е. мы пишем название пункта \n
    название пункта и снова \n.
    PHP код:
    if (strcmp("/weaponlist"cmdtexttrue10) == 0

    ShowPlayerDialog(playerid,0,DSL,"Список оружия»,«Кольт\nКольт с глушителем\nПустынный орел""Выбор""Отмена");
    return 
    1

    Диалог будет выглядеть следующим образом:

    Перед тем как написать функцию для этого диалогового окна, давайте посмотрим на
    следующую конструкцию приведенную ниже.
    PHP код:
    public OnDialogResponse(playeriddialogidresponselistiteminputtext[]) 

            if(
    dialogid == 0
      { 
      if(
    listitem == 1//Если был выбран 1 пункт списка 
      

      
    //Выполнить этот код 
      

      if(
    listitem == 2//Если был выбран 2 пункт списка 
      

      
    //Выполнить этот код 
      

            } 
      return 
    1

    Вот так должен выглядеть код для данного стиля диалога. Тут мы проверяем значение listitem,
    т.е. пункта списка которого мы выберем в диалоге. listitem = 1 – это кольт, значит, в условную
    конструкцию listitem == 1 мы должны вписать функцию GivePlayerWeapon, чтобы дать оружие игроку.
    PHP код:
    if(listitem == 1//Если был выбран 1 пункт списка 

      
    GivePlayerWeapon(playerid,22,100); //Дать игроку кольт и 100 патронов 

    То же самое делаем и для остальных listitem. Вписываем ту же строчку, только вместо 22,
    пишем следующее: 23 – для кольта с глушителем, 24 – для пустынного орла (эти цифры, это ID модели
    этого оружия). ID модели смотрите на странице «ID оружия».
    Вообще, приведенный выше пример, очень схож с оператором switch, т.к. мы проверяем
    значение одного аргумента и в зависимости от этого значения выполняем действие. Тоесть, это все
    можно заменить на оператор switch, таким образом:
    PHP код:
    public OnDialogResponse(playeriddialogidresponselistiteminputtext[]) 

            if(
    dialogid == 0
           { 
              switch(
    listitem
            { 
        case 
    1//Если был выбран 1 пункт списка 
        

        
    //Выполнить этот код 
        

        case 
    2//Если был выбран 1 пункт списка 
        

        
    //Выполнить этот код 
        

              } 
            } 
      return 
    1

    Точно также можно поступить и с параметром dialogid, кому как удобнее.

    Ну вот и всё,это был последний урок про диалоги,спасибо всем за внимание.

  2. 1 пользователь сказал cпасибо Tolyanchik за это полезное сообщение:

    Нико (06.01.2013)

  3. #2
    Аватар для Brave
    Забанен(а)
    Регистрация
    05.11.2012
    Сообщений
    75
    Благодарностей
    3
    Сказали спасибо: 6
    Не рекомендую использовать if(dialogid, лучше через case, т.к оптимизация!

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •