Джедаи против зомби. Ролевое безумие. Основы магии вуду в Neverwinter Nights
Боль. Везде боль. Тупая боль. И ничего больше. С огромным трудом открываю глаза. Светает. Небо чистое, голубое. И стервятники кружатся над полем. Память возвращается тяжело. Обрывками. Мелькают эпизоды. Демоны, орки, эльфы, валькирии, зомби. Звон мечей, предсмертные крики и стоны павших. Маг, решивший сказать свое веское и очень опасное волшебное слово. Все смешалось. И вот в голове всплывает воспоминание. Свист стрелы. Боль в плече. Растерянность на миг. Поворачиваю голову. Блеск занесенного меча. Удар. И темнота. Neverwinter Nights.Стопроцентный хит. С ним поставляется отличный редактор (см. "Мастерскую"), позволяющий создавать свои приключения. Но вот саму ролевую систему поменять, увы, нельзя. Нельзя добавлять свои заклинания, свои фиты, и еще много чего нельзя. С этим надо бороться. После прочтения данного материала вы сможете создавать свои полноценные РПГ с уникальными игровыми системами (не моды, а именно игры!) на прекрасном графическом движке NWN.Игры, действие которых происходит в другое время, в мирах, сотворенных вашим воображением.Я поклонник всего современного, hi-tech. Действие моей RPG будет разворачиваться в далеком будущем во вселенной, сходной с миром Star Wars и Fallout одновременно. Наш самый главный инструмент сегодня — фантазия. Давайте приступим к работе. Только на всякий случай делайте резервные копии всех редактируемых файлов, чтобы в случае каких-то проблем избежать переустановки игры. Как обычно, операцию начинаем с того, что заходим в ту папку, куда установлена игра. Мертвая змея не шипит Во-первых, давайте рассмотрим содержимое папки \movies. Там находится приличное количество bik-файлов. Это — видеоролики. Они проигрываются при помощи Bink Player.Далее отправляемся в каталог \music,являющийся пристанищем множества bmu и одного wav-файла. Естественно, wav без проблем играется любым плеером. А вот над bmu-шками стоит потрудиться. У всех меняем расширение на mp2.Все! Запускаем плеер и слушаем музыку из игры. Кстати, разработчики оказались заботливыми людьми и заполнили в звуковых файлах часть тегов. Если модификация проводится действительно серьезная, то придется постараться и заменить стандартную музыку на свои композиции. Для моей игры подошли треки группы Rammstein. Теперь открываем папку <Каталог с игрой>\ambient.Нашему взору предстает множество wav-ов. Это все игровые звуки. Поскольку мы с вами делаем свою РПГ, то и здешние файлы также подлежат тотальному изменению.
Мертвый зомби не идет Запускайте Neverwinter Nights Viewer (берите ее с компакт-диска "Игромании").Программа работает с bif-, mod-, hak-файлами. Кроме того, она позволяет просматривать (но не редактировать!) mdl-ки, содержащие игровые модели, графические файлы с текстурами игры, слушать музыку из игры и много чего еще. В программе выбираем File\Bif\Neverwinter Nights. Утилита сама определит, в какую директорию проинсталлирована игра, и откроет окошко со списком всех bif-файлов. Под ним находится список файлов из текущего bif-a. Мы можем посмотреть содержимое любого файла и экспортировать его из архива. Для этого нужно просто выделить нужный нам файл и в контекстном меню выбрать Extract to. Жаль, что программа не поддерживает импортирование в bif-ы. Давайте рассмотрим содержимое каждого из bif-файлов. 2DA.bif —здесь находятся 2DA-файлы. Эти
Вот в таких вот таблицах хранится вся ролевая система игры. файлы являются ключевыми, определяющими всю игровую механику. Экспортируйте их все в отдельную директорию. С самыми интересными из них мы поработаем чуть позже. loadscreens.bif —в этом файле лежит графика в tga-формате. Это картинки, которые показывает игра во время подгрузки локаций, сохранения игры, загрузки сейвов. Как-то несолидно пользоваться картинками NWN.Тем более что это будет смотреться нелепо — почему это в футуристической RPG показываются фэнтезийные средневековые изображения. textures_01.bif и textures_01.bif —текстуры. Свыше 9000 тысяч игровых текстур в формате Truevision targa (tga). А также некоторые изображения в plt-файлах. Труда предстоит много, но заменить все текстуры можно и даже нужно. music.bif —несколько десятков wav-файлов с музыкой. Тоже подлежат замене на свои композиции. scripts.bif —скрипты, заведующие в игре всем. Поведением монстров, NPC, воздействием спеллов и еще много чем. Язык скриптов, можно сказать, брат родной для C. Их синтаксис очень похож на С и C++.Без программистских навыков редактировать крайне не рекомендуется. Хотя в "Самопале" мы уже не раз обращались к теме скриптов, и, если вы внимательно читали эти статьи, вам не должно составить труда расшифровать и здешние скрипты. Принцип их работы ничем не отличается. sounds.bif — набор звуков в формате *.wav. Это звуки кастования спеллов, те шумы, что издают различные монстры, звон мечей. Немного поколдовать здесь, и все — в моей RPG каждый встречный орк теперь издавал привычное "zug-zug". voicesets.bif —опять звуки, и опять в формате *.wav.А вот этот файл сверхинтересен. Здесь лежат надиктованные тексты диалогов на английском языке. Также там находятся наборы голосов для вашего персонажа (вы один из голосов выбираете при генерации своего альтер эго). Пора достать из запасников микрофон и приступить к переозвучке всего и вся. Я, кстати, приятный женский голосок Арибет поменял на скрипучий голос Императора Палпатина. Наконец, можете добавить сюда свой голос, чтобы ваше виртуальное воплощение было еще больше похоже на оригинал. convo.bif — звуки. Куда же без них. Это своего рода продолжение предыдущего файла. Здесь также лежит озвучка для вашего персонажа, а также еще большая порция надиктованных диалогов. models_01.bif и models_02.bif содержат mdl-файлы, которые несут в себе модели игрового мира. NWN Viewer позволяет только просматривать эти модели. Но на компакт-диск "Мании" мы выложили ряд утилит, которые помогут вам в создании своих моделей. Во-первых, это пакет с-tools, одна из программ которого предназначена для конвертирования бинарных файлов в ASCII-файлы. Во-вторых, плагин, позволяющий конвертировать ASCII-файлы моделей в формат 3D Studio Max и, наоборот, преобразовывать из формата 3D Studio в игровой. Вот действительно есть где разгуляться фантазии. Обычные гоблины у меня превратились в некое подобие Йоды. А вот обыкновенных орков я поменял на легендарного Трала. Файлы aurora_*.bif — файлы, используемые редактором Aurora NWN Toolset. Там лежат модели комнат, дверей, подземелий. Как редактировать *.mdl, я уже писал выше. aurora_gui.bif — здесь можно найти иконки фитов, иконки действий. А также файлы fnt*.tga — это все различные шрифты игры. Их можно переделать, например, под готику или рукописный. Не забудьте добавить сюда русские буквы, чтобы в игре можно было использовать русские тексты. Для того чтобы импортировать назад в игру измененный файл (будь то картинка, модель, 2DA-файл), его нужно поместить в директорию <Каталог с игрой>\override. Не изменяя (!!!) имени и расширения. После тотальной модификации текстур, моделей и всего прочего у меня значительно увеличился размер папки \override,но возросла и скорость загрузки игры. Словесность потустороннего мира Настала пора воспользоваться утилитой
Neverwinter Nights TLK Editor (дожидается вас на нашем компакте).Ее интерфейс предельно прост. Загружаем в программу файл dialog.tlk.Этот файл содержит статическую текстовую информацию вроде описаний классов, рас, спеллов и прочее (конкретные разговоры содержатся в модулях). Каждый текст имеет свой ID. Потом этот ID используется в других файлах. При помощи программы можно редактировать любую запись в файле, удалять записи, добавлять... Только следите, чтобы ID не повторялись. Рекомендую заменять тексты на их эквиваленты на великом и могучем. Хотя можно поступить по-другому. Придумайте и добавьте сюда названия и описания своих спеллов, фитов, классов. Зомби заговорят на чистейшем русском. Ну или на грязнейшем. Это уж как вам будет угодно. Бегущий по кромке молнии Готовим к работе "Блокнот". Открываем в нем файл spellschools.2DA. В этом файле идет описание магических школ. Видим, что в самом файле множество колонок с цифрами и словами. У первой колонки нет названия. Она содержит цифру — ID школы. Этот ID служит для того, чтобы ссылаться на какую-либо школу из других файлов. Естественно, в файле они не должны повторяться. Ради эксперимента я поставил 2 раза значение 0. В результате — полный крах игры. Label —имя магической дисциплины. Используется самой игрой. Letter —указывайте здесь букву, однозначно идентифицирующую дисциплину. Значения в этой колонке не должны повторяться. Используется, чтобы ссылаться из других файлов. StringRef — имя, которое будет отображаться в игре. Впечатывайте ID текста из dialog.tlk. Opposition —противоположная школа магии. Здесь указывайте цифру ID другой школы. Description —описание. Теперь загружаем в "Блокнот" файл spells.2DA. Этот файл, как можно догадаться из названия, описывает все спеллы Neverwinter Nights. Одна строка является записью и содержит полную информацию об одном заклинании. Некоторые столбцы я намеренно пропустил, так как мне не удалось выяснить, что они описывают. Первая колонка не имеет названия и содержит в себе порядковый номер (ID) заклинания. Второй столбец — label — метка спелла. Также должна быть уникальной. В принципе, разработчики в качестве метки используют название заклинания на английском, что облегчает задачу по модифицированию. А в BioWare еще и по алфавиту в этом файле спеллы рассортировали. Name — имя в игре. Здесь указывается ID из dialog.tlk. IconsRef — иконка заклятия. Указывайте имя иконки из файла data\textures_02.bif или директории \override. School —школа магии, к которой принадлежит заклинание. Может быть: A (ABJURATION), С (CONJURATION), D (DIVINATION), E (ENCHANTMENT), I (ILLUSION), N (NECROMANCY), T (TRANSMUTATION), V (EVOCATION)или любая другая школа, которую добавили в файл spellschools.2DA. Range —зона поражения. Можно указать: P (САМ КОЛДУН), T (TOUCH)— точечная, S (SHORT)—малая, M (MEDIUM)—средняя, L (LONG)—большая. VS —есть ли спасбросок против заклинания; если установлено vs,то есть, если s или v, то нет. ImpactScript —скрипт, который исполняется, когда кастуется заклятие. Здесь пишем имя скрипта из файла data\scripts.bif или директории \override. Bard —число показывает, с какого уровня доступно данное заклинание у барда. Если поставить четыре звездочки (****), то оно у данного класса отсутствует. Cleric — то же для клерика.
Druid — для друида. Paladin — для паладина. Wiz_Sorc — для волшебников и магов. ConjSoundFX —звук, проигрываемый, когда заклятье скастовано. Пишите здесь имя файла из data\sounds.bif. ConjSoundMale —звуки, которые издает мужчина-маг во время произнесения заклинания.Впечатывайте в этот столбец имя файла из data\sounds.bif или директории \override. ConjSoundFemale —аналогично предыдущему столбцу, но для женщин. CastTime —время, необходимое для произнесения заклятия. Измеряется в неких условных временных единицах. Большему значению данного параметра соответствует большее время произнесения. ImmunityType —тип иммунитета к заклинанию (я встречал такие: Electricity, Mind-Affecting, Fire, Acid, Divine, Death, Cold, Sonic, Negative, Fear, Disease). Если стоят четыре звездочки, то иммунитета против него нет. SpellDesc — описание спелла, которое показывается в игре. Ставьте ID текста из dialog.tlk. UseConcentration —если стоит 1,то будет использоваться умение Concentration. Altmessage —текст, печатаемый в консоли после применения заклятья. ВпечатываемID текста из dialog.tlk. После редактирования сохраняйте файл с таким же именем и расширением в папку <Каталог с игрой>\override. Только представьте, что станет с оригинальным NWN после редактирования этого файла. Теперь можно не только редактировать статистику существующих спеллов, но и создавать свои. Вы можете создать свою, уникальную магическую систему. Здесь простор для творчества просто необъятен. Например, можно создать спеллы, поражающие своей мощью, силой, но для их произнесения потребуется большое количество времени. Тогда игрок в битве будет стоять перед дилеммой: кастовать ли заклятье, которое убьет сразу три четверти всех врагов, но и подвергнет жизнь мага опасности, или обойтись без тяжелой артиллерии и риска для жизни. Придумывайте свои школы магии. Никто и ничто не ограничит полет вашей фантазии. Нео-фиты магических школ Теперь загружаем в "Блокнот"файл feat.2DA.Здесь содержится описание всех фитов игры. В принципе, все аналогично файлу spells.2DA. Первый столбец не имеет названия и содержит в себе порядковый номер (ID) фита. Label — метка фита, его внутриигровое имя. Опять же, здесь все метки соответствуют названию фита на английском, с некоторыми сокращениями, и упорядочены по алфавиту. Feat —имя в игре. Здесь указывается ID из dialog.tlk. Description — описание фита, которое показывается в игре. Ставьте ID текста из dialog.tlk. Icon — иконка. Указывайте имя иконки из файла data\aurora_gui.bif или директории \override. MINATTACKBONUS —минимальный бонус к атаке, который дает фит. MINSTR —минимальная сила, которую должен иметь персонаж, чтобы получить фит. Если стоят звездочки, то для получения фита не имеет значения, сколько у героя силы. MINDEX — аналогично предыдущему. Только речь идет о ловкости. MININT —то же для интеллекта. MINWIS — для мудрости. MINSPELLLVL —минимальный уровень спеллов, которые маг должен уметь кастовать, чтобы заполучить фит; если проставлены звездочки, то умение колдовать для получения фита не нужно. PREQFEAT1 —какие фиты должен иметь персонаж, чтобы заполучить данный фит. Указывайте ID необходимого фита. PREREQFEAT2 — аналогично. GAINMULTIPLE —можно ли брать данный фит несколько раз на различных уровнях. ALLCLASSCANUSE — параметр, определяющий, все ли классы могут использовать фит. 0 — нет, 1 — да. USESPERDAY —сколько раз в день можно пользоваться фитом.Можно указать цифры; если указать звездочки, то ограничений на использование нет. А вот если ставить -1, то количество применений фита будет определяться скриптами. Constant — константа фита. Используется в различных игровых скриптах. REQSKILL —скилл, необходимый для получения данной способности. Впечатывайте ID скилла из файла skills.2DA. Здесь так же, как и в случае со спеллами, следует соблюдать баланс. Добавляйте свои фиты, редактируйте соответствующие. Я не забыл вместо стандартных WeaponFocus Long Sword и Monk Endurance поставить "владение световым мечом"и "устойчивость к радиации" соответственно. Могила — лишь постель Открывайте файл skills.2DA.Он содержит информацию про все игровые
умения. Первый столбец — ID скилла. Используется в других 2DA-файлах для ссылки на умение. Label —метка умения, внутриигровое имя. Опять же на английском с некоторыми сокращениями. Name — имя, которое отображается в игре. Это ID текста из dialog.tlk. Description —описание скилла. Это также ID текста из файла dialog.tlk. Icon —иконка скилла. Впечатывайте имя картинки из файла aurora_gui.bif. KeyAbility —ключевая характеристика для скилла. Здесь может быть указано STR (сила), DEX (ловкость), CON (телосложение), INT (интеллект), WIS (мудрость), CHA (обаяние). ArmorCheckPenalty —дает ли пенальти надетая броня при использовании скилла. 0 — нет, 1 — да. AllClassesCanUse —все ли классы могут использовать это умение. Если поставить 0 — нет, если 1 — да. Constant — константа умения. Используется в игровых скриптах. Интересно не изменить уже существующие, а добавить парочку своих умений. Вроде "взлом компьютерных систем" или "починить вещь". Главное, чтобы все подходило под стиль вашей RPG. Класс — зомби, раса — джедай Приступим к редактированию classes.2DA. Этот файл описывает классы, присутствующие в игре. Первая колонка — ID класса. Цифровое значение, указанное в столбике, используется в остальных файлах, чтобы ссылаться на какой-либо класс. Label — метка, внутриигровое имя. Name — имя класса, которое показывается в игре. Указывать ID текста из dialog.tlk. Plural — название класса во множественном числе. Печатайте ID текста из все того же dialog.tlk. Lower — название класса в нижнем регистре (то есть с маленькой буквы). Description — описание класса. Icon — иконка класса. Сами иконки могут лежать в aurora_gui.bif или папке \override. HitDie —что тут сказать. Все и так ясно из названия колонки. Указывайте числовое значение. FeatsTable —имя таблицы, определяющей, какой фит и на каком уровне приобретает класс. Указываете имя 2DA-файла из 2DA.bif или директории \override.Если указать звездочки (4 штучки), то класс никаких фитов получать не будет. SavingThrowTable —имя таблицы, определяющей спасброски в зависимости от уровня. Впечатывайте имя 2DA-файла из 2DA.bif или директории \override. SkillsTable —
Не забудьте отредактировать этот стандартный сплеш-скрин. имятаблицы, определяющей, какие из скиллов доступны и являются классовыми. SkillPointBase —число, от которого зависит количество единичек скиллов, получаемых при level up. Игра вычисляет их так: (SkillPointBase + Intellect Modifier)*4. SpellGainTable —имя таблицы, которая определяет, какие заклинания появятся у класса с очередным уровнем. Пишем здесь имя 2DA-файла из 2DA.bif или директории \override. Можно также поставить звездочки, если персонаж не должен получать спеллы. PlayerClass —может ли игрок выбирать данный класс при генерации персонажа (дело в том, что в игре присутствуют особые классы. Классы монстров, за которые нам разработчики не дают поиграть!). Если стоит 1, то можно, 0 — нельзя. SpellCaster —может ли кастовать заклятья класс. 1 — да, 0 — нет. Str —значение показывает, сколько очков попадет на силу для данного класса, если при распределении очков нажать на кнопку Recommended.Указывайте цифру. Dex —аналогично вышесказанному, но для ловкости. Con — для телосложения. Int — для интеллекта. Wis — для мудрости. Cha — для харизмы. Только следите за тем, чтобы общая сумма значений в одной записи для столбцов Str, Dex, Con, Int, Wis, Cha не превышала 45! PrimaryAbil — главная характеристика для класса. Можете поставить STR (сила), DEX (ловкость), CON (телосложение), INT (интеллект), WIS (мудрость), CHA (харизма). Constant —константа класса. Для начала попробуйте поиграть за элементаля или паука.А дальше создавайте свои классы. Давайте рассмотрим таблицы приобретаемых фитов в зависимости от уровня. Напомню, что они хранятся в cls_feat_*.2DA. Первый столбик — ID —цифровое значение. Featlabel —метка фита. FeatIndex —цифровое значение — ID фита в feat.2DA. List —если какой-то фит получается уже при генерации, то необходимо поставить здесь 0, в противном случае — 3. GrantedOnLevel —на каком уровне приобретается фит. Указывайте цифру. Если персонаж получает фит еще при генерации, ставьте минус единицу. Поработаем над таблицами, определяющими спасброски в зависимости от уровня. Они лежат в файлах cls_savtrh_*.2DA. ID — цифровое значение. Level —уровень. FortSave —значение спасброска Fortitude. RefSave —значение спасброска Reflex. WillSave — значение броска Will. Теперь настала очередь таблиц, определяющих наличие скиллов у класса. Они находятся в cls_skill_*.2DA. ID —цифровое значение. SkillLabel —метка скилла. SkilIndex —ID скилла из файла skills.2DA. ClassSkill —значение показывает, является ли классовым этот скилл. Если стоит 1, то да, 0 — нет. А теперь давайте загрузим один из важнейших игровых файлов — racialtypes.2DA, определяющий расы. ID —цифровое значение. Label — внутриигровое имя расы. Abbrew — аббревиатура расы. Вводите сюда 2 буквы. Name — имя расы, которое видит игрок. Цифры — ID текста из dialog.tlk. NamePlural —имя во множественном числе, которое видит игрок. Description —описание расы.
Обратите внимание на новую фоллаутовскую броню и лазерный меч в инвентаре. StrAdjust —насколько изменяется сила. Показатель может быть как положительным (характеристика увеличивается), так и отрицательным (характеристика уменьшается). DexAdjust — то же для ловкости. ConAdjust — для телосложения. IntAdjust — для интеллекта. WisAdjust — для мудрости. ChaAdjust —для харизмы. Favored — Favorite Class для этой расы. Указывайте ID классаиз classes.2DA. Если поставить четыре звездочки, то класс может быть любым. FeatsTable —таблица, определяющая, какие фиты имеет эта раса. Указывайте имя файла из 2DA.bif. Biography — биография. Впечатывайте ID текста из dialog.tlk. PlayerRace —может ли игрок выбрать расу при создании своего виртуального воплощения. 1 — да, 0 — нет. Constant — константа. ToolsetDefaultClass —класс, который выберет игра для расы, если нажать на кнопку Recommended. Таблицы, определяющие, какие фиты автоматически имеет раса, лежат в файлах race_feat_*.2DA. Устройство файлов чрезвычайно простое. Первая колонка — ID — цифровое значение. Вторая колонка — Label — имя фита внутриигровое. Третья колонка — FeatIndex — индекс фита из файла feat.2DA. Ну и наконец, давайте разберемся с файлом exptable.2DA. Этот файл описывает количество уровней, набираемых персонажем, и количество экспы, необходимое для очередного level up. Первый столбец, как обычно, это ID уровня. Level —номер уровня. XP —количество экспы, необходимое для получения данного уровня. Этот файл также важен. Наверное, вас не устроит, что в создаваемой вами RPG только 20 уровней, как в оригинальной игре NWN, или наоборот — это покажется слишком большим числом. Можете по-своему изменить значение экспы, необходимое для достижения соответствующего уровня. Кликни зомби по иконке Давайте загрузим программу Resource Hacker (вы не поверите, но и ее можно взять с компакта "Мании") или, если у вас есть, Restorator. В меню File\Open выбираем nwmain.exe.Справа в Tree выбираем Cursors и видим, что появились курсоры, используемые в NWN.Их, конечно, можно заменить на свои. То же самое можно сотворить и со стандартными иконками. В настоящей РПГ учитываются и такие мелочи, как курсоры и иконки, потому активируем Adobe Photoshop и перерисовываем все и вся. Эксперименты с Resource Hacker можно продолжить, загрузив в него файлы nwncofig.exe (конфигуратор игры) и nwntoolset.exe (редактор Aurora NWN Toolset). Вы сможете, например, перевести эти две программы на русский язык, а также заменить и курсоры, и картинки, и иконки. Мы укрылись в маленькой чаще на холме. Утро. Солнце показалось над горизонтом. Туман потихоньку рассеивается, обнажая ранее скрытые за белой пеленой пейзажи. Становится видно раскинувшееся внизу поле. Дует ветер. Трава колышется, словно волны на море. И вот из-за гряды появляются стройные ряды врага. Придется воспользоваться электронным биноклем. Первыми топают роботы. Позади следуют орки. И лишь в самом конце идут эльфы, меткие стрелки. Недаром их вооружили бластерами G228. Мне бы их уверенность. Кажется, что они всматриваются вдаль, пытаясь увидеть противника. Невдалеке от всех находится маг со своим зверинцем. Каких только нет с ним демонов — всех мастей. Хорошо, что меня нет рядом с ним. От этого бесьего отродья у меня мурашки по коже. Но они под контролем и будут драться на нашей стороне — это успокаивает. Не знаю, выживем ли мы в этой битве. Хорошо, что на мне адамантитовая броня, а на поясе висит новая модель светового меча. Страшно. Долой траурные мысли! Не из такой сечи выходили живыми.
1436 Прочтений • [Джедаи против зомби. Ролевое безумие. Основы магии вуду в Neverwinter Nights] [19.05.2012] [Комментариев: 0]