View Single Post
Old 11-27-2007, 12:26 AM   #1
Orphey_OZ
МичманВ запасе
 
Orphey_OZ's Avatar
 
Faction:
Хиигаряне

Join Date: Nov 2007
Location: UA\Kiev\Furon
Posts: 91
Урок: Внедрение своего корабля в игру

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

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

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
Orphey_OZ is offline   Reply With Quote