Итак, не так давно вышла довольно хорошая игра, продолжатель дела Jagged Alliance под название Jagged Alliance: Back in Action. Олдфаги восприняли игру не очень хорошо, но оно и понятно - довольно глупый AI, играть с которым интересно только под середину игры, медики, восстанавливающие даже мертвого мерка и много других упрощений. Для меня, как поклонника JA было интересно поиграть в новую версию и понять что потенциал у игры есть. Это видно и по патчам, которые разработчики выпускают день ото дня и докручивают AI (теперь он стал хотя бы чуточку слышать вас). Вот и пришла идея расковырять игру и посмотреть что там у нее внутри. Немного терпения и вот они, конфиг файлы для игры версии 1.06 (впоследствии может буду обновлять) (ссылка на народ): narod.ru/disk/40965321001/configs.zip.html
Итак, распаковываем папку configs в "каталог с игрой"bin_win32 и приступаем к осмотру. Большинство файлов представляют собой обычные текстовые фалы, которые открываются блокнотом. Давайте начнем с малого (тем более я сам до конца еще не изучил все файлы :) ) - изменим начальные характеристики мерков и начальную аммуницию.
Характеристики мерков и вообще всех персонажей в игре находятся в двух файлах: character_mercs.txt (здесь только мерки) и characters.txt (здесь солянка из мерков и остальных персонажей). Открываем файл characters.txt и смотрим:
1) Комментарии разработчиков - если вы владеете англ. языком, то впринципе можете дальше не читать :) Там расписанно почти все, о чем я буду говорить дальше.
2) Внутренний ид персонажа, имя и фракция - ид нужно только для движка игры, а фракция отвечает какой это персонаж, всего имеем 6 фракций: 0 - мерк, 1 - наша охрана для секторов, 2 - армия Дейдраны, 3 и 4 под вопросом, 5 - NPC жители.
3) Внешность - внешность я упущу в этом описании, т.к. не проверял изменения в игре. Дальше:
4) Характеристики - тут все понятно, начальные характеристики персонажа, перевод на русский:
В игре видно только 3 черты одновременно, остальные будут скрыты.
7) Отношения - выражает как персонаж относится к другим персонажам (обычно как мерк относится к другому мерку), строится так: ключевое слово Likes, потом цифра 0 (нравится) или 1 (не нравится) и имя персонажа в кавычках.
8) Аммуниция - определяет начальную экипировку персонажа. Строится так: ключевое слово AddItem и ид предмета. Где найти ид предмета? Все в тех же конфиг файлах. К примеру, давайте я добавлю Барри АК-47 и патроны к нему. Для этого я иду в файлы weapons.txt и ищу АК-47:
Все, ид АК у нас есть (это число 1), поэтому прописываем в characters.txt:
Теперь нам нужны патроны. Открываем файл ammunition.txt и ищем нужный нам тип патронов (5_45mm):
Ид патронов нам теперь тожно известно. Давайте добавим их в аммуницию Барри и немного понизим характеристики, например опустим меткость до 30, скорость до 50 и владение взрывчаткой до 55. Плюс изменим стоимость найма до 9000.
За сим все, ждите продолжения, спасибо за чтение!
Модифицируем оружие в JA:BiA
Итак, продолжаем потихоньку ковырять JA:BiA. Сегодня мы изменим характеристики оружия, в частности изменим АК-47. Приступим:
Начальные характеристики нашего любимого АК. Итак, открываем файл weapons.txt (где его взять, читаем выше) и ищем характеристики АК.
1) Ид предмета ( в данном случаи 1) и класс оружия. Сверху я немного ошибся, говоря что это тип оружия, так вот это - класс, всего их 5:
Launcher - пусковые установки, Rifle - ружья (автоматы, пулеметы, снайперки), HandGun - пистолеты, ПП, Knife - нож и None - ничего (да, просто ничего :) )
2) Масса в граммах (то есть делим величину на 1000 - получаем килограммы)
3) Цена (но похоже она плавающая, как изменяется, пока вопрос)
4) Урон
5) Лучшая дальность для этого оружия ( в метрах)
6) Модификатор точности для положения лежа - плюсуется со стандартным значением 1.0
7) Модификатор точности для положения ползком - плюсуется со стандартным значением 0.9
8) Модификатор точности для положения бегом - плюсуется со стандартным значением 0.3
9) Модификатор точности для положения прицельный режим стоя - плюсуется со стандартным значением 0.8
5) Фактор брони - коэффициент, который показывает сколько урона от пули поглотит броня, чем больше, тем больше урона поглотит броня
Так, давайте для примера изменим количество патронов в магазине на 60. Все бы хорошо, но в описании к патронам в игре так и остается: "В этом магазине содержится 30 патронов калибра 5,45 мм, способных пробивать легкие бронежилеты. Благодаря металлической оболочке пуля может пробивать не только стены, но и несколько тел навылет. " То есть игра не понимает что там уже не 30 патронов, а 60 и мы должны помочь ей! :) Для этого нам понадобятся распакованные и раскриптованные файлы локализации interface (ссылка на народ, для патча 1.06): narod.ru/disk/41101432001/interface.zip.html
Распаковываем папку interface в "каталог с игрой"bin_win32. В папке у нас будут 6 txt файлов (помимо остальных фалов), в которых хранится вся локализованная часть. Открываем equipment.ctx.txt и ищем описание патронов:
Изменяем описание как нашей душе угодно :) После изменений запускаем pack.bat, немного ждем, и запускаем игру!
P.S. Если вы захотите впоследствии изменить локализацию еще раз, вам нужно будет снова распаковать файлы. Осуществляется это запуском unpack.bat (и не забудте после изменений снова запаковать их! - pack.bat)
Открываем файл clothings.txt в конфиг папке. Здесь находится вся одежда (включая бронь, маки, джинсы и т.д.) Для удобства поиска ид предметов разработчики разделил все предметы на классы:
1000 ид и выше - головной убор
2000 ид и выше - на торс
3000 ид и выше - на ноги
4000 ид и выше -бронь?
5000 ид и выше -обувь
6000 ид и выше - всякие разные плюшки :)
Итак, ищем джинсы:
1) Armor - защита
2) Weight - вес в граммах
3) Price - цена
Давайте добавим камуфляж:
CamoUrban - городской камуфляж (в процентах)
CamoWoods - лесной камуфляж (в процентах)
CamoDesert - пустынный камуфляж (в процентах)
CamoNight - ночной камуфляж (в процентах)
Также есть такая штука как Property, отвечает за финделюшки в броне:
Property 0 - добавляет ночное видение
Property 1 - добавляет защиту от газа
Добавим большую защиту для легкого бронежилета:
Изменения в игре:
А теперь приступим к аптечке. Открываем items.txt в папке конфигов и ищем аптечку:
1) Item (ид, класс предмета, визуал ид)
Классов предмета 5 штук: Medikit - аптечка, Grenade - граната, Mine - мина, Defuse - набор обезвреживания, Explosive - взрывчатка
2) Price - цена
3) Charges - кол-во использований в одном предмете
4) SubType - подтип предмета:
Для аптечек - 1 (восстанавливает только хп), 2 (восстанавливает хп + убирает кровотечение), 3 (восстанавливает хп + убирает раны (похоже раны - это то состояние когда мерка поднимают после смерти))
Для С4 - 1 (таймер?), 2 ( часть удаленного управления?), 3 (с4 с таймером), 4 (с4 с дистанционным управлением)
Для открывашек ( класс Openers ) - 1 (ключ), 2 ( лом ), 3 (отмычки)
5) Requirement - сколько навыка надо для использования предмета
6) Efficiency - эффективность, для аптечек показывает сколько здоровья будет восстановленно, для мин и гранат - сколько урона будет нанесено
7) Weight - вес (в граммах?)
Давайте понизим хар-ки аптечки, уменьшим кол-во восстанавливаемых хп до 20, повысим цену в 3 раза, сделаем кол-во использование равное одному, повысим требуемый навык до 60 и поставим восстановление только хп:
Изменения в игре:
P.S. Я так и не нашел, где убрать эту дурную функцию восстановление после смерти. Если кто нашел, отпишитесь, пожалуйста, в комментах.
За сим все, спасибо за чтение!
Процесс распаковки
Для распаковки файлов игры нам понадобится вот этот архив (ссылка на народ): narod.ru/disk/41278212001/quickbms.zip.html
Распаковываем в любое место на диске, туда же кидаем файлы из игры:
1) configs_win32.pak.crypt - конфиг файлы
2) interface_win32.pak.crypt - локализация игры
3) data_win32.pak, data1_win32.pak, data2_win32.pak, data3_win32.pak - текстурки и прочее фунделюшки (сильно не рассматривал)
Дальше, запускаем quickbms.exe, появится окно выбора файла, выбираем jagged_alliance_bia.bms (находится в той же папке где и quickbms.exe), жмем ОК, далее появится еще одно окно, выбираем нужный файл для распаковки (указаны выше), жмакаем ОК и наконец появляется третье окно, просящее указать папку для распакованных файлов. Выбираем папку, жмакаем ОК, ждем, в черном окне нажинаем Y и Enter, распакованные файлы перенести в "каталог с игрой"bin_win32.
Для конверта ctx файлов в txt файлы, получаемых после распаковки interface_win32.pak.crypt нам нужен будет ctx_magick который, ссылку на скачку которого можно найти выше, в разделе изменения патронов и изменения описания.
За сим все, спасибо за чтение!
Другая полезная информация
Новое обновление статьи, основанное на комментариях пользователей и собственно найденой информации, приступим:
1) в equipment.ctx (и других .ctx файлах) для примера ИД 4008 - это отображаемое название предмета, ИД 11009 - это отображаемое описание предмета, для всех предметов ИД описания получается приплюсовкой 7001, в примере:
4008 [ид предмета] + 7001 = 11009 [ид описания]
2) Как определяется картинка оружия (на примере АК):
В файле weapons.txt
Picture 1 3 4 3
первая цифра 1 - определяет в какой текстурке ui_equipment_pictures находится изображение (в данный момент ui_equipment_pictures_1.dds из папки textures/interface)
последующие цифры определяют где находится картинка, смысл такой, что вся текстурка разбита на квадраты 10х10 пример:
так вот первая цифра 3 определяет сколько отступов по колоннам надо сделать что дойти до искомой картинки
цифра 4 определяет сколько отступов по строчкам надо сделать что дойти до искомой картинки
последняя цифра 3 определяет сколько квадратов занимает картинка
3) У каждого врага есть свои навыки, с повышением которых можно достачно серьезно усилить их, к примеру есть такой навык как Perception (восприятие), который отвечает за слышимость и видимость врагов, в файле characters.txt его можно повысить до 99 и выше (максимум который я ставил было 999, как поведет себя игра выше этого значения - не знаю)
4) Формат файлов в игре:
pak - архивы игры
ctx - скомпилированный текст, хранит почти всю текстовую информацию игры
deg - хранит информацию о "decal" (деколи?)
cui - скомпилированный файл GUI хранит информацию об интерфейсе игры и его слоях
crf - скомпилированный ресурс файл, хранит 3D модели
caf - скомпилированные анимационные файлы
5) В файле percrption.txt расписанно числовое значение шума производимое наемниками при ходьбе, открывании дверей, взрывах и т.п.
Если повысить значения в 2 раза, то соответственно АИ будет слышить мерков в 2 раза лучше, если понизить - то наоборот.
6) Файл main_locations.txt отвечает за стратегическую карту игры, сколько дохода идет с локаций, сколько защитников находится на каждой локации и т.п. Примерная расшифровка:
Location ("depot_11", 29, 11) // похоже это склад оружия возле Грумма (не уверен)
{
//Area 491 1148 582 1202
Area 490 1121 603 1228 // координаты расположения на карте и еще что то (предположение)
Function Industry //похоже на функцию, относящуюся к скриптам
Income 100 // суточный доход с локации.
MilSlots 10 //максимальное количество милиции.
DefSlots 30 //максимальное количество защитников по умолчанию.
Defenders 0 0 5 20 5 // самое вкусное. Распределение защитников по уровням. 5 - 3го уровня, 20 - 4го уровня, 5 - 5го уровня.
//30 защитников всего. Может быть и меньше 30, и иметь ряд 5 5 5 5 5 - это значит, минимум 25 защитников по дефолту,
//+ игра добавит пятерых рендомных защитников, в зависимости от рейтинга игрока.
Description 646 //ID текстового описания
Picture 0 2 5 //ID картинки на карте.
}
Solianka Hard Mod
Хочу сообщить что тестовый мод превратился в полноценную солянку из 3 разных модов. Изменений достаточно много, вкратце о них:
Тотальный ребаланс оружия
Добавленно новое оружия и боеприпасы
Изменен АИ ( лучше слышит, лучше одет, лучше стреляет)
Изменено описание мерков, вооружения, добавленны оригинальные портреты мерков из JA2
Пониженны аптечки
Усиленна еда для восстановления энергии
Удаленна ненужная одежда (маечки, футболочки, кепочки и т.д.)
И другие изменения, подробнее в реадми файле ( в файле прочти меня!.txt ) - ОБЯЗАТЕЛЬНО прочитайте его, чтобы избежать недоразумений и вопросов, касательно мода.
И в конце хочу выразить благодарность:
R@S, Wilson and Confus за создание мода Blue Dawn Mod 0.1, который используется в солянке
art of fighters за создание модов "Мод на изменение биографии наемников" и мод "Лица мерков из JA2", который используется в солянке
Ну себя благодарить не буду :)
От себя: игра стала достаточно интересной и трудной, если в оригинале в начале игры можно было просто вырезать аэропорт и Драссен, то сейчас это сделать не так то просто :)
Удачи в игре, наслаждайтесь! :)
P.S. Обновил мод, добавил первый хотфикс - устраняет вылет при начале новой игры, после зачистки аэропорта
Добавил руссификатор для описания оружия от юзера haryok с форума АГ.ру
Спасибо ему! Я все собирался сделать, а русик уже сделали :)
P.S.S. Спрашивали много раз как продолжить сохраненную игру с модом. Основная проблема в том, что в сохранненой игре на локации или в инвентаре у мерков находятся удаленные из игры предметы. Игра пытается прочитать их, естественно не видит и вылетает в панике. Поэтому попробуйте сделать следующее:
1) В локации найдите любой контейнер (значок зеленого чемондачика) и переложите все удаленные предметы из вашего инвентаря (даже те которые на вас одеты) в контейнер. Оставленная одежда в моде (которые должны у вас остаться):
Черная кепка
Кепки из аддона
Все шлемы
Все беретки
Черная майка и рубашка
Вся униформа
Черная куртка
Все бронижелеты
Кевларовые штаны и штаны Спектра всех рассветок
Воинская обувь
Все приспособления (очки ночного виделия, газовая маска и т.п.)
DLC рубашки и шлемы (Spec Ops)
2) После этого выходим на стратегическую карту и сохраняемся
3) Ставим мод, загружаемся, играем (замечу, что вся одежда которая была в контейнере исчезнет)
Ссылка на скачивание ( ссылка на народ ): narod.ru/disk/42444866001.8cabd7b6a99a0f0de984b4a284da193f/SoliankaHardMod.zip.html