Jump to content
Korean Random

Уши: отображение взводов в средних и коротких


Recommended Posts

Возможно ли сделать чтобы столбец с иконками взводов был не только в полных ушах, но также и в средних и в коротких ?

 

Кажется понял что нужно тобы добавить столбец взвода в medium-уши, в Short не совсем понятно что править.

 

Смотрим код PlayersPanel.as.

 

Было:

    function XVMAdjustPanelSize()
    {
        //Logger.add("PlayersPanel.XVMAdjustPanelSize()");


        var namesWidthDefault = 46;
        var namesWidth = namesWidthDefault;
        var vehiclesWidthDefault = 65;
        var vehiclesWidth = vehiclesWidthDefault;
        var widthDelta = 0;
        var squadSize = 0;
        switch (m_state)
        {
            case "medium":
                namesWidth = Math.max(XVMGetMaximumFieldWidth(m_names), Config.s_config.playersPanel.medium.width);
                widthDelta = namesWidthDefault - namesWidth;
                break;
            case "medium2":
                vehiclesWidth = Config.s_config.playersPanel.medium2.width;
                widthDelta = vehiclesWidthDefault - vehiclesWidth;
                break;
            case "large":
                namesWidthDefault = 296;
                namesWidth = Math.max(XVMGetMaximumFieldWidth(m_names), Config.s_config.playersPanel.large.width);
                vehiclesWidth = XVMGetMaximumFieldWidth(m_vehicles);
                squadSize = Config.s_config.playersPanel.removeSquadIcon ? 0 : SQUAD_SIZE;
                widthDelta = namesWidthDefault - namesWidth + vehiclesWidthDefault - vehiclesWidth - squadSize + SQUAD_SIZE;
                break;
            default:
                m_list._x = players_bg._x = (m_type == "left") ? STATES[m_state].bg_x : players_bg._width - STATES[m_state].bg_x;
                return;
        }


        m_names._width = namesWidth;
        m_vehicles._width = vehiclesWidth;


        if (m_names && m_names._visible)
            leadingNames = 29 - XVMGetMaximumFieldHeight(m_names);


        if (m_vehicles && m_vehicles._visible)
            leadingVehicles = 29 - XVMGetMaximumFieldHeight(m_vehicles);


        if (m_type == "left")
        {
            m_names._x = squadSize;
            m_frags._x = m_names._x + m_names._width;
            m_vehicles._x = m_frags._x + m_frags._width;
            m_list._x = players_bg._x = STATES[m_state].bg_x - widthDelta;
            if (squadSize > 0)
                m_list.updateSquadIconPosition(-m_list._x);
        }
        else
        {
            m_names._x = players_bg._width - m_names._width - squadSize;
            m_frags._x = m_names._x - m_frags._width;
            m_vehicles._x = m_frags._x - m_vehicles._width;
            m_list._x = players_bg._x = players_bg._width - STATES[m_state].bg_x + widthDelta;
            if (squadSize > 0)
                m_list.updateSquadIconPosition(-440 + m_names._width + m_frags._width + m_vehicles._width + squadSize);
        }
    }

 

Стало:

    function XVMAdjustPanelSize()
    {
        //Logger.add("PlayersPanel.XVMAdjustPanelSize()");


        var namesWidthDefault = 46;
        var namesWidth = namesWidthDefault;
        var vehiclesWidthDefault = 65;
        var vehiclesWidth = vehiclesWidthDefault;
        var widthDelta = 0;
        var squadSize = 0;
        switch (m_state)
        {
            case "medium":
                namesWidth = Math.max(XVMGetMaximumFieldWidth(m_names), Config.s_config.playersPanel.medium.width);
                squadSize = Config.s_config.playersPanel.alwaysShowSquadIcon ? SQUAD_SIZE : 0; //Добавка
                widthDelta = namesWidthDefault - namesWidth + SQUAD_SIZE;                      //Не уверен как правильнее будет  "+ SQUAD_SIZE" или "+ squadSize"
                break;
            case "medium2":
                vehiclesWidth = Config.s_config.playersPanel.medium2.width;
                squadSize = Config.s_config.playersPanel.alwaysShowSquadIcon ? SQUAD_SIZE : 0; //Добавка
                widthDelta = vehiclesWidthDefault - vehiclesWidth + SQUAD_SIZE;                //Не уверен как правильнее будет  "+ SQUAD_SIZE" или "+ squadSize"
                break;
            case "large":
                namesWidthDefault = 296;
                namesWidth = Math.max(XVMGetMaximumFieldWidth(m_names), Config.s_config.playersPanel.large.width);
                vehiclesWidth = XVMGetMaximumFieldWidth(m_vehicles);
                squadSize = Config.s_config.playersPanel.removeSquadIcon ? 0 : SQUAD_SIZE;
                widthDelta = namesWidthDefault - namesWidth + vehiclesWidthDefault - vehiclesWidth - squadSize + SQUAD_SIZE; //Не уверен что тут правильно "+ SQUAD_SIZE" а не "+ squadSize"
                break;
            default:
                m_list._x = players_bg._x = (m_type == "left") ? STATES[m_state].bg_x : players_bg._width - STATES[m_state].bg_x;
                return;
        }


        m_names._width = namesWidth;
        m_vehicles._width = vehiclesWidth;


        if (m_names && m_names._visible)
            leadingNames = 29 - XVMGetMaximumFieldHeight(m_names);


        if (m_vehicles && m_vehicles._visible)
            leadingVehicles = 29 - XVMGetMaximumFieldHeight(m_vehicles);


        if (m_type == "left")
        {
            m_names._x = squadSize;
            m_frags._x = m_names._x + m_names._width;
            m_vehicles._x = m_frags._x + m_frags._width;
            m_list._x = players_bg._x = STATES[m_state].bg_x - widthDelta;
            if (squadSize > 0)
                m_list.updateSquadIconPosition(-m_list._x);
        }
        else
        {
            m_names._x = players_bg._width - m_names._width - squadSize;
            m_frags._x = m_names._x - m_frags._width;
            m_vehicles._x = m_frags._x - m_vehicles._width;
            m_list._x = players_bg._x = players_bg._width - STATES[m_state].bg_x + widthDelta;
            if (squadSize > 0)
                m_list.updateSquadIconPosition(-440 + m_names._width + m_frags._width + m_vehicles._width + squadSize);
        }
    }

И потребуется еще 1 параметр в конфиг - alwaysShowSquadIcon

Link to comment
Short link
Share on other sites

Ни разу не наглядно

Те строки где коммент на русском - там и изменения.

Осталось только понять как это дело собрать чтобы проверить заработает ли как ожидается :)

Гайд прочел, но пока не вышло по нему провернуть проверку.

Link to comment
Short link
Share on other sites

Там самой иконки нет. Выставление параметров размера ничего не меняет.

Тогда как это сделать правильно ?

Смотрю на исходник флешки - и в упор не вижу в спрайте панели (том который с метками по типам ушей) отдельного слоя для больших ушей для отображения взвода, хоть он там явно быть должен судя из логики работы переключения их режимов.

 

А раз его там нет - всё дело в выставлении положения и ширины полей, а иконка взвода может рисоваться всегда, но она по умолчанию может быть за краем экрана.

 

Попробовал подвигать уши через конфиг - таки да, иконка взвода есть во всех ушах но ее не видно нигде кроме самых больших.

Скрин левого уха с явно указанным x=500:

post-7736-0-99270200-1366468508_thumb.png

Edited by Thunderbo1t
Link to comment
Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...