Как закрыть и открыть главное окно управления(где текущее од, оружие, кнопки инвентаря и т.д)

Тема в разделе "Техподдержка", создана пользователем Ametist, 12 июл 2016.

  1. Ametist

    Ametist

    Регистрация:
    22 мар 2014
    Ранее всегда было удобно на F4 скрывать и открывать интерфейс. Сейчас же в 476 ревизии это не работает.
    Попытался добавлять в файл input.fos:
    Для открытия, если закрыто:
    Код:
    else if
    ( key == DIK_F4 && screen.Index != CLIENT_MAIN_SCREEN_GAME )
    ShowScreen( CLIENT_MAIN_SCREEN_GAME );
    
    И для закрытия, если открыто
    Код:
    else if
    ....
    ( key == DIK_F4 && screen.Index == CLIENT_MAIN_SCREEN_GAME )
    ....
    {
    TryExit();
    }
    
    Тут я либо ошибся, либо окно CLIENT_MAIN_SCREEN_GAME это тоже самое, что и CLIENT_SCREEN_MENU, так как работает одинакого. Подставлял оба и одинакого работает.

    Как можно решить эту вроде как с первого взгляда легкую задачу?))
    Последнее редактирование: 12 июл 2016
  2. Krizalis

    Krizalis

    Регистрация:
    8 янв 2015
    Возможно, кому-то пригодится, я починил таким образом:

    Найти строку в input.fos:
    Код:
    GUIScreen@ screen = GUI_GetActiveScreen();
    Добавить ниже:
    Код:
    GUIPanel@ mainPanel = screen.FindPanel( "Main" );
    Там, где обработка на F4, просто переписать на:
    Код:
    case DIK_F4:
    if (screen.Index == CLIENT_MAIN_SCREEN_GAME)
    {
    mainPanel.Active ? mainPanel.SetActive(false) : mainPanel.SetActive(true);
    }
    То есть скрываю не весь интерфейс, а только класс Main из Game, в противном случае у меня получалось скрывать/раскрывать панель, но не реагировал курсор.
    Arh-Wish нравится это.
  3. Krizalis

    Krizalis

    Регистрация:
    8 янв 2015
    Вдогонку отмечу, что F5 в 476-ой тоже не работает, поэтому починил через:
    Код:
    messageBox.IsChecked ? messageBox.SetChecked(false) : messageBox.SetChecked(true);
    Где messageBox:
    Код:
    GUICheckBox@ messageBox = screen.FindCheckBox( "ExtendMessageBox" );
    Сам FindCheckBox можно дописать в gui_h.fos по аналогии с остальными:
    Код:
    GUICheckBox@ FindCheckBox( string& name )
    	{
    		return cast< GUICheckBox >( Find( name ) );
    	}
    Или как-то обратиться через GUIObject, что у меня не вышло.

Поделиться этой страницей