Шаблон мутатора
Рассмотрим минимальный шаблон любого мутатора:
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]](http://i.imgur.com/Bs4cx3u.png)
Автор статьи: Команда 2/5