View Single Post
Old 11-06-2008, 11:52 PM   #5
AndrewN
Вице-адмиралВице-адмирал
 
Faction:
Таииданская Империя

Join Date: Mar 2007
Location: Имперские Верфи
Posts: 786
Восклицание Re: Как создать новую рассу в хомеворлд2

Итак.
После трех часов т***а со скриптами удалось добавить новую расу в ХВ2 практически с нуля...
Итак. Согласие соавтора по моду получено, поэтому...
Тобари.
1. Предположим, что мы хотим добавить расу Тобари в игру. Дружно вспоминаем, какие у них есть корабли. Карриер, ганшип, фрегат.
Подумав, решаем, что нужны еще коллектор и пробка.
Подсистемы к чертям))
2. Для начала откапываем /берем из декомпиленной даты, декомпиллим сами/ файл Race.lua, и прописываем туда новую расу, собственно Тобарей.
Тобарям прописываем зеленые форточки). Зеленые форточки есть круто)

Многаскрипта

3. Тобари вроде как есть.) Можно попробовать заглянуть в игру и убедиться, что теперь доступны три расы, плюс Св. РандомЪ.
4. Открываем Familylist.lua и прописываем там фамилии... семейства кораблей для Тобари...
Code:
    {
        name = "Corvette_Tbr", },
    {
        name = "Frigate_Tbr", },
    {
        name = "Carrier_Tbr", },
    {
        name = "Utility_Tbr", },
    {
        name = "Probe_Tbr", },
    {
        name = "SubSystem_Tbr", },
Не спрашивайте, почему так. Просто))
5. Естественно, моделей кораблей у нас нету) Поэтому подберем мало-мальски подходящее...
Именно:
Hgn_carrier
Hgn_assaultcorvette
Hgn_Assaultfrigate
Hgn_resoursecollector
Vgr_Probe.
6. Естественно, в готовом виде модели нас не устраивают...
Быстро переименовываем их в...:
Hgn_carrier..................Tbr_Carrier
Hgn_assaultcorvette......Tbr_Gunship
Hgn_Assaultfrigate........Tbr_Frigate
Hgn_resoursecollector....Tbr_Harvester
Vgr_Probe....................Tbr_Probe
Харвестер -- это для прикола)))
7. Вспоминаем, что нас не интересуют подсистемы.
Вспоминаем, что карриер -- единственный крупный корабль у Тобари.
Стало быть, ресерч модуль есть изначально.
Идем в Tbr_Carrier.ship, оставляем там от:
Еще больше несъедобного скрипта)

Т.е. мы в первый же слот проставляем ресерч модуль, и делаем его вечным и неубиваемым)).
8. А-а-ах, у нас нет тобари ресерч модуля...Что же.. Выпотрашиваем Vgr_c_Module_research, кидаем его в Subsystems, и переименовываем все три файла в Tbr_Module_Research.
9. Теперь вспоминаем про семейства. Все тот же Tbr_Carrier.ship мы ковыряем дальше:
Code:
addAbility(NewShipType, "CanBuildShips", 1, "Corvette_Tbr, Frigate_Tbr, Carrier_Tbr, Utility_Tbr, Probe_Tbr", "Utility, Corvette, Frigate, SubSystemModule, Capital")
То есть строить он может все, в т.ч. и само себя)
Ах нет, пока не может..))
10.
Меняем
Code:
NewShipType.BuildFamily = "Carrier_Hgn"
на
Code:
NewShipType.BuildFamily = "Carrier_Tbr"
Точно так же выправляем во всех остальных шип-файлах все
Code:
NewShipType.BuildFamily
с Hgn или Vgr на Tbr.
...
Теперь начинается самое веселое.
11. Создаем, или кидаем скрипты Building and Research в Scripts.
Нас интересует минимум кораблей и минимум ресерчей, посему клонируем Вайгровский пакет билдресерчей и переименовываем его Tobari. Однако build.lua лучше взять хиигарский.
Далее думаем, или опять же вспоминаем, как мы хотели построить дерево ресерчей...
Посколько подсистем нету, то открываем Build.lua, и удаляем все упоминания о подсистемах вообще, а так же из
Code:
RequiredShipSubSystems = "",
.
Оставляем хиигарский карриер, ассолтфрегат, ассолткорвет, ресурсколлектор и пробку. Быстро их переименовываем так, как было указано выше.
12. Параллельно открываем research.lua. Что мы хотим? Подсистем нету, ergo, делаем активацией. Значит, оставляем родные вайгровские "CorvetteTech" и "FrigateTech".
12.1. "FrigateTech" дублируем, переименовываем в "CarrierSummon", исправляем все описания, меняем
Code:
TargetType = Family,
TargetName = "Frigate",
на
Code:
TargetType = Ship,
TargetName = "Tbr_Carrier",
12.2. Едем дальше. Дальше нам встречается "SuperCapHealthUpgrade1", "SuperCapHealthUpgrade2", "SuperCapSpeedUpgrade1" и "SuperCapSpeedUpgrade2"
Аналогично исправляем на
Code:
TargetType = Ship,
TargetName = "Tbr_Carrier",
...т.к. у нас только карриер и других крупных кораблей не предвидится.
12.3. Остальное выправляем по аналогии.
Однако.
Допустим, ганшипам мы хоти сделать апгрейд на огневую мощь.
Копируем любую пару конфигов, например, "CorvetteHealthUpgrade1" и "CorvetteHealthUpgrade2", переименовываем их в "CorvetteDamageUpgrade1" и "CorvetteDamageUpgrade2", и меняем
Code:
        UpgradeName = "MAXHEALTH",
        UpgradeValue = 1.6,
        Icon = Icon_Health,
на
Code:
        UpgradeName = "WeaponDamage",
        UpgradeValue = 1.4,
        Icon = Icon_Ability,
12.4. Подсистем у нас нет. Поэтому все упоминания о необходимых подсистемах исправляем на
Code:
      RequiredSubSystems = "Research",
С этим вроде понятно.

Итого, что мы имеем? Расу Тобарей...)
Стоп.
Мы забыли прописать им Startinfleet.
13. Копируем любой стартингфлит-конфиг, переименовываем в Tobari00, и прописываем там карриер и шесть харвестеров.

Снова скрипты
Вроде как теперь точно все.
Что мы имеем? Почти безподсистемный карриер, ганшип, фрегат, коллектор и пробку. Карриер покупается только после ресерча, ганшипы и фрегаты спокойно апгрейдятся.
Жалко, они не летают в гипере, но как сделать гиперпрыжок без модулей, только после ресерча -- я пока не представляю...
А вот результат.
Другой совершенно несъедобный архив, весом в 1,69 мб.
Я вас предупредил.))

Code:
Created by AndrewN.

Last edited by AndrewN : 11-07-2008 at 12:14 PM. Reason: Забыл подсистемы вложить.
AndrewN is offline   Reply With Quote