PDA

View Full Version : Урок: Внедрение своего корабля в игру


Orphey_OZ
11-27-2007, 12:26 AM
Внедрение своего корабля в игру.

Сперва – подготовка.

0) Подготовка Windows: Зайдите в Свойства Папки и снимите флажок «скрывать расширения для известных типов файлов» во второй вкладке.
1) Скопируйте файл homeworld2.big в любую папку, путь к которой НЕ содержит пробелов. У меня – C:\1\

2) Теперь откройте его в BigExtractor’е от Spooky. Жмите на кнопку «Распаковать всё». У Rebellion’ов была готовая полностью декомпилированная папка Data, респект тому, кто найдёт. (P.S. Нашол! (http://warlords.swrebellion.com/files/data.zip) Респект мне!! Но учтите - hod'ов там нет. Это уж из своей берите) Теперь в вашей папке 1 должна быть папка Data, а в ней – папки ship, weapon, subsystem etc. Но, как видите, все файлы wepn, ship, miss, wf и т.д. не декомпилированы, т.е. закодированы.

3) LuaDC.exe перенесите в папку Windows. Чтобы декомпилировать какой-либо файл нужно зайти в Пуск->Выполнить-> “LuaDC *путь к файлу и имя*”. Проще всего написать LuaDC, а затем в Проводнике взять файл и перетащить его в поле команды «Выполнить». Учтите, что НИКАКИХ кавычек в поле команды «Выполнить» быть не должно ни в коем случае! После верной декомпиляции в папке с исходником должен появиться файл с расширением LuaDC. Жмите в контекстном меню «Переименовать» и удаляйте это расширение нафиг. После чего открывайте полученный файл в блокноте. Если всё верно, то в нём должны быть следующие строки:

-- LuaDC version 0.9.19
-- 5/23/2004 11:08:14 PM
-- LuaDC by Age2uN
-- on error send source file (compiled lua) and this outputfile to Age2uN@gmx.net

их тоже можно удалить. Вообще все строки, начинающиеся на -- это комментарии.

Урок 1: Внедрение своего корабля.

1) Ну допустим, к примеру, хотим мы сделать суперскаут, чтобы он летал быстро, стрелял быстро, умирал не очень быстро. Входим в папку Hgn_scout в вашей папке Data. Декомпилируем файлы .ship и .events. После чего копируем всю папку из этой папки в игровую папку (создайте) Data\ship.

2) Теперь последовательно переименовываем папку и все файлы из hgn_scout.* в “имя_новой_единицы”.*. Таким образом, в папке с именем этой единицы должны находиться файлы с именем папки и расширениями .hod, .ship, .events.

3) А теперь можно и поиздеваться. Заходим в файл .ship, он выглядит примерно так:

NewShipType = StartShipConfig()
NewShipType.displayedName = "Merger"
NewShipType.sobDescription = "Some from rail, some from bomber..."
NewShipType.maxhealth = 150
NewShipType.regentime = 0
NewShipType.minRegenTime = 0
NewShipType.sideArmourDamage = 1
NewShipType.rearArmourDamage = 1
NewShipType.isTransferable = 1
NewShipType.useEngagementRanges = 0
NewShipType.unitCapsNumber = 3
NewShipType.SquadronSize = 3
NewShipType.formationSpacing = 50
и т.д.

Ну, я полагаю, что вы не настолько ламеры в английском, чтобы понять, что maxhealth – это здоровье, squadronSize – это размер звена и т.д. Изменяйте всё, что хотите. Ниже вам встретятся функции StartWeaponConfig и SetEngineBurn – о них и других файлах и функциях позже.


4) Сделали всё, что хотели? Но это ещё не всё. Надо, чтобы ваш кораблик принадлежал какой-то расе.

А) Чтобы быстро внедрить свой кораблик зайдите в вашей папке Data в папку scripts\startingfleets, декомпилируйте файлы внутри. После чего перенесите папку startingfleets в игровую папку (создайте) Data\scripts. Откройте любой по выбору файл и изменяйте, к примеру vaygr00.lua будет выглядеть так:

