Веселей народ!

АнекдотыПриколыКлан HARDCall of DutyCompany of Heroes

Поиск
Форма входа
Логин:
Пароль:
Меню сайта
Категории раздела
Call of Duty 4 - Modern Warfare [1]
Call of Duty - Black Ops [1]
Call of Duty - Modern Warfare 2 [9]
Company of Heroes [65]
Company of Heroes 2 [14]
Главная » Статьи » Игры » Company of Heroes

Создание модификации в Corsix's Mod Studio для Dawn Of War и Company of Heroes
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 страница

Категория: Company of Heroes | Добавил: Grand_2 (31.07.2012)
Просмотров: 5733 | Рейтинг: 3.0/2
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Регистрация?
Преимущество регистрации на сайте:

1. Не мешает реклама
2. Возможность скачивать файлы по прямым ссылкам (если они имеются).
Наш опрос
Вы используете читы в сетевой игре Company of Heroes?
Всего ответов: 1012
Статистика
Яндекс.Метрика
Copyright MyCorp © 2017