Шаблон мутатора

Шаблон мутатора

  • Тема закрыта
  • Вы не можете ответить в тему

Шаблон мутатора Шаблон мутатора Рассмотрим минимальный шаблон любого мутатора: Параметр GroupName Итак, В общем то уже из комментария к описанию переменной в классе Engine.Mutator становится ясно, что данная переменная используется, ...

Geekrainian #1

    • Группа: Администратор
    • Сообщений: 800

    Отправлено:

    Шаблон мутатора

    Рассмотрим минимальный шаблон любого мутатора:

    class TestMut extends Mutator;
    
    defaultproperties
    {
        GroupName="KF-TestMut"
        FriendlyName="TestMut"
        Description="Тестовый мутатор. Базовый шаблон"
    }

    Параметр GroupName

    Итак,
    В общем то уже из комментария к описанию переменной в классе Engine.Mutator

    var() cache string   GroupName; // Will only allow one mutator with this tag to be selected.

    становится ясно, что данная переменная используется, чтобы дать возможность заблокировать добавление мутаторов одной и той же группы.
    При желании можно посмотреть и реализацию этого механизма в Engine.GameInfo.AddMutator - не буду копировать сюда код, любознательные сами глянут, остальным это и не надо)

    Использование:
    1. Страховка от добавления мутаторов реализующих одно и то же (или идейно близкие вещи)
    2. Страховка от добавления конфликтующих мутаторов
    3. Я особо этим никогда не пользовался - жду от вас идеи, как это можно использовать

    Важное замечание:
    В KF есть страничка добавления мутаторов в игру - KFGui.KFMutatorPage
    И если мы внимательно поглядим на функцию SetCurrentGame, то мы увидим такой вот код:

    // ...
    for (i = 0; i < MutatorList.Length; i++)
    {
        if (Left(MutatorList[i].GroupName, 2) == "KF")
            lb_Avail.List.Add(MutatorList[i].FriendlyName,, MutatorList[i].Description);
    }

    Который означает, что в списке доступных мутаторов будут отображаться только мутаторы GroupName которых начинается на “KF”
    Поэтому не забывайте писать GroupName=“KFчтототам”, если хотите, чтобы ваш мутатор был доступен в этой менюшке
    Общепринятый подход: GroupName = “KF-НазваниеМутатора”

    Параметр FriendlyName

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

    Вы можете писать название мутатора и кириллицей (только не забывайте переключиться в кодировку Little Endian), например

    FriendlyName="Тестовый мутатор"

    Более того, вы можете раскрасить название мутатора, если вам уж совсем нехрен делать)
    Общепринятый для анриала способ “окраски” описан тут, например.
    Сделаем слово “Тестовый” красного цвета, а “мутатор” зелёного.

    Вы можете воспользоваться программкой ServerColor, я же воспользуюсь HEX редактором (я люблю редактор Hex Editor Neo).
    Итак, я возьму не чистые цвета, а просто те, что мне приглянулись.

    Префикс для красного цвета получится 1B D1 60 60
    Префикс для зелёного цвета получится 1B 3D B7 74
    Загоним эти значения в HEX редактор и получим С“ для красного цвета и =·t для зелёного.

    FriendlyName="С``Тестовый =·tмутатор"

    Параметр Description

    Это описание мутатора. Опять же можно сделать на русском и цветным.
    Сделаем его синим
    Префикс: X“П

    Description="X“ПТестовый мутатор. Базовый шаблон"

    Результат

    В итоге получили такой вот мутатор:

    class TestMut extends Mutator;
    
    defaultproperties
    {
        GroupName="KF-TestMut"
        FriendlyName="С``Тестовый =·tмутатор"
        Description="X“ПТестовый мутатор. Базовый шаблон"
    }

    [Изображение: Bs4cx3u.png]

    Автор статьи: Команда 2/5

    Назад