Сообщество Империал: Моддинг юнитов в Revolution Under Siege. Часть 1 - Пошаговые Стратегии - Стратегические Игры - Библиотека - Сообщество Империал

  • Поиск
  • Законы
  • Сообщество
  • Репутация
  • Экономика
  • Больше

Информация об авторе

  • Автор: Dart Kovu Nazgul

Информация по статье

  • Добавлено: 04 Янв 2015, 21:58
  • Обновлено: 31 Мар 2015, 00:24
  • Просмотры: 554

Дополнительно

Репутация: 2
Моддинг юнитов в Revolution Under Siege. Часть 1

Описание: Моддинг юнитов в Revolution Under Siege. Часть 1
Данные изыскания обнаруженные методом тыка) актуальны для игры "Revolution Under Siege"


Папка Units - содержит в себе все фалы Юнитов (*.uni)
Стоит учесть что, один юнит (файл *.uni) может состоять из нескольких моделей-подразделений как одинакового типа так и разного.



Units.Cached - файл с которым работает сама игра, в случаи удаления формируется из всех существующих файлов юнитов - *.mdl
Т.е. в случаи внесения изменений в файлы юнитов для того чтобы игра их восприняла надо удалить Units.Cached.



Найм юнитов происходит путём использования меню найма, с лева вверху геймплейного меню.
Найм юнитов в игре может быть ограничен количеством, регионом вербовки, а так же вообще не наниматься обычным путём (уникальные юниты).
Если в юните погибают все модели-подразделения то юнит прекращает своё существование.
Если же погибла только часть подразделений, то спустя время юнит может восполнить недостающие модели-подразделения используя резервы.

По типу юниты делятся на 6 типов (аналогично пунктам меню найма):
- Пехотные подразделения
- Мобильные и кавалерийские подразделения
- Артиллерийские подразделения
- Остальные наземные подразделения
- Корабли
- Гарнизоны и Крепости

есть и 7 пункт меню но можно ли его использовать пока не ясно.



Так же найм юнитов может быть ограничен несколькими нациями из числа основной игральной нации и суб-наций.




Данные изыскания обнаруженные методом тыка) актуальны для игры "Revolution Under Siege"


Папка Models - содержит в себе все фалы Моделей юнитов (*.mdl), наименьшей единицы в составе юнита (не обязательно боевой).



Стоит учесть что, один юнит (файл *.uni) может состоять из нескольких моделей как одинакового типа так и разного.



Models.Cached - файл с которым работает сама игра, в случаи удаления формируется из всех существующих файлов моделей - *.mdl
Т.е. в случаи внесения изменений в файлы юнитов для тго чтобы игра их восприняла надо удалить Models.Cached.



Выбирая в меню F2 (Военное министерство) подразделения для создания в резерве, фактически вы создаёте дополнительные модельки как раз для замены понёсших потери или полностью уничтоженных моделек в юнитах.
Если в юните погибают все модели-подразделения то юнит прекращает своё существование.
Если же погибла только часть подразделений, то спустя время юнит может восполнить недостающие модели-подразделения используя резервы.


Рассмотрим содержание файлов на примере нескольких юнитов.
Информация будет дополняться в этом сообщении по ходу исследований.


23REDInfantry Div (early conscripts).uni - Пехотная дивизия Красных состоящая из 4 пехотных полков + 1 кавалерийский + 1 артиллерия


UID = 23 - Порядковый Код присвоенный данному юниту
NationTag = RED - Принадлежность к фракции
Name = Пех. див. (ранн. призыв) Полное отображаемое название юнита
Alias = uni_RED_Div23 - Внутренне игровое название юнита
ForcePool = 30 - размер юнита (пока непонятно в каких единицах ??)
ShortName = Пех. див. Короткое отображаемое название юнита
Text = $uni_txt_RED_Infantry Вроде описание юнита ??
Color = $colREDRegular Цвет заднего фона иконки юнита ??
SymbolID = symbol_DivInf.png иконка типа подразделения юнита из папки ... \REDS - Revolution under Siege\RUS\Graphics\NATOSymbols
ModelType0 = $mdl_RED_Inf5|2 различные виды моделей-подразделений входящие в юнит | их количество
ModelType1 = $mdl_RED_Inf6|2 различные виды моделей-подразделений входящие в юнит | их количество
ModelType2 = $mdl_RED_Cav3|1 различные виды моделей-подразделений входящие в юнит | их количество
ModelType3 = $mdl_RED_Art2|1 различные виды моделей-подразделений входящие в юнит | их количество
FamilyType0 = $famLine|4 эти же модели указанные по типам | их количество
FamilyType1 = $famCavalry|1 эти же модели указанные по типам | их количество
FamilyType2 = $famMedArty|1 эти же модели указанные по типам | их количество
CmdCost = 4 цена найма ??
Pillage = 0 мародёрство / фуражирование ??
BuildRule = $recCity правила строительства
BuildWeight = 4 цена строительства в каком то весе??
Area = $Recruit_Russians зона в котрой может наниматься юнит
CustomNames = 1-я стрелк. див.|2-я стрелк. див.|3-я стрелк. див.|4-я стрелк. див.|5-я стрелк. див. .... перечисление потенциальных названий нанимаемых юнитов


