Работа с файлами *.uc Устали от UnrealED или никогда не любили его ? По какой либо причине вы должны рассмотреть прямое редактирование файлов *.uc, это просто, вы можете использовать ваш собственный редактор (TextPad, NotePad, MS Visual Studio, и т.д.) и избежать некоторых проблем которые возникают когда вы работаете с UnrealED. Что такое файлы *.uc? Все *.uc файлы являются простыми текстовыми файлами которые содержат весь код для ваших UnrealScript классов и используются движком для компиляции package. Когда вы захотите сделать новый класс, все что вам надо сделать это создать новый текстовый файл в вашей директории Classes, изменить расширение на .uc с .txt и начать кодирование. Редактирование файлов *.uc Вы можете использовать любой текстовый редактор чтобы редактировать файлы *.uc и синтаксис для кода будет таким же как он был в UnrealED. Самый легкий путь сделать новый класс - сделать текстовый файл и просто изменить имя файла на MyNewClass.uc, затем открыть его и начать кодирование. Замечание: Необходимо чтобы имя класса определенное внутри .uc файла соответствовало имени файла; MyClass.uc должен быть определен как класс MyClass. Экспортирование файлов *.uc из Unreal Tournament Вероятно большинство ваших классов будет расширять существующие классы Unreal Tournament и таким образом в некоторых моментах вы возможно собираетесь смотреть на кода в этих классах. Есть два простых пути экспортрования классов, первый состоит в следующем. Загрузите UnrealED 2.0, выберите View -> Actor Class Browser и затем File -> Export All Scripts. Это должно создать дерево директорий в вашей директории UnrealTournament, включая Core, Engine, Editor, UWindow и т.д. Другой путь экспортирования классов используя утилиту UCC. Используя команду batchexport, вы можете экспортировать индивидуальные packages за один раз, используя такую команду: ucc batchexport botpack.u class c:\temp\botpack UCC загрузит package botpack.u и экспортирует все файлы *.uc в директорию c:\temp\botpack. Вы можете экспортировать большинство из packages, но некотрые классы UnrealScript имеют ключевое слово noexport и это заставит UCC выйти. Просто не пытайтесь экспортировать эти классы и все будет в порядке. Заметьте, что вы также можете использовать batchexport чтобы экспортировать звуки и текстуры, посмотрите здесь http://unreal.epicgames.com/ для большей информации. Компиляция с использованием UCC Для того чтобы скомпилировать ваш package используя UCC вым надо установить несколько вещей, так чтобы UCC знал что компилировать и мог найти все что ему надо. Директории проекта Первое, что вам надо, это быть уверенным, что вы имеете все ваши файлы в правильном месте. Допустим, что вы работаете над проектом названном ProBob, наиболее вероятно, что вы захотите чтоьы ваш package назывался ProBob.u, поэтому структура вашей директории должна выглядить как показано: x:\UnrealTournament ->\ProBob ->\Classes ->\Textures ->\Models ->\Sounds Вы захотите поместить все ваши классы (*.uc) в директорию Classes, любые картинки (*.bmp/*.pcx) в директорию Textures, любые модели (*.3ds/*_a.3d/*_d.3d) в директорию Models и так далее. Только директория Classes должна сохраняться, остальные из них вы можете изменить как вы хотите, но как основные правила говорят, хранить их как указано выше. Редактирование списка EditPackage Далее вам надо добавить имя вашего package куда-то в .ini чтобы UCC знал что это предполагается попробовать скомпилировать это. Самый легкий путь сделать это открыть файл UnrealTournament.ini и найти ряд строк которые должны выглядеть как указано: EditPackage=Core EditPackage=Engine EditPackage=Editor EditPackage=UWindow Просто идите в низ этого списка и добавьте EditPackage=ProBob, изменяя имя на имя вашего package. Важно, чтобы вы использовали такое же имя как вы использовали для названия вашей директории, иначе UCC не будет способен найти ваш код. Выполнение UCC Сейчас все в порядке и предполагается, что вы уже написали некоторые классы и поместили их в директорию Classes, вы должно быть готовы чтобы компилировать. Вам надо сделать это из командной строки или сделать bat файл чтобы запустить следующее: x:\UnrealTournament\System\> ucc make UCC должен начать компиляцию, обрабатывая список EditPackages последовательно и компилируя, если он не может найти уже скомпилированную версию package. Замечание: вы должны удалить любую скомпилированную версию package (ProBob.u в этом примере) из диретории UT\System чтобы перекомпилировать package. Если UCC находит существующий package он не будет компилировать новый, поэтому вы должны удалить его. Если возникает ошибка UCC прервет компиляцию и даст описание ошибки, в противном случае он запишет все скомпилированные packages и остановится. Проверьте вашу директорию System, если вы найдете ProBob.u (или имя вашего package) то все работает, иначе проверьте файл UCC.log и найдите ошибки. Использование пользовательских .ini Когда вы работаете над сложным проектом, иногда полезно использовать свой .ini файл для списка EditPackages для каждого package. Хорошая причина использовать раздельные списки, что не все packages собираются иметь одни и те же зависимости и вы можете сохранить себе немного времени на компиляцию удалив некоторые packages из списка. Например, если я работал над packages UWindow, мне вероятно нужны несколько packages из списка EditPackages: EditPackage=Core EditPackage=Engine EditPackage=UWindow EditPackage=ProBob Сейчас если я работаю над проектом который расширяет оружие UT, но не имеет ничего чтобы делать с UWindow, я мог бы иметь список как показано: EditPackage=Core EditPackage=Engine EditPackage=Botpack EditPackage=ProBob Исключая все ненужные packages вы можете получить больше эффективного времени на компиляцию. Сейчас сохранить эти списки в ваши собственные файлы .ini очень просто, сделайте новый текстовый файл, дайте ему имя как вы хотите (ProBob.ini) и затем отредактируйте его чтобы он выглядел как показано: [Engine.Engine] EditorEngine=Editor.EditorEngine [Core.System] Paths=../System/*.u Paths=../Textures/*.utx Paths=../Sounds/*.uax Paths=../Maps/*.unr Paths=../Musics/*.umx [Editor.EditorEngine] EditPackages=Core EditPackages=Engine EditPackages=ProBob Просто отредактируйте список EditPackages как необходимо для компиляции этого package и затем сохраните файл. Сейчас возьмите UCC чтобы использовать ваш новый .ini файл и все что вам надо сделать: x:\UnrealTournament\System\> ucc make INI=ProBob.ini Будьте уверены что поменяли ProBob.ini на имя вашего нового файла .ini и у вас все получится. Заключение И это очень здорово, будьте уверены что ваши директории в порядке, что вы отредактировали как надо для вашего package. Поскольку я советовал редакторы, я проверил TextPad (http://www.textpad.com/) и Multi-Edit (http://www.multiedit.com/) и даже хорошие программы редактирования для Дос.