PersistantData =
{
StrikeGroups = {},
Squadrons =
{
{
type = "Vgr_MotherShip",
subsystems = {},
shiphold = {},
name = "",
size = 1, },
{
type = "Vgr_ResourceCollector",
subsystems = {},
shiphold = {},
name = "",
size = 1,
number = 6, },
{
type = "Vgr_Carrier",
subsystems = {},
shiphold = {},
name = "",
size = 1,
number = 1, },
--а вот это ваш новый эскадрон
{
type = "имя_новой единицы",
size = размер_эскадрона,
number = 1, },
},

Research = {}, }

Б) Второй способ сложнее, здесь я вам даю свободу воли. В вашей папке Data\scripts отыщите папку «building and research» и далее vaygr, в ней декомпилируйте файлы research.lua и build.lua, после чего перенесите это всё в игровую папку Data\scripts\building and research\vaygr. Теперь откройте файл build.lua, он для вайгров начинается так

Ship = 0
SubSystem = 1
build =
{
{
Type = SubSystem,
ThingToBuild = "Vgr_C_Production_Fighter",
RequiredResearch = "",
RequiredShipSubSystems = "",
DisplayPriority = 0,
DisplayedName = "$7100",
Description = "$7101", },


и по аналогии (уж как – сами попробуйте догадаться =)) добавьте кораблик – тут я умываю руки. Скажу только, что DisplayPriority показывает расположение корабля в списке строительства, а строки $#### находятся в папке Data\locale.

5) А теперь создайте ярлык на файл Homeworld2.exe и пропишите в свойствах объекта “-overrideBigFile” (без кавычек). Запускайте, наслаждайтесь.

Lesson is created by Dron01

