Полезные приёмы в редакторе StarCraft 2

Содержание:
В интерфейсе StarCraft 2 существует множество различных типов фреймов, их количество достигает восьми тысяч. Многие из них можно использовать как стандартные элементы интерфейса, такие как Button или Editbox. Однако есть и недоступные типы фреймов, которые помечены как «Только для Blizzard».
Например:
  • MovieFrame - позволяющий проигрывать видеоролики в формате .ogv на экране.
  • LaunchURLButton - способен по нажатию кнопки перевести по записанной ссылке в Веб
  • TalkerFrame - Может расширить и упростить систему брифинга персонажей в духе StarCraft Brood War.
и много других...

Есть способ использовать такие фреймы — Шаблоны
Для этого нужно найти заранее созданный фрейм от Blizzard, содержащий необходимый заблокированный тип фрейма, а затем создать новый фрейм с типом родителя, содержащего нужный тип фрейма.

Пример с LaunchURLButton

Рассмотрим пример с LaunchURLButton. Добавим новый фрейм и назовём его URL, а также сделаем его по шаблону ScreenCustomFeatured/CTABannerTemplate.
В этом шаблоне как раз находится готовый фрейм LaunchURLButton
<!-- URL Template -->
    <Frame type="Frame" name="URL" template="ScreenCustomFeatured/CTABannerTemplate">
        <Frame type="LaunchURLButton" name="WebsiteButton" template="TemplateButtonLinkSC2Plus/MenuBarButtonTemplate">
            <Anchor side="Top" relative="$parent" pos="Min" offset="0" />
            <Anchor side="Left" relative="$parent" pos="Min" offset="0" />
            <Anchor side="Right" relative="$parent" pos="Max" offset="0" />
            <Anchor side="Bottom" relative="$parent" pos="Max" offset="0" />
            <Width val="0" />
            <Height val="0" />    
        </Frame>
        <Frame type="Frame" name="BannerImage">
            <DescFlags val="CreationDeferred" />
        </Frame>
        <Frame type="Frame" name="BorderInner">
            <DescFlags val="CreationDeferred" />
        </Frame>
        <Frame type="Frame" name="BorderOuter">
            <DescFlags val="CreationDeferred" />
        </Frame>
        <Frame type="Frame" name="BannerVignette">
            <DescFlags val="CreationDeferred" />
        </Frame>
        <Frame type="Frame" name="DescriptionLabel">
            <DescFlags val="CreationDeferred" />
        </Frame>
        <Frame type="Frame" name="HeaderLabel">
            <DescFlags val="CreationDeferred" />
        </Frame>
        <Frame type="Frame" name="MoreInfoLabel">
            <DescFlags val="CreationDeferred" />
        </Frame>
    </Frame>
Кнопка WebsiteButton, наша цель
С помощью тегов <Anchor/> мы передвинули её в центр своего родителя, а также обнулили высоту и ширину соответствующими тегами

Теперь чуть ниже создадим новый фрейм уже в области GameUI, для того чтобы отобразить наш фрейм в игре
<Frame type="Frame" name="GameUI/UIContainer/MyLinkFrame" template="YourLayoutFile/URL">
    <Width val="65"/>
    <Height val="65"/>

    <Frame type="LaunchURLButton" name="WebsiteButton">
        <Anchor relative="$parent"/>
        <URL val="#URLWebsite"/>
    </Frame>
</Frame>
А для удобства в самом верху макета, добавим константу URLWebsite в которой будем хранить ссылку для перехода на сайт
<Constant name="URLWebsite" val="https://xgm.guru/" /> // Здесь в val может быть любая ваша ссылка

Заключение

В результате мы получим кнопку с URL, который будет перенаправлять пользователя на указанный сайт. Это позволит создавать кнопки внутри игры, которые будут автоматически перенаправлять игрока на нужный сайт или дискорд.

Остались вопросы? Задайте их сообществу! Задать вопрос
`
ОЖИДАНИЕ РЕКЛАМЫ...