Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 14

Тема: Диалог

  1. #1
    Аватар для Vince
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.06.2015
    Сообщений
    11
    Репутация:
    0 ±

    Диалог

    Здравствуйте!

    Хочу чтобы при открытии одного из списка меню (listitem), и при нажатии кнопки назад, окно не закрывалось, а перекидывало в главное меню, но ничего не выходит, делаю так:

    PHP код:
    public OnDialogResponse(playeriddialogidresponselistiteminputtext[])
    {
        if(
    response)
         {
            switch(
    dialogid)
             {
                  case(
    dMs):
                {
                    if(
    response)
                    {
                         switch(
    listitem)
                           {
                               case 
    0:
                             
    ShowPlayerDialog(playeriddStatsDSM"Статистика","Тест","Назад","");
                             case 
    1:
                             
    ShowPlayerDialog(playeriddCommandsDSM"Команды","Тест","Назад","");
                           }
                    }
                    else
                    {
                        return 
    ShowPlayerDialog(playeriddMsDSL"Меню","1. Статистика\n2. Команды\n3. Задать вопрос\n4. Репорт\n5. Настройки","Принять","Выйти");
                    }
                 }
            }
        }
         return 
    1;

    То есть, при нажатии в диалоге dStats на кнопку "Назад", нужно чтобы выкидывало в диалог dMs

  2. #2
    Аватар для ArtyomG
    Пользователь

    Статус
    Оффлайн
    Регистрация
    18.05.2014
    Сообщений
    2
    Репутация:
    0 ±
    Попробуйте
    PHP код:
    else ShowPlayerDialog(playeriddMsDSL"Меню","1. Статистика\n2. Команды\n3. Задать вопрос\n4. Репорт\n5. Настройки","Принять","Выйти"); 

  3. #3
    Аватар для Vince
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.06.2015
    Сообщений
    11
    Репутация:
    0 ±
    Куда этот else? И что поменялось?

  4. #4
    Аватар для Sp1ke
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.03.2015
    Сообщений
    245
    Репутация:
    55 ±
    PHP код:
                        return ShowPlayerDialog(playeriddMsDSL"Меню","1. Статистика\n2. Команды\n3. Задать вопрос\n4. Репорт\n5. Настройки","Принять","Выйти"); 
    Цитата Сообщение от ArtyomG Посмотреть сообщение
    Попробуйте
    PHP код:
    else ShowPlayerDialog(playeriddMsDSL"Меню","1. Статистика\n2. Команды\n3. Задать вопрос\n4. Репорт\n5. Настройки","Принять","Выйти"); 
    Не дошло?

  5. #5
    Аватар для Vince
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.06.2015
    Сообщений
    11
    Репутация:
    0 ±
    PHP код:
    public OnDialogResponse(playeriddialogidresponselistiteminputtext[])
    {
        if(
    response)
         {
            switch(
    dialogid)
             {
                  case(
    dMs):
                {
                    if(
    response)
                    {
                         switch(
    listitem)
                           {
                               case 
    0:
                             
    ShowPlayerDialog(playeriddStatsDSM"Статистика","Тест","Назад","");
                             case 
    1:
                             
    ShowPlayerDialog(playeriddCommandsDSM"Команды","Тест","Назад","");
                           }
                    }
                    else
                    {
                        
    ShowPlayerDialog(playeriddMsDSL"Меню","1. Статистика\n2. Команды\n3. Задать вопрос\n4. Репорт\n5. Настройки","Принять","Выйти");
                    }
                 }
            }
        }
         return 
    1;

    Вот весь паб целеком, убрал ретерн, диалог не выводится(

  6. #6
    Аватар для Niko_Grey
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.03.2014
    Сообщений
    40
    Репутация:
    1 ±
    Используйте
    PHP код:
    else
                    {
                        
    ShowPlayerDialog(playeriddMsDSL"Меню","1. Статистика\n2. Команды\n3. Задать вопрос\n4. Репорт\n5. Настройки","Принять","Выйти");
                    } 
    В диалогах dStats и dCommands

  7. #7
    Аватар для Vince
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.06.2015
    Сообщений
    11
    Репутация:
    0 ±
    Цитата Сообщение от Niko_Grey Посмотреть сообщение
    Используйте
    PHP код:
    else
                    {
                        
    ShowPlayerDialog(playeriddMsDSL"Меню","1. Статистика\n2. Команды\n3. Задать вопрос\n4. Репорт\n5. Настройки","Принять","Выйти");
                    } 
    В диалогах dStats и dCommands
    Сделал так:

    PHP код:
    public OnDialogResponse(playeriddialogidresponselistiteminputtext[])
    {
        if(
    response)
        {
            switch(
    dialogid)
             {
                case 
    dMs:
                {
                    switch(
    listitem)
                      {
                         case 
    0:
                         {
                             if(
    response)
                            {
                                
    ShowPlayerDialog(playeriddStatsDSM"Статистика","Тест","Назад","");
                            }
                            else
                            {
                                
    ShowPlayerDialog(playeriddMsDSL"Меню","1. Статистика\n2. Команды\n3. Задать вопрос\n4. Репорт\n5. Настройки","Принять","Выйти");
                            }
                        }
                    }
                 }
              }
          }
          else
          {
               return 
    0;
          }
        return 
    1;

    Диалог dStats просто закрывается

  8. #8
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от Vince Посмотреть сообщение
    Сделал так:

    PHP код:
    public OnDialogResponse(playeriddialogidresponselistiteminputtext[])
    {
        if(
    response)
        {
            switch(
    dialogid)
             {
                case 
    dMs:
                {
                    switch(
    listitem)
                      {
                         case 
    0:
                         {
                             if(
    response)
                            {
                                
    ShowPlayerDialog(playeriddStatsDSM"Статистика","Тест","Назад","");
                            }
                            else
                            {
                                
    ShowPlayerDialog(playeriddMsDSL"Меню","1. Статистика\n2. Команды\n3. Задать вопрос\n4. Репорт\n5. Настройки","Принять","Выйти");
                            }
                        }
                    }
                 }
              }
          }
          else
          {
               return 
    0;
          }
        return 
    1;

    Диалог dStats просто закрывается
    Ну так правильно, вы ж сами зачем-то сделали проверку if(response) в самом начале функции. Из-за неё никакие диалоги не будут обрабатываться, если игрок нажмёт "Назад".
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  9. #9
    Аватар для Vince
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.06.2015
    Сообщений
    11
    Репутация:
    0 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Ну так правильно, вы ж сами зачем-то сделали проверку if(response) в самом начале функции. Из-за неё никакие диалоги не будут обрабатываться, если игрок нажмёт "Назад".
    Я думал так, если "правда" открывается dStats, все остальное возвращает dMs

    - - - Добавлено - - -

    PHP код:
    public OnDialogResponse(playeriddialogidresponselistiteminputtext[])
    {
            switch(
    dialogid)
             {
                case 
    dMs:
                {
                    switch(
    listitem)
                      {
                         case 
    0:
                         {
                             if(
    response)
                            {
                                
    ShowPlayerDialog(playeriddStatsDSM"Статистика","Тест","Назад","");
                            }
                            else
                            {
                                
    ShowPlayerDialog(playeriddMsDSL"Меню","1. Статистика\n2. Команды\n3. Задать вопрос\n4. Репорт\n5. Настройки","Принять","Выйти");
                            }
                        }
                    }
                 }
              }
            return 
    1;

    Сделал так, теперь в самом меню dMs, при нажатии на "Выход", он по новой открывается, то есть просто не выходит

  10. #10
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Ветку else не в тот диалог поставили. Вам же нужно обработать выбор пункта "Назад" или нажатие "Esc" в диалоге dStats, а не dMs.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

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

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

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

Ваши права

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