Далее описывается пример создания 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