PDA

Просмотр полной версии : Как бороться с инфляцией



Kirill
17.09.2007, 23:02
<div class='quotetop'>Цитата</div>
Так что желающие без проблем могут уменьшить инфляцию до устраивающего их уровня. [/b]
Стесняюсь спросить: а как?

NeverMind
18.09.2007, 00:38
Вот полная формула расчета роста инфляции из SDK

int CvPlayer::calculateInflationRate() const
{
int iTurns = ((GC.getGameINLINE().getGameTurn() + GC.getGameINLINE().getElapsedGameTurns()) / 2);
iTurns += GC.getGameSpeedInfo(GC.getGameINLINE().getGameSpeedType()).getInflationOffset();

if (iTurns <= 0)
{
return 0;
}

int iInflationPerTurnTimes10000 = GC.getGameSpeedInfo(GC.getGameINLINE().getGameSpeedType()).getInflationPercent();
iInflationPerTurnTimes10000 *= GC.getHandicapInfo(getHandicapType()).getInflationPercent();
iInflationPerTurnTimes10000 /= 100;

int iModifier = m_iInflationModifier;
if (!isHuman() && !isBarbarian())
{
int iAIModifier = GC.getHandicapInfo(GC.getGameINLINE().getHandicapType()).getAIInflationPercent();
iAIModifier *= max(0, ((GC.getHandicapInfo(GC.getGameINLINE().getHandicapType()).getAIPerEraModifier() * getCurrentEra()) + 100));
iAIModifier /= 100;

iModifier += iAIModifier - 100;
}

iInflationPerTurnTimes10000 *= max(0, 100 + iModifier);
iInflationPerTurnTimes10000 /= 100;

// Keep up to second order terms in binomial series
int iRatePercent = (iTurns * iInflationPerTurnTimes10000) / 100;
iRatePercent += (iTurns * (iTurns - 1) * iInflationPerTurnTimes10000 * iInflationPerTurnTimes10000) / 2000000;

FAssert(iRatePercent >= 0);

return iRatePercent;
}

Из нее видно, что повлиять на итоговые цифры можно через CIV4GameSpeedInfos (http://modiki.civfanatics.ru/index.php/CIV4GameSpeedInfo) и CIV4HandicapInfo (http://modiki.civfanatics.ru/index.php/CIV4HandicapInfo). В обоих файлах есть тег iInflationPercent, значения которого можно понизить до нужно уровня.

В CIV4GameSpeedInfos даже лучше, потому что там есть еще и iInflationOffset, в котором определяется ход, после которого начинает считаться инфляция. Например, на нормальной скорости инфляция начинается после 120 ходов.

<GameSpeedInfo>
<Type>GAMESPEED_NORMAL</Type>
<Description>TXT_KEY_GAMESPEED_NORMAL</Description>
<Help>TXT_KEY_GAMESPEED_NORMAL_HELP</Help>
<iGrowthPercent>100</iGrowthPercent>
<iTrainPercent>100</iTrainPercent>
<iConstructPercent>100</iConstructPercent>
<iCreatePercent>100</iCreatePercent>
<iResearchPercent>100</iResearchPercent>
<iBuildPercent>100</iBuildPercent>
<iImprovementPercent>100</iImprovementPercent>
<iGreatPeoplePercent>100</iGreatPeoplePercent>
<iCulturePercent>100</iCulturePercent>
<iAnarchyPercent>100</iAnarchyPercent>
<iBarbPercent>100</iBarbPercent>
<iFeatureProductionPercent>100</iFeatureProductionPercent>
<iUnitDiscoverPercent>100</iUnitDiscoverPercent>
<iUnitHurryPercent>100</iUnitHurryPercent>
<iUnitTradePercent>100</iUnitTradePercent>
<iUnitGreatWorkPercent>100</iUnitGreatWorkPercent>
<iGoldenAgePercent>100</iGoldenAgePercent>
<iHurryPercent>100</iHurryPercent>
<iHurryConscriptAngerPercent>100</iHurryConscriptAngerPercent>
<iInflationPercent>45</iInflationPercent>
<iInflationOffset>-120</iInflationOffset>
<iVictoryDelayPercent>100</iVictoryDelayPercent>

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

Ты же уже копался в CIV4GameSpeedInfos.xml, тебе и флаг в руки. ;)

MaxRiga
18.09.2007, 08:18
ну а как в самой игре с этим боротся? ведь опции - ОТМЕНИТЬ ПРИБЛЬ ( по типу как в europa universales ) нету.

Kirill
18.09.2007, 20:37
А нельзя ли вообще отменить привязку содержания корпораций к инфляции?

NeverMind
18.09.2007, 22:10
Точно не в XML. И в любом случае, это гоораздо сложнее, т.к инфляция применяется к общим расходам. Но, судя по списку изменений, именно это сделано в патче 3.13. Ждем. :whistle:

Kirill
27.10.2007, 22:53
<div class='quotetop'>Цитата</div>
==Изменения==
GAMEPLAY
Отрегулирована зависимость содержания корпораций от инфляциии[/b]
А как теперь выглядит эта зависимость?

crazy monkey
03.11.2007, 20:42
Кирил, стоимость содержания корпорации теперь не зависит от инфляции.

Kirill
15.12.2007, 15:48
АААААААААААААА!
Клёво! Наконец-то можно сделать так, чтобы прибыль от Ювелиров содержала все остальные корпорации.
2 crazy monkey: спасибо тебе за инфу. Щас пойду играть и проверю ее верность на практике.