Создание первого мутатора
Несложная пошаговая инструкция по созданию самого простого мутатора.
Браузер Actor Classes в KF Editor показывает UnrealScript-классы из загруженных пакетов.
1. Прежде всего создайте в папке игры подпапку с именем будущего мутатора, а в ней папку Classes. Например, может получиться такая структура:
C:\Games\KF\NewMut\Classes
2. Далее в папке Classes создайте файл с расширением .uc, например Mut1.uc
3. Откройте в блокноте файл killingfloor.ini в подпапке System папки игры. Найдите строчку [Editor.EditorEngine] и добавьте после нее строку
EditPackages=ИмяПапкиСВашимМутатором
то есть в нашем случае
EditPackages=NewMut
4. Откройте в блокноте файл, созданный на шаге 2, и вставьте туда фрагмент кода
class Mut1 extends Mutator;
defaultproperties
{
GroupName="KFNewMut"
FriendlyName="Новый мутатор"
Description="Простой мутатор"
}
Обратите внимание на то, что после слова class должно стоять тоже имя, что и у файла, созданного на шаге 2. Так же имя, присваиваемое свойству GroupName всегда должно начинаться с букв KF. Сохраните файл.
5. Скомпилируйте мутатор. Для этого в подпапке System папки игры создайте файл с расширением .bat, например make.bat, и вставьте в него с помощью блокнота текст:
del NewMut.u
ucc make
del steam_appid.txt
Пояснения по коду. Первой строчкой мы удаляем наш скомпилированный мутатор, если он уже есть, так как если этого не сделать, то при внесении изменений в код мутатора после первой компиляции, они не вступят в силу. Второй строчкой мы заставляем утилиту ucc (файл ucc.exe должен быть в подпапке System установленной игры) скомпилировать все мутаторы killing floor, в том числе и наш. Третьей строкой мы удаляем файл, созданный ucc после компиляции, который мешает запуску игры.
6. Сохраните и запустите файл, созданный на шаге 5. Теперь в подпапке System папки игры у вас должно появиться два файла:
NewMut.u
NewMut.ucl
это сам мутатор и файл его описания.
Вот и все. Можете запустить игру, создать новую и на вкладке мутаторов увидеть свой новый мутатор. Наш мутатор не выполняет каких-либо функций, это просто оболочка.
Изучив unreal script, вы сможете написать уже функциональный мутатор. Начать изучение можно отсюда
Ошибка «Redefinition of function ... differs from original»
В обсуждении темы «Как создать мутатор для Killing Floor» на форуме killingfloor.ru при пересборке ServerPerks встречалась ошибка:
Error, Redefinition of 'function AddKill' differs from original in KFSteamStatsAndAchievements
Freddy объяснял её так: функция AddKill переопределена неправильно. При переопределении функции её интерфейс должен совпадать с оригиналом: тип и число параметров и тип возвращаемого значения. Найдите функцию AddKill в классе KFSteamStatsAndAchievements и сверьте с ней своё объявление.
Подробнее о сборке через ucc make: Компиляция пакетов через ucc make.