PDA

Просмотр полной версии : Новый юнит в игру



SRAGULLA
22.07.2016, 17:24
Всем привет!
Знаю, что где-то на просторах инета есть учебники по этому вопросу, но найти их не сумел. Перерыл этот форум - тоже безрезультатно!
Поэтому задам вопрос, создав новую тему (возможно еще кому нибудь пригодится).
У меня простая Цивилизация 5 без аддонов и модов (Играл в DLC, но чистая понравилась больше (своей простотой)). Хочу каждой цивилизации дать уникальные подлодки периода ВМВ, но не знаю как.
1. Расскажите, пожалуйста, как дать цивилизации уникальный юнит без замены стандартного(куда что прописывать и что нужно (иконки, опись юнита в цивилопедии и т.д.))
2. Расскажите пожалуйста, как дать всем цивилизациям нового юнита, без замены стандартного.
Заранее благодарю всех откликнувшихся!
P.S. Ответы типа "гугли", "ройся в стандартных ресурсах игры" или другие бесполезные комменты прошу не писать, так как от них толку ноль. Если есть ссылка на учебник или тему форума - пишите обязательно!!!
Очень нужна помощь!!!

Tomahawk
24.07.2016, 05:21
Вам проще покопаться в готовых модах, например в этом (http://www.picknmixmods.com/mods/CivV/Units/Super%20Carrier.html). Откройте также файлы игры Civ5Units.xml и Civ5Civilizations.xml, в последнем в конце увидите как юниты привязываются к конкретной цивилизации.


<Row>
<CivilizationType>CIVILIZATION_RUSSIA</CivilizationType>
<UnitClassType>UNITCLASS_CAVALRY</UnitClassType>
<UnitType>UNIT_RUSSIAN_COSSACK</UnitType>
</Row>

В вашем случае класс субмарины уже существует, осталось добавить на него новые юниты. Внутри <Units>...</Units> уже есть запись


<Row>
<Class>UNITCLASS_SUBMARINE</Class>
<Type>UNIT_SUBMARINE</Type>
<PrereqTech>TECH_REFRIGERATION</PrereqTech>
<Combat>25</Combat>
<RangedCombat>60</RangedCombat>
<Cost>375</Cost>
<Moves>5</Moves>
<Range>3</Range>
<CombatClass>UNITCOMBAT_NAVAL</CombatClass>
<Domain>DOMAIN_SEA</Domain>
<DefaultUnitAI>UNITAI_RESERVE_SEA</DefaultUnitAI>
<Description>TXT_KEY_UNIT_SUBMARINE</Description>
<Civilopedia>TXT_KEY_CIV5_INDUSTRIAL_SUBMARINE_TEXT</Civilopedia>
<Strategy>TXT_KEY_UNIT_SUBMARINE_STRATEGY</Strategy>
<Help>TXT_KEY_UNIT_HELP_SUBMARINE</Help>
<MilitarySupport>true</MilitarySupport>
<MilitaryProduction>true</MilitaryProduction>
<Pillage>true</Pillage>
<IgnoreBuildingDefense>true</IgnoreBuildingDefense>
<Mechanized>true</Mechanized>
<AdvancedStartCost>60</AdvancedStartCost>
<MinAreaSize>20</MinAreaSize>
<RangeAttackOnlyInDomain>true</RangeAttackOnlyInDomain>
<XPValueAttack>3</XPValueAttack>
<XPValueDefense>3</XPValueDefense>
<UnitArtInfo>ART_DEF_UNIT_SUBMARINE</UnitArtInfo>
<UnitFlagIconOffset>69</UnitFlagIconOffset>
<IconAtlas>UNIT_ATLAS_2</IconAtlas>
<PortraitIndex>22</PortraitIndex>
<MoveRate>SUB</MoveRate>
</Row>
Вам нужно добавить новый тип, Type со второй стороки. Весь этот участок кода скопируйте ниже, т.к. это будет новая запись. Ваш новый тип будет, например, UNIT_SUBMARINE_RUSSIA. Дальше как выше с казаком было показано привяжите к России:

<Row>
<CivilizationType>CIVILIZATION_RUSSIA</CivilizationType>
<UnitClassType>UNITCLASS_SUBMARINE</UnitClassType>
<UnitType>UNIT_SUBMARINE_RUSSIA</UnitType>
</Row>
Через ART_DEF_UNIT_SUBMARINE идёт привязка 3D-модели, там довольно много делать. В Civ5Units.xml через поиск найдите все записи для UNIT_SUBMARINE и сделайте аналогичные для UNIT_SUBMARINE_RUSSIA, здесь идёт привязка к классам юнита, описывается его поведение Flavor - это очень важно, иначе ваш юнит в игре будет тупить и на месте стоять, к примеру. Ну вот, остаётся посмотреть как всё сделано в игре и модах, и сделать также.

SRAGULLA
24.07.2016, 07:13
Спасибо огромное!!! Буду сегодня пилить!
Кстати, мне еще понадобится информация о том, как убрать для цивилизации строительство стандартного юнита. К примеру, России я добавил уникальный юнит Кило (Варшавянка), Америке - Лос-Анджелес, Англии - Астьют, Германии - 212а и т.д. Как отучить цивилизации от постройки стандартной атомной подводной лодки? Мне эта информация понадобится позже, но можно отвечать уже сейчас. Буду премного благодарен!