Террор в райском городе. Создание мода для Postal 2
Парадиз-сити. На улицах царит порядок. По тротуарам прогуливаются мирные граждане. В подворотнях мяукают кошки. В уютных зеленых двориках заливаются лаем собаки. Полицейские вальяжно ходят вдоль торговых рядов, высматривая карманников.  …;Внезапно из подворотни вываливается широкоплечий парень в армейской форме с огнеметом наперевес. Курок — нажат. Иска воспламеняет напалм…  …;На улицах — хаос. На тротуарах лежат останки жителей.
- Надоело быть кровожадным преступником? Хотите побыть копом? Нет ничего проще!
Те, кто чудом остался жив, — бегут. Кровь ручейками стекает в водостоки вдоль поребриков. В воздухе стоит нестерпимый запах горелой плоти. Думаете, это безумие? Нет, это новая модификация игры Postal 2 , созданием которой мы сегодня займемся. Игровая директория В основной директории игры нас интересуют три папки: \Maps , \Music и \System. Первая содержит игровые карты, представленные файлами с расширением .fuk (все карты можно просматривать и редактировать в местном редакторе POSTed — специальной версии редактора UnrealEd). Каталог \Music вместил используемые в игре музыкальные композиции, записанные в формате ogg , который применяется во многих играх на движке Unreal. Если вы желаете их прослушать или заменить, используйте программу dBpowerAMP с установленным на нее кодеком dBpwerAMP Ogg Vorbis Codec (забирайте с нашего компакта ). В директории \System размещено множество файлов форматов int , rut и ini , содержащих те или иные игровые параметры (все эти файлы могут быть отредактированы с помощью стандартного " Блокнота "). Файлы первых двух типов абсолютно идентичны и в большинстве своем содержат игровые тексты. После редактирования любого int-файла обязательно внесите те же изменения в rut-файл с тем же именем, и наоборот. Что касается файлов формата ini, то они хранят в себе игровые настройки, многие из которых не поддаются изменениям из игрового меню. Жажда — ничто, имидж — все Первый ini-файл, требующий редактирования, — это User.ini. Он состоит из множества разделов, имена которых заключены в квадратные скобки. Каждый такой раздел объединяет в себе ту или иную группу однотипных игровых параметров.
- Окно Textures редактора POSTed
Значения большинства параметров можно задать в игровом меню, но есть и “скрытые” настройки, доступ к которым можно получить только через файл User.ini (мы будем говорить только о таких настройках). Нас интересует только первый раздел файла — DefaultPlayer , который включает важнейший параметр под названием Class , определяющий, за какого героя вы будете играть. Возможных значений у атрибута множество, так как в игре достаточно много различных персонажей, и вы можете сыграть за любого из них. Приведу обозначения самых колоритных и необычных персонажей, которые следует подставлять в качестве значения атрибута: People.Gary (местная “звезда” Гари Коллман), BasePeople.SWAT (спецназовец), BasePeople.CopBlack (полицейский в черной форме), BasePeople.CopBlue (коп в синей форме), BasePeople.CopBrown (в коричневой), People.Kumquat (девушка с пистолетом), BasePeople.Military (военный), People.UncleDave (дядя Дейв), BasePeople.Rednecks (деревенщина), BasePeople.Slaughterers (мясник), BasePeople.Mallworkers (продавец), BasePeople.Robber (грабитель), BasePeople.Bums (уличный бродяга), BasePeople.Parcelworkers (почтальон), BasePeople.Scientist (ученый), BasePeople.Fanatics (арабский террорист). Придавая параметру указанные выше значения, вы получаете возможность пройти игру новым персонажем. Можно даже поиграть за блюстителей порядка! Обратите внимание, что вы не просто “переодеваете” персонажа в новую шкурку, но и изменяете все его характеристики, физические данные (например, быстрота потери здоровья в случае, когда персонаж подвергается атаке), средства вооружения, которыми он наделен с момента “рождения”, и даже голос (правда, на озвучку скриптовых сценок это не влияет). Следующий этап вскрытия — правка файла postal2.ini. В нем нам нужен раздел Engine.GameInfo , содержащий следующие атрибуты: GoreLevel — уровень насилия в игре.
Видеоплеер
Как и в большинстве других игр на движке Unreal, в Postal 2 встроена возможность записывать демки. Причем в данном случае эта возможность полезна как никогда: вы можете увековечить все свои многочисленные преступления и подвиги. К сожалению, реализована запись повторов не лучшим образом — через консоль. Каждый раз прописывать команды в консоль — неудобно. Но можно создать удобный видеоплеер путем редактирования файла User.ini из каталога \System и назначения на определенные клавиши команд DEMOREC , STOPDEMO , DEMOPLAY и DEMOPLAY X?3rdperson. О том, как это делается, мы уже писали в статьях по вскрытию Unreal Tournament (№6 “Игромании” за 2002 год) и Unreal 2: The Awakening (№7, 2003 год).
Возможные варианты: 1 , 2. Ставьте “2”, и игра станет еще более жестокой (в первую очередь это вызовет повышение кровавости игры). AutoAim — автоприцеливание. Параметр принимает значения от 0 до 1 , чем выше значение, тем точнее прицел. GameSpeed — скорость игры, влияет на скорость передвижения персонажей, быстроту стрельбы и многое другое. Довольно забавно играть, хотя и непросто, при высокой скорости (например, при значении “2”). Другой раздел файла, Postal2Game.P2GameInfo , также содержит ряд важных настроек: GameDifficulty — уровень сложности. Обратите внимание на то, что параметр принимает дробные значения, что позволяет вам создавать промежуточные уровни сложности. Если вы суперигрок и без труда проходите игру на самой высокой сложности, можно сделать игру сверхсложной (например, выставив значение 11). bPlayerPissedHimselfOut — параметр определяет, может ли ваш персонаж без вашего ведома мочиться в случае необходимости ( True — да, False — нет). Необходимость эта наступает через определенные промежутки времени. Если активировать параметр, игра станет более сложной (когда персонаж испустит живительную струю влаги, это сразу привлечет внимание копов) и в то же время более реалистичной. bCoopWeaponMode — возможность атаковать врагов двумя видами оружия одновременно ( True — включена, False — отключена). Совмещать можно не все виды оружия (скажем, пинок и удар лопатой). Заглянем в файл gametypes.int. Первый раздел — GameSinglePlayer — содержит только две настройки: DefaultPlayerName и GameName. Назначение последней не совсем понятно, и ее трогать не нужно. Что касается характеристики DefaultPlayerName, то она задает имя вашего героя (в локализованной версии по умолчанию — “Чувак”). Теперь у вас есть возможность назвать главного героя своим реальным именем.
- Перед вами - результат увеличения “кровяных” текстур. Столько крови не было, наверное, еще ни в одной игре!
В файле также имеются разделы DayBase11 , DayBase1 , DayBase2 , DayBase3 и DayBase4 , каждый из которых несет в себе параметр Description , определяющий название каждого игрового дня. Можно заменить дни недели, скажем, на месяцы. Действие игры как бы растянется во времени: по умолчанию все задания выполняются всего за пять дней. Подправив файл, скопируйте его поверх файла gametypes.rut , изменив расширение. Только после этого внесенные изменения вступят в силу. Перевоплощение Мы разобрались с основными игровыми параметрами и их предназначением, самое время заняться перерисовкой текстур. Текстуры разбиты на группы и в соответствии с этим упакованы в архивы, хранящиеся в директории \Textures в виде utx -файлов. Чтобы изменить ту или иную текстуру, в первую очередь нужно запустить игровой редактор POSTed. В нем — выбрать пункт меню View/Show Texture Browser , на экране появится окошко Textures , где вы можете просматривать игровые текстуры и изменять их. В окне располагаются два выпадающих списка, в верхнем из которых нужно выбрать группу текстур (каждой группе текстур соответствует свой utx-файл из каталога \Textures), а в нижнем — подгруппу (чуть ниже располагаются уменьшенные изображения текстур из выбранной подгруппы). Названия основных групп текстур: AnimalSkins (скины животных), ChameleonSkins (текстуры различных игровых персонажей, каждой части тела соответствует своя подгруппа текстур), ChamelHeadSkins (скины для лиц игровых персонажей), HUDPack (картинки экрана героя), nathans (следы повреждений от оружия, а также пятна и лужи крови), Josh-texture (текстуры стен и пола), P2Misc (всевозможные значки, логотипы и надписи), StuffSkins (скины различных вещей, которые главный герой может держать в руках и использовать), Timb (текстуры объектов, которые нельзя взять, — машин, холодильников, игровых автоматов), WeaponSkins (текстуры различных видов оружия).
В каждой группе текстур существуют свои подгруппы. В каждой такой подгруппе и находятся сами текстуры в виде файлов формата dds. Чтобы подредактировать любую текстуру, вы должны сначала вытащить ее из архива. Для этого нужно кликнуть левой кнопкой мыши на изображении текстуры и в окне Textures выбрать пункт меню File/Export , после чего останется только указать путь извлекаемого на свет графического файла. Следующий шаг — перевод разархивированной текстуры из формата dds в tga — осуществляется с помощью набора утилит DXT Tools (находится на нашем компакте ). Запустите входящий в пакет файл readdxt.exe с параметром: readdxt <имя dds-файла> (к примеру, readdxt C:\Games\Postal 2\dog.dds ). В директории с программой появится файл test.tga , содержащий текстуру из указанного вами dds-файла. Переименуйте файл test.tga, назвав его так же, как dds-файл с текстурой. Полученную картинку формата tga можно редактировать в любом многофункциональном графическом редакторе (лучше всего использовать для этого Photoshop ). После внесения необходимых изменений в tga-файл упакуйте его в utx-архив. Для этого откройте редактор карт игры и снова вызовите окно Textures , в нем выберите пункт меню File/Import и укажите путь tga-файла с подредактированной текстурой. Затем кликаете на пункт File/Save (не забудьте подтвердить выбор нажатием клавиши Enter ), чтобы сохранить внесенные в структуру архива изменения. Можно приступать непосредственно к перерисовке текстур. В первую очередь рекомендую изменить пятна и лужи крови (в группе текстур nathans ), увеличив их размер. Кровавость игры резко повысится.
Дополнительные слоты для сейвов
В Postal 2 катастрофически мало слотов для сейвов. А если за одним компьютером по очереди играют несколько человек?! Если вы настоящий фанат игры и хотите иметь сейвы самых интересных моментов?! Количество сейвов легко увеличить. Для этого надо открыть в текстовом редакторе файл SavedGameInfo.ini и добавить в него строку Slots=(Name=“”,Day=0,Time=“”,lTime=0). Сколько таких строк добавите, столько новых слотов и появится.
Рекомендую несколько изменить внешний вид экрана героя — модификация будет выглядеть оригинально. Можно превратить Postal 2 в игру ужасов, заменяя скины игровых персонажей (в первую очередь ваших врагов — арабских террористов, мясников, деревенщины и других) текстурами обгоревших мертвецов (скину головы трупа соответствует текстура BurnVictim из категории Special группы ChamelHeadSkins , телу — одноименная текстура из той же категории, но из группы ChameleonSkins ). Чтобы добиться данного эффекта, необходимо сначала извлечь на свет текстуры трупа, а затем подменить ими скины нужных вам персонажей. Несложно изменить и внешний вид игровых стволов. Например, нанести на оружие надписи (см. скриншот) или добавить пушкам какие-нибудь мелкие детали. __Тексты Перейдем к изучению int -файлов (и соответствующих им rut -файлов), содержащих игровые тексты. Нас интересуют Engine.int (содержит сообщения, связанные с движком игры), gametypes.int , intro.int (разного рода подсказки, появляющиеся на экране во время игры), Postal2.int (сообщения при загрузке игры), postal2game.int (текстовые вставки, содержащие статистику игры и надписи для HUD), shell.int (названия игровых настроек и надписи в меню опций), uwindow.int (названия кнопок, отображаемых на экране при игре в оконном режиме).
- Редактированию поддаются абсолютно все игровые тексты
Все представленные в этих файлах сообщения и тексты можно изменять. Первым делом стоит переписать файл postal2game.int (и, соответственно, postal2game.rut ), особенно его раздел GameState , где можно изменить “звания”, которые присваиваются главному герою по окончанию игры. В папке \ System вы найдете множество других int- и rut-файлов. Большинство из них небольшого размера и несут в себе лишь названия определенных мест на игровой карте. Такие файлы называются так же, как и указанные в них сооружения (например, файлы Brewery.int и Brewery.rut содержат название пивоваренного завода, Church.int и Church.rut — церкви). Можно поменять наименования всех объектов на карте. Меняя названия, логично одновременно подредактировать участок карты ( fuk -файлы, которые лежат в каталоге \Maps ), соответствующий данной постройке. *** Самое время приступить к созданию мода. Мода еще более жестокого и кровавого, чем сам Postal 2. Редактируя с помощью POSTed игровые карты, можно сделать практически новую игру. Если задаться идеей создания игры ужасов, можно заменить некоторые постройки на карте темными помещениями с множеством врагов, жаждущих вашей крови. Такое редактирование потребует усилий и определенных навыков работы с редактором UnrealEd. Создание кровавой игры немыслимо без повышения уровня насилия — параметру GoreLevel из файла postal2.ini следует присвоить значение " 2 " и увеличить размеры текстур с кровью. Ну, а если придать главному герою облик безжалостного убийцы (для этого можно использовать, например, модель мясника с окровавленным фартуком), уничтожающего все на своем пути… то получится если не самый кровавый, то уж точно самый жестокий мод для Postal 2.