Цитата Сообщение от Alex__ Посмотреть сообщение
сабж
Alex__, ты бы конкретизировал свой вопрос конкретным примером, что ли?

Попробую угадать, что именно ты имел в виду
Много интересного по поводу юнитов и их прокачек хранится в файлах CIV5Units.xml и CIV5UnitPromotions.xml из папки Gameplay\XML\Units\
Скрытый текст
Кстати, эта папка находится-
Sid Meier's Civilization 5\Assets\ - для Классики
Sid Meier's Civilization 5\Assets\DLC\Expansion\ - для ГаК
Sid Meier's Civilization 5\Assets\DLC\Expansion2\ - для БНВ

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


1. Ты хочешь, чтобы данную прокачку нельзя было получить за счет боевого опыта?
Идем в файл CIV5UnitPromotions.xml, находим нужную нам прокачку и добавляем туда строку
Код:
<CannotBeChosen>true</CannotBeChosen>
например, сразу после строки Help
Скрытый текст
Например, как запретить прокачку на мгновенное исцеление
Код:
			<Type>PROMOTION_INSTA_HEAL</Type>
			<Description>TXT_KEY_PROMOTION_HEAL_INSTANTLY</Description>
			<Help>TXT_KEY_PROMOTION_HEAL_INSTANTLY_HELP</Help>
			<CannotBeChosen>true</CannotBeChosen>
			<Sound>AS2D_IF_LEVELUP</Sound>
			<OrderPriority>99</OrderPriority>
			<InstaHeal>true</InstaHeal>
			<PortraitIndex>26</PortraitIndex>
			<IconAtlas>PROMOTION_ATLAS</IconAtlas>
			<PediaType>PEDIA_HEAL</PediaType>
			<PediaEntry>TXT_KEY_PROMOTION_HEAL_INSTANTLY</PediaEntry>


2. Как убрать "свободную" прокачку, даваемую юниту, например, уникальному юниту?
Идем в файл CIV5Units.xml, идем в до строки <Unit_FreePromotions>, находим там соответствующий юнит и просто убираем строки, дающие данному юниту "свободную" прокачку
Скрытый текст

Например, как убрать у английского длиннолучника "свободную" прокачку на дальность стрельбы
В файле CIV5Units.xml просто убираем соответствующие строки
Код:
               <Row>
			<UnitType>UNIT_ENGLISH_LONGBOWMAN</UnitType>
			<PromotionType>PROMOTION_RANGE</PromotionType>
		</Row>


3. Как сделать, чтобы прокачка не наследовалась при апгрейде юнита?
(кстати, очень важная деталь, ибо варгеймеры любят раскачивать древние войска до непобедимых современных юнитов; с учетом полной неспособности ИИ уничтожать юниты игрока-человека, это выглядит явным читерством ).
Идем в файл CIV5UnitPromotions.xml, находим нужную нам прокачку и добавляем туда строку
Код:
<LostWithUpgrade>true</LostWithUpgrade>
например, сразу после строки Sound
Скрытый текст
Например, как запретить для дальнобойных юнитов наследование прокачки на дальность стрельбы
Код:
		<Row>
			<Type>PROMOTION_RANGE</Type>
			<Description>TXT_KEY_PROMOTION_RANGE</Description>
			<Help>TXT_KEY_PROMOTION_RANGE_HELP</Help>
			<Sound>AS2D_IF_LEVELUP</Sound>
			<LostWithUpgrade>true</LostWithUpgrade>
			<PromotionPrereqOr1>PROMOTION_ACCURACY_3</PromotionPrereqOr1>
			<PromotionPrereqOr2>PROMOTION_BARRAGE_3</PromotionPrereqOr2>
			<PromotionPrereqOr3>PROMOTION_TARGETING_2</PromotionPrereqOr3>
			<PromotionPrereqOr4>PROMOTION_BOMBARDMENT_2</PromotionPrereqOr4>
			<OrderPriority>7</OrderPriority>
			<RangeChange>1</RangeChange>
			<PortraitIndex>34</PortraitIndex>
			<IconAtlas>PROMOTION_ATLAS</IconAtlas>
			<PediaType>PEDIA_RANGED</PediaType>
			<PediaEntry>TXT_KEY_PROMOTION_RANGE</PediaEntry>
		</Row>



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


И у меня тоже появился вопрос -

Как сделать, чтобы конкретная прокачка могла быть принята только игроком-ИИ, но не игроком-человеком?

Например, прокачка на "мгновенное исцеление" была бы доступна только для ИИ, так он хоть как-то мог бы сопротивляться
Скрытый текст
Ну я-то понимаю, что проще запретить себе нажимать соответствующую кнопку, но в разгар боевых действий руки так и тянутся нажать заветную кнопочку - соблазн слишком велик
А запрещать совсем, для всех эту прокачку не хочется - ИИ вроде неплохо ею пользуется