Айсис
09-22-2008, 08:45 PM
Я так в FX моде химичил. Из Genesis`а добавил материнку предков и прокачал все корабли кои можно. У меня лин.крейсер из турелей стрелял ДВОЙНЫМ залпом Саджуука! Материнки дохли через 1.4243 секунды. Истребители прыгали в гипер и хиигары строили гипер-платформу и хранителей. И пр. и пр. и пр.

shurka777
01-18-2009, 02:13 AM
Прошу помочь в моей проблеме, взял модель из Клизмы (пиратский файтер) засунул его и все текстуры в HOD файл согласно уроку с Relic'овского форума с помощью CFHodEd 3.2.3 и файла kpr_bomber.hod, согласно тому же уроку поправил всё что нужно было. Как теперь вставить, а точнее добавть к уже имеющимся этот Шип в игру.

В том уроке было написано:
Положить новый HOD файл в папку Data\ship\hgn_ship, взять events и ship файлы от hgn_interceptor и переименовать их все в hgn_ship, т.е. в результате в папке hgn_ship должны быть три файла hgn_ship.hod; hgn_ship.ship; hgn_ship.events, но что дальше делать ничего не указано.

З.Ы. Использовал вышеуказанный метод А и Б, при загрузке skirmish'а, игра вылетает. Может проблема в моём HOD'е?

На всякий случай вот мой ход:

Prisoner
01-18-2009, 12:24 PM
если игра вылетает нужно всегда смотреть в лог файл
а потом думать что не так
примерный путь: E:\Homeworld2\Bin\Release\Hw2.log

shurka777
01-18-2009, 01:11 PM
Посмотрел в лог, исправил кое какие ошибки в hiigaran00.lua. В игре он всё-таки появился (я заменил им Scout) но с вот такими вот проблемами:

http://pic.ipicture.ru/uploads/090118/JvJUUpiLdV.jpg

Я так понял это из-за того что я использовал ship файл от Scout'a, а hod от другого. Хотелось бы узнать как самому сделать правильный HOD файл, чтобы не использовать готовые от других кораблей, и какие нужны скрипты для добавления нового шипа в меню постройки скажем для одной из рас.
И хотелось бы поподробнее узнать принципы работы (значения строк в этих скриптах) вот этих файлов: *.events *.madstate *.ship, и как они взаимосвязаны друг с другом.

З.Ы. Если есть у кого элементарный мод который добавляет (именно добавляет) один новый шип к существующей расе, выложете его плиз, я сам всё разберу (Test mod 01 не подходит).

Заранее спасибо.

И скажите как прятать картинки под спойлер или что-то подобное, тут на форуме.

regul
12-07-2009, 01:43 AM
Я добавляю SalvageCollector из piratemod v0.3 - модифицированный колллектор для быстрого сбора обломков.
удалось добавить корабль в стартовый флот, а вот в строительство никак не добавляется.. Просто не появляется в списке строительства, какой бы я ему DisplayPriority не присваивал. Что нужно еще сделать?

regul
01-10-2010, 04:00 AM
разобрался - необходимо было прописать корабль также в familylist.lua

regul
01-14-2010, 12:20 AM
теперь всплыла следующая проблема - при добавлении этого коллектора в список постройки, он добавляется вместо какого-либо другого корабля, а не дополняя список. на пример, на верфи в разделе utilites 9 позиций, и коллектор добавляется не десятой, а заменяет одну из этих 9, какую бы я DisplayPriority не присваивал.

EvilChaotic
01-14-2010, 07:07 AM
теперь всплыла следующая проблема - при добавлении этого коллектора в список постройки, он добавляется вместо какого-либо другого корабля, а не дополняя список. на пример, на верфи в разделе utilites 9 позиций, и коллектор добавляется не десятой, а заменяет одну из этих 9, какую бы я DisplayPriority не присваивал.

Это потому что в хоме DisplayPriority кораблей идет по очередно, вот ты и заменяешь то один то другой. Тебе нужно найти "пустую ячейку DisplayPriority"

{
Type = SubSystem,
ThingToBuild = "Vgr_MS_Sensors_AdvancedArray",
RequiredResearch = "",
RequiredShipSubSystems = "",
DisplayPriority = 25,
DisplayedName = "$7122",
Description = "$7123", },
{
Type = SubSystem,
ThingToBuild = "Vgr_C_Sensors_DetectHyperspace",
RequiredResearch = "",
RequiredShipSubSystems = "",
DisplayPriority = 30,
DisplayedName = "$7126",
Description = "$7127", },
{
===============================================================
{
Type = Ship,
ThingToBuild = "Vgr_LanceFighter",
RequiredResearch = "LanceBeams",
RequiredShipSubSystems = "FighterProduction",
DisplayPriority = 23,
DisplayedName = "$7136",
Description = "$7137", },
{
Type = Ship,
ThingToBuild = "Vgr_MissileCorvette",
RequiredResearch = "",
RequiredShipSubSystems = "CorvetteProduction",
DisplayPriority = 100,
DisplayedName = "$7138",
Description = "$7139", },
{



Только между такими промежутками надо вставлять свой корабль, например под номером 26 и 24

regul
01-15-2010, 10:04 AM
я ставил заведомо свободные номера DisplayPriority..

EvilChaotic
01-15-2010, 02:20 PM
я ставил заведомо свободные номера DisplayPriority..

Ну тогда проблема вот в этом:
DisplayedName = "$7136",


Вместо указателя на назвние корабля нужно написать туда свое имя.
Например DisplayedName = "HeavyFighter", 2 похожих по имени объекта вроде как не должны быть в хоме, и они заменяют друг друга.

regul
01-16-2010, 01:39 AM
Проверил. У mobile refinery и salvage collector'a и DisplayPriority и DisplayedName разные, а все то же.

Spy0007
01-27-2013, 05:38 AM
Ап теме.
Так же хотелось бы увидеть минимод-образец с 1 добавленным совершенно новым шипом. Вроде бы сделано всё по гайду, с учетом постов выше, но вылетает при загрузке карты, лог-файла нет вообще :confused:
Игра ставилась и патчилась с данного форума, сама-по-себе работает отлично.

Филипп
05-16-2014, 03:35 AM
А если из другой игры(из Космической Федерации. Серые лорды)? Не говоря уже о том, что можно использовать шип файлы своих кораблей. Я нашёл их, но в формате shipcfg. Что это за формат?

Pandorazero
05-16-2014, 10:27 AM
А если из другой игры(из Космической Федерации. Серые лорды)? Не говоря уже о том, что можно использовать шип файлы своих кораблей. Я нашёл их, но в формате shipcfg. Что это за формат?

кинь сюда этот файл в тему !

Филипп
05-17-2014, 05:50 AM
Ок. Только я не знаю, как это сделать. вот в второй игре даже есть программы(как я думаю) кораблей. Ну, например:
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<GC2Ships>
<ShipTemplate Name="DreadnoughtTemplate3_t">
<Component>HugeHull0</Component>
<DisplayName>Дредноут</DisplayName>
<Model>Dreadnaught</Model>
</ShipTemplate>
</GC2Ships>
Что это? По названию файла, что это какая-то часть дредноута. Но он по-другому выглядит. Да там их не один, а сразу 25 штук.

Добавлено через 16 минут
Да, закину, но не получается. Потом. Сейчас пароль от аккаунта искать, и на ноуте входить.

Добавлено через 22 минуты
Ещё кое-что нашёл. В нерабочей игре, в папке data есть кроме ShipCfg ещё одна папка. Называется ShipTemplates. В ней больше 25 текстовых файлов с кодами для кораблей. Вот пример:
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<GC2Ships>
<ShipTemplate Name="HvyFtrTemplate2_t">
<Component>SmallHull1</Component>
<DisplayName>Феникс</DisplayName>
<Model>Phoenix</Model>
</ShipTemplate>
</GC2Ships>
Это феникс. Он у разных рас выглядит по-разному. Но есть сходства, оружие и броня выглядит (у разных рас) одинаково.
Только попробовал открыть shipcfg с помошью блокнота. Это строение корабля. Очень полезно.

Добавлено через 1 минуту
Ещё кое-что нашёл. В нерабочей игре, в папке data есть кроме ShipCfg ещё одна папка. Называется ShipTemplates. В ней больше 25 текстовых файлов с кодами для кораблей. Вот пример:
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<GC2Ships>
<ShipTemplate Name="HvyFtrTemplate2_t">
<Component>SmallHull1</Component>
<DisplayName>Феникс</DisplayName>
<Model>Phoenix</Model>
</ShipTemplate>
</GC2Ships>
Это феникс. Он у разных рас выглядит по-разному. Но есть сходства, оружие и броня выглядит (у разных рас) одинаково.
Только попробовал открыть shipcfg с помошью блокнота. Это строение корабля. Очень полезно.

Добавлено через 1 час 24 минуты
А если кто-то заинтересован, то идите в тему Космическая Федерация. Ну, вы поняли.

Pandorazero
05-17-2014, 08:08 AM
Ок. Только я не знаю, как это сделать. вот в второй игре даже есть программы(как я думаю) кораблей. Ну, например:
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<GC2Ships>
<ShipTemplate Name="DreadnoughtTemplate3_t">
<Component>HugeHull0</Component>
<DisplayName>Дредноут</DisplayName>
<Model>Dreadnaught</Model>
</ShipTemplate>
</GC2Ships>
Что это? По названию файла, что это какая-то часть дредноута. Но он по-другому выглядит. Да там их не один, а сразу 25 штук.

Добавлено через 16 минут
Да, закину, но не получается. Потом. Сейчас пароль от аккаунта искать, и на ноуте входить.

Добавлено через 22 минуты
Ещё кое-что нашёл. В нерабочей игре, в папке data есть кроме ShipCfg ещё одна папка. Называется ShipTemplates. В ней больше 25 текстовых файлов с кодами для кораблей. Вот пример:
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<GC2Ships>
<ShipTemplate Name="HvyFtrTemplate2_t">
<Component>SmallHull1</Component>
<DisplayName>Феникс</DisplayName>
<Model>Phoenix</Model>
</ShipTemplate>
</GC2Ships>
Это феникс. Он у разных рас выглядит по-разному. Но есть сходства, оружие и броня выглядит (у разных рас) одинаково.
Только попробовал открыть shipcfg с помошью блокнота. Это строение корабля. Очень полезно.

Добавлено через 1 минуту
Ещё кое-что нашёл. В нерабочей игре, в папке data есть кроме ShipCfg ещё одна папка. Называется ShipTemplates. В ней больше 25 текстовых файлов с кодами для кораблей. Вот пример:
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<GC2Ships>
<ShipTemplate Name="HvyFtrTemplate2_t">
<Component>SmallHull1</Component>
<DisplayName>Феникс</DisplayName>
<Model>Phoenix</Model>
</ShipTemplate>
</GC2Ships>
Это феникс. Он у разных рас выглядит по-разному. Но есть сходства, оружие и броня выглядит (у разных рас) одинаково.
Только попробовал открыть shipcfg с помошью блокнота. Это строение корабля. Очень полезно.

Добавлено через 1 час 24 минуты
А если кто-то заинтересован, то идите в тему Космическая Федерация. Ну, вы поняли.

Для внедрения корабля нужно только модель и текстура , эти тексты тебе не нада !
Заливай модель с текстурами и я создам пример тебе , и все распешу как делал !