1 страница
Установка и знакомство с
Corsix's Mod Studio
Все руководство описывается об игре Dawn Of War, игра сделана на одном движке, что и Company of Heroes, следственно все описанное ниже будет подобие в Company of Heroes.
У меня версия постарее, поэтому что-то может отличаться, но
сие обстоятельство несущественно.
Итак, первое, что мы увидим — стартовый экран.
Ну что ж, первой же кнопкой нам предлагают создать новый
мод. Отказываться — невежливо :)
Мы будем делать мод для Дарк Крусейда. Для Соулсторма все
абсолютно аналогично, так что можно не переживать о не стыковках. Более того,
моды могут свободно путешествовать между версиями игры без особых проблем.
В поле Name пишем название мода. Создавать мод нужно в
корневой папке игры.
Наш мод открыт и видим мы следующую картину:
Слева находится иерархическая структура внутренностей игры.
Справа — служебная информация о моде. Пожалуй, интересны для нас лишь поле UI
Name, в котором задается название мода непосредственно в игре, и вкладка
Required Mods, в которой записаны необходимые для правильной работы мода
дополнительные архивы. Поскольку мы делаем мод для DC, на этой вкладке будут
две строки: [1] DXP2 (внутренности
DC) и [2] W40k (внутренности
DoW).
Лирическое отступление о структуре мода
Мод состоит папки Example_Mod и служебного файла
Example_Mod.module.
В служебном файле находится примерно следующее:
[global]
UIName = Example Mod
Description =
Playable = 1
DllName = WXPMod
ModFolder = Example_Mod
ModVersion = 1.0
TextureFE =
TextureIcon =
DataFolder.1 = %LOCALE%\Data
DataFolder.2 = Data
DataFolder.3 = Data_Shared_Textures\%TEXTURE-LEVEL%
DataFolder.4 = Data_Sound\%SOUND-LEVEL%
DataFolder.5 = Data_Whm\%MODEL-LEVEL%
RequiredMod.1 = DXP2
RequiredMod.2 = W40k
То самое хозяйство, что мы уже видели на вкладках в
редакторе.
Структура данных игры
Большинство изменений, которые нам придется сделать, будут
относиться к разделу attrib. Среди прочих подразделов для нас особый
интерес представляют:
Abilities — способности, или, по-нашему, абилки.
Абилками владеют не только юниты, но и здания. Абилки бываю активные
(инициируемые нажатием горячей клавиши) и пассивные (работающие всегда). В
качестве примера активной абилки можно привести гранаты ТСМ, а в качестве
пассивной — лечащую ауру капеллана.
Addons — надстройки зданий навроде апгрейда главного
здания при переходе в следующий Tier.
Ebps — раздел работы с
сущностями (entity), такими как юниты и здания.
Modifiers — модификаторы игры. Что это такое и с чем
едят ознакомимся позже.
Racebps — раздел базовых
параметров рас (лимиты пехоты, техники, ресурсов, стартовые условия, отряды,
доступные для просмотра в редакторе армии, пути к рабочим папкам).
Research — раздел исследований.
Sbps — раздел работы с отрядами (squad),
по-нашему сквады.
Weapon
— раздел вооружения.
Стоит отметить, что в основном работать нам придется с
разделами abilities, ebps, sbps и weapon. Информация
из остальных будет использоваться как вспомогательная и обращаться к ней мы
будем редко.
Редактор распаковывает редактируемые файлы из архивов. При
этом редактирование файлов производится после их распаковки в соответствующую
иерархии папку, где они будут иметь более высокий приоритет над данными из
архивов. Таким образом, изменять мы будем не архивы, а распакованные из архивов
файлы.
Это дает возможность модифицировать игру без риска
приведения ее к нерабочему состоянию — достаточно удалить неправильный
файл/файлы.
Примечание:
Информация об ошибках, обнаруженных игрой, пишется в файл
warnings.log, ближе к концу файла. В начале
идет техническая информация, которая нас не интересует, а ближе к концу лога
пишется уже причина падения игры, или просто ошибки.
Если мод по каким-либо причинам не хочет запускаться, а
игру запустить надо, можно вручную изменить текущую модификацию в файле
Local.ini в корневой папке игры.
Строка currentmoddc= указывает папку текущего мода.
Для нашего мода currentmoddc=example_mod
(регистр букв не имеет значения).
Собственно распаковываются файлы в папку мода. В нашем
случае это Example_Mod\Data и далее по иерархии.
Игра использует два типа файлов: LUA и RGD.
Поэтому все файлы продублированы в двух форматах в случае установки официальных
модтулзов (это будет наша рабочая версия :)). У некоторых lua-файлов не будет.
LUA-файлы находятся в текстовом
формате, а RGD-файлы — в компилированном виде. Это
означает, что lua можно редактировать текстовым редактором, а rgd
— нет. Но работать игра может только с rgd, что позволяет нам о lua
забыть, ведь редактор как раз на rgd и рассчитан.
Однако ссылки в редакторе всегда
идут на lua-файлы, даже если таковых не существует. В редакторе ссылки
должны быть именно на lua, хотя игра будет брать данные из rgd.
То есть работать мы будем с rgd-файлами. Они имеют точно
такую же структуру как и архивы.
При изменении исходного файла или создании нового в
существующей структуре редактор помечет их красным цветом.
В данном примере исходные данные скаута были
отредактированы. Вдобавок, в моде существует некий scout_marine_new.rgd,
являющийся новым юнитом.
Заметьте, lua-файл скаута остался синим — так и
должно быть, т. к. работаем мы с rgd.
Удалить добавленные или измененные файлы из редактора
нельзя. Придется закрыть редактор, удалить их из соответствующей папки, а потом
снова запустить редактор.
Эту операцию нельзя делать при открытом редакторе, ибо это
вызовет ошибку (редактор знает, что файл был, а найти его не может).
Ниже приведено окно непосредственного редактирования. Как
видно, файл иерархичен.
Если есть ветка данных, то она имеет родительский объект,
указанный в Reference.
Изменения должны фиксироваться кнопкой
Save внизу редактора. При переходе на более
высокий уровень иерархии не сохраненные данные теряются. Так что внимательней! :)
Примечание:
Можно существенно облегчить работу в редакторе, если
грамотно использовать встроенные функции копирования и вставки.
Можно копировать целые ветви между разными файлами, ибо
редактор копирует не только содержимое, но и структуру копируемой ветви.
Если есть несколько однотипных ветвей, можно копировать и
вставлять информацию между ними целиком. Если имеется ветвь weapon_01
и weapon_02, и мы хотим полностью скопировать информацию из первой во
вторую, то щелкаем правой кнопой по первой, выбираем Copy, а на второй
выбираем Paste. И вуаля — информация скопирована, при этом названия
ветвей сохранились!
Также имеется возможность удаления (Delete)
и вставки на уровень ниже (Paste Into).
Не бойся экспериментировать!
Пожалуй, на этом с основными элементами интерфейса
редактора закончим. Можно приступать к работе. А работы будет много :)
По большей части работать придется с юнитами и сквадами, а
здесь есть несколько нюансов. Во-первых, что же такое сквад и чем он отличается
от юнита?
Юнитом считается любая единица прописанная в
ebps \ races \ название_расы
\ troops.
Это такая хреновина, имеющая собственные параметры,
модельку и анимацию. Собственно из юнитов и состоят сквады (отряды).
Сквадом называется файл, находящийся в sbps \
races \ название_расы. Сквад может состоять из
одного юнита (например, командиры) или нескольких (любые отряды пехоты). Сквад
имеет базовый юнит, на основе которого строится сквад. Более того, есть
понятие сквад-лидера. Сквад-лидер — это тоже юнит, но совсем
необязательно имеющий собственный сквад-файл (не является базовым юнитом для
какого-либо сквада). Яркий пример — сержанты Космодесанта. Они являются лидерами
отряда, но при этом отдельно от отряда не существуют. Сквад-лидеров может быть
несколько видов — отряд Воинов Огня (FW) имеет на
выбор ветеранов Шас'Уи либо защитных дронов. Причем можно как комбинировать
разных сквад-лидеров, так и весь лимит заполнить одним типом лидера.
При этом, если жив хотя бы один базовый юнит или
сквад-лидер, он может реинфорсить (пополнять) отряд и базовым юнитом, и лидером.
Поэтому единица и называется сквадом.
Здоровье, броня, вооружение, зрение — параметры юнита.
Лимит на количество, невидимость, возможность захватывать
стратегические позиции, мораль — параметры сквада.
Я постараюсь построить изложение от простого к сложному
так, чтобы новичок не пугался страшных объемов информации, которую нужно
переварить.
Для начала разберемся с простым редактированием параметров.
Возьмем для примера скаутов Космодесанта. Открываем редактор и добираемся до
ветки ebps \ races \
space_marines \ troops,
в которой нас интересует файл scout_marine.rgd. Даблкликаем по файлу и
смотрим на обилие параметров.
Редактируем стоимость юнита и
время постройки
Ветка cost_ext
\ time_cost \
time_seconds позволяет
изменить время постройки.
Важно помнить, что время постройки будет складываться. В
отряде скаутов 2 юнита, каждый строиться 6 секунд, следовательно, весь отряд
построится за 12 секунд.
Ветка cost_ext \ time_cost \ cost \
power (requisition, population) изменяет стоимость
в ресурсах.
Не забываем сохранить файл на каждом этапе.
Если сейчас запустить игру и выбрать свой мод в списке,
можно опробовать нововведения.
Если мы все изменили на нули, теперь скауты строятся
мгновенно и бесплатно. Но посмотрим на кнопку реинфрса — почему-то за новых
бойцов предлагают заплатить ресурсы, да еще и придется ждать. Нестыковочка
получается, да?
А все потому, что реинфорс — привилегия сквада, а не юнита.
Смело ползем в
sbps \ races \ space_marines \
space_marine_squad_scout.rgd \ squad_reinforce_ext,
где
находим аналогичную ветку cost. Редактируем в
соответствии с нашими запросами. Зануляем там все, что уж мелочиться!
Теперь в игре все работает прекрасно — отряд бесплатный,
реинфорс тоже.
Редактируем количество юнитов в
скваде
В корневой ветке сквада ищем ветку squad_loadout_ext,
где параметры unit_min и unit_max изменяют начальный (сколько воспроизведётся) и конечный (максимальное число в скваде) количественный состав
подразделения.
Качественный же состав, то есть базовый юнит сквада,
определяется параметром trooper_base \ type. Не спеши запихивать туда
терминаторов, камрад — успеется :)
Следует обратить внимание, что ссылка стоит на юнитов из
ebps.
Редактируем лимит на количество
пехоты/техники, занимаемый сквадом
В корневой ветке сквада ищем ветку squad_cap_ext, в
которой параметры squad_cap_usage и support_cap_usage определяют
лимит пехоты и техники соответственно.
Теперь все знают, как заспамить вражину бесконечными
скаутами. На этом, скорее всего, большинство злобных читеров, жаждущих
абсолютной власти, отсеялось :)
Многие уже задумались, а не заспамит ли МЕНЯ железный
болван? И я отвечу: заспамит так, что будешь меня обзывать гадкими словами.
Для этой ситуации нам пригодится свой юнит, о котором
скрипты искусственного интеллекта ничего не знают, а, значит, и не смогут
построить.
Создаем свой юнит на базе
существующего
Ищем файл юнита в ebps и правой кнопкой крысы
вызываем контекстное меню, третий пункт которого Make a
copy of this file решает все вопросы. Даем название типа
scout_marine_my.rgd.
Я вообще рекомендую приписывать к названию некую
удобоваримую комбинацию букв (навроде ника), чтобы не путаться потом. Да и
ссылки на этот файл удобней перекраивать на свой лад будет.
Теперь в sbps ищем файл сквада скаутов и дублируем с
новым именем. Здесь же меняем базовый юнит с обычных скаутов на наших, читерских
:)
Сейчас можно закрыть редактор и в папке мода по адресу:
Data\attrib\ebps\races\space_marines\troops\scout_marine.rgd
находится старый файл скаута — его нужно удалить, больше он не нужен. А рядом
лежит наш родной.
Аналогичная операция производится в Data\attrib\sbps\races\space_marines.
Однако теперь мы не можем наш отряд построить, ибо негде.
Исправляем сие упущение в редакторе,
найти нужно
ebps\races\space_marines\structures\space_marine_hq.rgd
Здесь в ветке spawner_ext\squad_table
прописать наш сквад, главное опечатку не сделать.
Эстетическое отступление
В ebps у юнита есть параметр ui_ext\ui_index_hint.
Он отвечает за позиционирование иконки юнита. Если место занято, игра ищет
следующее свободное место. Иногда в такие места, что потом найти уже не может
:)
Так что лучше вручную проконтролировать. Нумерация идет
слева сверху, тремя строками по четыре иконки (первая строка — 1, 2, 3, 4;
вторая — 5, 6, 7, 8; третья — 9, 10, 11, 12).
Теперь гнусный комп не сможет их строить, а ты — легко.
ВНИМАНИЕ!
С этого момента я буду использовать следующую терминологию
для удобства и скорости.
Если я говорю «у юнита», то заползаем в ebps и там
ищем файл юнита.
Если я говорю «у сквада», то работаем в sbps.
Иначе повествование затягивается без пользы.
Редактируем параметры
перемещения юнита
За скорость отвечает ветка moving_ext у юнита, где
полезными для нас будут три параметра:
rotation_rate — отвечает за скорость вращения юнита.
У большинства пехотных юнитов вращение мгновенное, толстый кнарлок у Тау
топчется полчаса.
speed_max — скорость передвижения, тут все ясно.
turning_behavior_template — тип шасси, если так
можно выразиться. Влияет на тип перемещения.
Бывает infantry (пехота), squiggoth
(монстры), hovercraft (воздушная подушка), default (стандартный, у
огромного количества юнитов), walker (шагающие боевые машины), tank
(танки и бэтры).
Влияет на скорость преодоления дифтеррейна
(труднопроходимых участков типа воронок), возможность использования укрытий.
1 - 2 - 3 страница |