108REDTachankas.uni - Тачанки Красных


UID = 108
NationTag = RED
Name = Тачанки
Alias = uni_RED_MG1
ForcePool = 30
ShortName = Тачанки
Text = $uni_txt_RED_Tachankas
Color = $colREDRegular
ModelType0 = $mdl_RED_MG1|1
FamilyType0 = $famLightArty|1
CmdCost = 1
Pillage = 0
BuildRule = $recCity
BuildWeight = 1
CustomNames = 1-е подр. тачанок|2-е подр. тачанок|3-е подр. тачанок|4-е подр. тачанок|5-е подр. тачанок ...


942REDJ. Stalin.uni - генерал Сталин И.В.


UID = 942
NationTag = RED
Name = И.В. Сталин
Alias = uni_RED_Stalin3
ForcePool = -1
ShortName = И.В. Сталин
Text = $ldr_txt_RED_Stalin
Color = $colREDRegular
ModelType0 = $ldr_RED_Stalin3|1
FamilyType0 = $famLeader|1
CmdCost = 0
Pillage = 0
AutoRaise = -1
BuildRule = -1
BuildWeight = -1
Area = -1
AltArea = -1


Думаю многие из тех кто играл за разные фракции в Revolution Under Siege столкнулись с ситуациями когда генералы суб-фракций, вроде ВВД или КОМУЧ накопились в большом количестве, а укомплектовать их можно только маленькими подразделениями этих суб-фракций состоящим из 1-2 полков.


Поэтому попробуем на примере обычного отряда КОМУ - "Полк. ополч. КОМУЧ" создать новый юнит:
- Бригаду по составу, 3 пех. полка + 75 мм артиллерия.



Сначала найдём будущие составные части, пехотный юнит "Полк. ополч." и "Арт. 75 мм полк" доступные в пуле найма для суб-фракции КОМУЧ.
Найдя их мы узнаем из каких Models состоят эти юниты.
В данном случаи легче всего искать по принадлёжности к фракции КОМУЧ, в игре это суб-фракция - WH2
Ищем все юниты с текстом NationTag = WH2
Соответственно включив логике и немного просмотрев найденные фалйы находим юниты :
295WH2Garrison.uni

UID = 295
NationTag = WH2
Name = Гарнизон
Alias = uni_WH2_Gar
ForcePool = 6
ShortName = Пех.
Text = $uni_txt_WH2_Infantry
Color = $colWH2Regular
ModelType0 = $mdl_WH3_Mil1|1
FamilyType0 = $famLine|1
CmdCost = 0
Pillage = 0
BuildRule = $recCity
BuildWeight = 1
Area = $Recruit_Komuch
CustomNames = 1-й полк. ополч. КОМУЧ|2-й полк. ополч. КОМУЧ|3-й полк. ополч. КОМУЧ|4-й полк. ополч. КОМУЧ
...



298WH2Artillery 75mm Rgt.uni

UID = 298
NationTag = WH2
Name = Арт. 75-мм полк
Alias = uni_WH2_Art1
ForcePool = 8
ShortName = 76-мм батарея
Text = $uni_txt_WH2_Artillery
Color = $colWH2Regular
ModelType0 = $mdl_WH3_Art1|1
FamilyType0 = $famLightArty|1
CmdCost = 1
Pillage = 0
BuildRule = $recWSU
BuildWeight = 1
Area = $Recruit_Russians
CustomNames = 1-я легк. арт. бат.|2-я легк. арт. бат.|3-я легк. арт. бат.|4-я легк. арт. бат.
...


