Далее описывается пример
создания u-файла "с нуля" с целью запуска группы карт (т.н.маппака) в Unreal Tournament’99 с помощью меню патча OldSkool. В файле должна
быть картинка, которую можно создать самому или сделать скриншот
с карты. На ваш вкус. Как сделать картинку здесь не рассматривается. Для
примера я выдрал скомпилированную картинку из какой-то
CTF-карты.
1. В папке с UT создаём папку с
произвольным именем, например, StvaanMappack, или MyLevel,
или 12345. Но лучше сразу определиться с именем, чтобы потом файл не
переименовывать.
2. Внутри создаём папку Classes
3. Внутрь папки Classes кладём (или создаём с нуля) файлы скриптов с расширением .uc (в нашем примере всего один файл StvaanMappack.uc)
4. Текст скрипта приведён ниже:
//======================================================================
// StvaanMappack. Uncompleted yet...
//======================================================================
#exec texture import Name=screenshot File=..\textures\screenshot.pcx
GROUP=screenshot MIPS=off
class StvaanMappack expands mappack;
defaultproperties
{
Maps(0)=UnOd1
Author="Stvaan Ivanhoe, 2006"
Title="Uncompleted..."
Screenshot=Texture' StvaanMappack.Screenshot.Screenshot'
}
Что мы видим?
Комментарии определяются двойным прямым слэшем //
Команда #exec texture import будет импортировать картинку из папки текстур с именем screenshot.pcx. Картинка должна иметь палитру UT и размер 256х256 пикселей.
Далее определяется класс создаваемого файла. Поскольку у нас это "запускалка" для маппака, то вслед за произвольным именем класса указывается материнский класс, - mappack. Он описывается файлом olroot.u
Строка Maps(0)=UnOd1 определяет имя карты, с которой
осуществляется старт маппака. Чтобы маппак после компиляции стартовал, карта с именем UnOd1
должна лежать в папке \Maps.
Всего строк с именем карт может быть не более 43.
Ну Author и Title - это любая отсебятина длиной не более 56 символов, включая пробелы, которая будет отображаться в браузере UT поверх картинки.
5. Чтобы во время последующей компиляции всё было правильно, оба класса (существующий, а потом создаваемый!) должны быть определены в файле unrealtournament.ini.
Далее приводится фрагмент этого файла (раздел [Editor.EditorEngine]) с уже добавленными нужными строками (выделены жирным шрифтом):
{cut}
C_ZoneWire=(R=0,G=0,B=0,A=0)
EditPackages=Core
EditPackages=Engine
EditPackages=Editor
EditPackages=UWindow
EditPackages=Fire
EditPackages=IpDrv
EditPackages=UWeb
EditPackages=UBrowser
EditPackages=UnrealShare
EditPackages=UnrealI
EditPackages=UMenu
EditPackages=IpServer
EditPackages=Botpack
EditPackages=UTServerAdmin
EditPackages=UTMenu
EditPackages=UTBrowser
EditPackages=olroot
EditPackages=StvaanMappack
[UMenu.UnrealConsole]
{cut}
6. Затем, находясь в папке \System, выполняем в командной строке Windows (но лучше пользоваться файловым менеджером с поддержкой командной строки - нагляднее):
ucc make
Запускается Unreal Code Compiler и последовательно проверяет существующие в директории \System u-файлы, при этом имея в виду найденные им ранее файлы с расширением uc. Т.е. он по порядку, указанному в файле unrealtournament.ini, пропустит существующие u-файлы, а дойдя до строки,
EditPackages= StvaanMappack
начнёт компиляцию.
Если всё завершится удачно, вы увидите такую картинку (рис.1), а в папке \System появится файл StvaanMappack.u.
7. Теперь нужно создать в директории \System соответствующий новому u-файлу текстовый файл с расширением int. В нашем примере это будет файл StvaanMappack.int такого содержания:
[public]
Object=(Name=StvaanMappack.StvaanMappack,Class=Class,MetaClass=olroot.MapPack)
Рис. 1
8. Запускаем UT, выбираем New Single Player Game -> Map Pack, наблюдаем чудо (рис.2)
Рис. 2