Форумы Homeworld3.RU

Форумы Homeworld3.RU (http://www.homeworld3.ru/forum/index.php)
-   Верфи близ Сарума [HW2 Modding] (http://www.homeworld3.ru/forum/forumdisplay.php?f=24)
-   -   Урок: Внедрение своего корабля в игру (http://www.homeworld3.ru/forum/showthread.php?t=1357)

Orphey_OZ 11-27-2007 12:26 AM

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

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

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

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

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

Code:

-- 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, он выглядит примерно так:

Code:

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 будет выглядеть так:

Code:

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, он для вайгров начинается так

Code:

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” (без кавычек). Запускайте, наслаждайтесь.

Code:

Lesson is created by Dron01

Айсис 09-22-2008 08:45 PM

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

shurka777 01-18-2009 02:13 AM

Re: Урок: Внедрение своего корабля в игру
 
1 Attachment(s)
Прошу помочь в моей проблеме, взял модель из Клизмы (пиратский файтер) засунул его и все текстуры в 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

Re: Урок: Внедрение своего корабля в игру
 
если игра вылетает нужно всегда смотреть в лог файл
а потом думать что не так
примерный путь: E:\Homeworld2\Bin\Release\Hw2.log

shurka777 01-18-2009 01:11 PM

Re: Урок: Внедрение своего корабля в игру
 
Посмотрел в лог, исправил кое какие ошибки в hiigaran00.lua. В игре он всё-таки появился (я заменил им Scout) но с вот такими вот проблемами:



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

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

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

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

regul 12-07-2009 01:43 AM

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

regul 01-10-2010 04:00 AM

Re: Урок: Внедрение своего корабля в игру
 
разобрался - необходимо было прописать корабль также в familylist.lua

regul 01-14-2010 12:20 AM

Re: Урок: Внедрение своего корабля в игру
 
теперь всплыла следующая проблема - при добавлении этого коллектора в список постройки, он добавляется вместо какого-либо другого корабля, а не дополняя список. на пример, на верфи в разделе utilites 9 позиций, и коллектор добавляется не десятой, а заменяет одну из этих 9, какую бы я DisplayPriority не присваивал.

EvilChaotic 01-14-2010 07:07 AM

Re: Урок: Внедрение своего корабля в игру
 
Quote:

Originally Posted by regul (Post 35213)
теперь всплыла следующая проблема - при добавлении этого коллектора в список постройки, он добавляется вместо какого-либо другого корабля, а не дополняя список. на пример, на верфи в разделе utilites 9 позиций, и коллектор добавляется не десятой, а заменяет одну из этих 9, какую бы я DisplayPriority не присваивал.

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

Code:

    {
        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

Re: Урок: Внедрение своего корабля в игру
 
я ставил заведомо свободные номера DisplayPriority..

EvilChaotic 01-15-2010 02:20 PM

Re: Урок: Внедрение своего корабля в игру
 
Quote:

Originally Posted by regul (Post 35252)
я ставил заведомо свободные номера DisplayPriority..

Ну тогда проблема вот в этом:
Code:

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

regul 01-16-2010 01:39 AM

Re: Урок: Внедрение своего корабля в игру
 
Проверил. У mobile refinery и salvage collector'a и DisplayPriority и DisplayedName разные, а все то же.

Spy0007 01-27-2013 05:38 AM

Re: Урок: Внедрение своего корабля в игру
 
Ап теме.
Так же хотелось бы увидеть минимод-образец с 1 добавленным совершенно новым шипом. Вроде бы сделано всё по гайду, с учетом постов выше, но вылетает при загрузке карты, лог-файла нет вообще :confused:
Игра ставилась и патчилась с данного форума, сама-по-себе работает отлично.

Филипп 05-16-2014 03:35 AM

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

Pandorazero 05-16-2014 10:27 AM

Re: Урок: Внедрение своего корабля в игру
 
Quote:

Originally Posted by Филипп (Post 57661)
А если из другой игры(из Космической Федерации. Серые лорды)? Не говоря уже о том, что можно использовать шип файлы своих кораблей. Я нашёл их, но в формате shipcfg. Что это за формат?

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

Филипп 05-17-2014 05:50 AM

Re: Урок: Внедрение своего корабля в игру
 
Ок. Только я не знаю, как это сделать. вот в второй игре даже есть программы(как я думаю) кораблей. Ну, например:
<?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

Re: Урок: Внедрение своего корабля в игру
 
Quote:

Originally Posted by Филипп (Post 57664)
Ок. Только я не знаю, как это сделать. вот в второй игре даже есть программы(как я думаю) кораблей. Ну, например:
<?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 минуты
А если кто-то заинтересован, то идите в тему Космическая Федерация. Ну, вы поняли.

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


All times are GMT +3. The time now is 12:50 AM.