Красным я выделил имена моделей которые нам понадобятся для нового юнита.

По логике все номера юнитов идут по очереди и могут быть ли пропуски в цифрах я не знаю. посему запишем новый юнит 1775
Указав соответствующие модели ModelType и ихние классы в FamilyType.
Описание юнита я пока не затрагиваю и беру уже существующее - Text = $uni_txt_WH2_Infantry

1775WH2Garrison Div.uni

UID = 1775
NationTag = WH2
Name = Пех. див. КОМУЧ
Alias = uni_WH2_Div
ForcePool = 30
ShortName = Пех. див.
Text = $uni_txt_WH2_Infantry
Color = $colWH2Regular
SymbolID = symbol_DivInf.png
ModelType0 = $mdl_WH3_Mil1|3
ModelType1 = $mdl_WH3_Art1|1
FamilyType0 = $famLine|3
FamilyType1 = $famLightArty|1
CmdCost = 4
Pillage = 0
BuildRule = $recCity
BuildWeight = 4
Area = $Recruit_Komuch
CustomNames = 1-я стрелк. див.|2-я стрелк. див.|3-я стрелк. див.|4-я стрелк. див.|5-я стрелк. див.|6-я стрелк. див.|7-я стрелк. див.|8-я стрелк. див.|9-я стрелк. див.|10-я стрелк. див.


Теперь надо записать придуманное нами внутренее название юнита - Alias = uni_WH2_Div в базу юнитов.
В файл uni_Alias.ini
Она находиться по пути ...\REDS - Revolution under Siege\RUS\Aliases
добавляем в нём строку $uni_WH2_Div = 1775


У нас новый юнит, значит не забываем удалить Units.Cached
Но это ещё не всё!

У нас уже есть готовый юнит, но игра пока не знает когда и как его вербовать и где использовать.
Поэтому для теста пришлось немного поискать (на основании уже существующих юнитов) и определить файлы в которые надо внести изменения.
Все дальнейшие изменения сделаны отталкиваясь от того что проверять существование юнита будет в Grand Campaign


На данном этапе первым делом надо добавить юнит в пул найма для соответствующей фракции
Файл REDAI1918_3.sct (почему именно этот файл и есть ли связь с его именем, я пока не выяснил)
Путь к нему ...REDS - Revolution under Siege\RUS\Events

Находим строки нашей фракции

SelectFaction = $WH3

SelectFaction = $WH3
StartEvent = evt_nam_WH3_milpoolratio|1|0|NULL|NULL|NULL|NULL

Conditions

CheckAILevel = 1
MinDate = 1918/06/01
MaxDate = 1923/10/01


добавляем в списке юнитов фракции SelectFaction = $WH3 (WH3 - фракция Белых Сибири)
Внизу строку SetUnitPoolInfos = $uni_WH2_Div;10;50
(10 - это изначально доступное количество к найму юнитов этого типа,что означает 50 я пока не понял)

Далее Возможно не обязательно
Теперь надо добавить возможность найма в соответствующий файл соответствующей компании.
Т.к. я пробую на Grand Campaign, то соответственно редактируем Grand Campaign.sct

SelectFaction = $CMN

SelectFaction = $CMN
StartEvent = evt_nam_CMN_TransitionToMay1919|1|0|NULL|NULL|NULL|NULL

Conditions
FixedDate = 1919/04/30

Actions
.......


Там повторяться эта запись несколько раз, добавляя/обновляя количество на страте и затем каждый период новых юнитов в пул найма, в соответствии с изменениями даты.
Соответственно добавляем в списке юнитов фракции SelectFaction = $WH3 в каждом периоде
Внизу строку ChgUnitPoolInfos = $uni_WH2_Div;10;50

Стоит отметить что возможно из за того что данная фракция которую я использую для опыта в игре не присутствует изначально, а появляеться на 2 ходу. то соответственно первой командой стоит строка

ChangeUnitPool = $uni_WH2_Div;10 (а, не "ChgUnitPoolInfos")


Похоже на сейвах изменения не срабатывают, надо начинать новую кампанию.


В итоге получаем:





Читать 2-ю часть статьи
Copyright © «Империал». Копирование информации с этой страницы возможно только при указании прямых ссылок на эту страницу.




      Стиль:
        10 Дек 2016, 00:16
    © 2016 «Империал». Условия предоставления. Ответственность сторон. Рекрутинг на Империале. Лицензия зарегистрирована на: «Империал». Счётчики