Цитата Сообщение от NeseryozniyVET Посмотреть сообщение
Вот это ты намудрил!!
Скорость набора крестов завистит от CvPlayer::immigrationThreshold(). А она в свою очередь зависит от GC.getTraitInfo(eTrait).getImmigrationThresholdModifier(). Так что надо было просто убрать TRAIT_TOLERANT из Assets\XML\Civilizations\CIV4TraitInfos.xml и все его упоминания в других файлах.
Ты абсолютно прав относительно параметра, влияющего на скорость набора крестов, а следовательно и на скорость иммиграции из Европы. Именно эти 25% и привлекли мое внимание при тестировании. Они прописаны в CIV4TraitInfos.xml в строке:

Код:
   <iImmigrationThresholdModifier>-25</iImmigrationThresholdModifier>
Если ставится задача уровнять скорости роста населения для всех наций, то простейшее решение - элементарно обнулить все значения iImmigrationThresholdModifier, заменив в этой строке -25 на 0:
Код:
   <iImmigrationThresholdModifier>0</iImmigrationThresholdModifier>
При этом отпадает необходимость убирать TRAIT_TOLERANT.

Но что мы получим в результате?

Как известно сейчас рост населения города происходит по двум причинам:

Рост населения города = за счет рождаемости внутри города + за счет прибытия иммигрантов из Европы
1. за счет рождаемости внутри города (набор очков рождаемости). Эта величина постоянна для всех наций.
2. за счет прибытия иммигрантов из Европы. Обнулив iImmigrationThresholdModifier, мы уровняем и этот параметр для всех наций.

В итоге скорости роста населения у всех наций будут равны, поскольку равны скорости естественного прироста населения в городах Нового Света и равны скорости иммиграции из Европы.

Это простейшее из возможных решений. Но, увы, далеко не самое лучшее.

В игре разработчики нагородили массу глупостей и несуразностей. Но в вопросе иммиграции поселенцев из Европы они были совершенно правы, по крайней мере английских. Достаточно вспомнить религиозные распри в Англии, унесшие жизни почти четверти всего населения. Или опять-таки религиозные (так называемые гугенотские) войны между католиками и протестантами (гугенотами), которые раздирали Францию при последних королях династии Валуа (1562-1598). Именно данные события в этих странах и были основной движущей силой иммиграции их граждан в Новый Свет. Люди просто бежали из стран, где их убивали из-за их религиозных взглядов.

Собственно возможно поэтому в игре разработчики в качестве символа иммиграции и избрали значок креста. Учитывая сказанное выше, было бы исторически неправильным обнулять значения iImmigrationThresholdModifier для английских и французских королей, уравнивая скорость иимиграции из этих стран с Испанией и Португалией, которые те времена были сравнительно более моноконфессиональными государствами, а следовательно иммиграция их жителей в Новый Свет имела иную причину.

Отсюда следует, что iImmigrationThresholdModifier должны быть различными для различных наций. К примеру, -25 для Англии и Франции, и 0 для Испании и Португалии. Но как раз это и приводит к той неувязке в скоростях роста народонаселения для различных наций, с которой я начал обсуждение этой проблемы. Второе слагаемое различно для разных наций:

Рост населения города = за счет рождаемости внутри города + за счет прибытия иммигрантов из Европы
Полностью решить проблему прекрасно позволяет введение iNationalPopulationCoefficient. Каждая их наций в игре - не только европейские поселенцы, но и местные аборигены - имеют свой собственный предел iThreshold, при достижении которого в городе данной нации рождается новый житель. Здесь мы корректируем первое слагаемое:

Рост населения города = за счет рождаемости внутри города + за счет прибытия иммигрантов из Европы
В итоге сейчас мы можем подобрать такие комбинации для iImmigrationThresholdModifier и iNationalPopulationCoefficient, при которых ни одна из европейских наций не получит бонусов в росте населения.

Одновременно, iNationalPopulationCoefficient позволяет корректировать скорость роста наций местных аборигенов. Причем для каждой нации iNationalPopulationCoefficient может быть своим. Выше я уже приводил пример, когда поселения народностей Крайнего Севера растут медленне, чем у их более южных собратьев. Причина - более суровый климат на севере. Одновременно поселения всех без исключения местных аборигенов должны расти несколько быстрее, чем города европейцев в Новом Свете. Причина также очевидна: аборигены живут в данной местности веками, прекрасно адаптировались к местным условиям, имеют иммунитет против местных болезней и т.д. У только что прибывших европейцев ничего этого нет.

Значения <iNationalPopulationCoefficient> выведены в CIV4CivilizationInfos.xml, поэтому их легко править, если при тестировании что-то пойдет не так.

Мне кажется, такое решение намного более правильным по целому ряду причин.