Сегодня на работе просматривал статьи по цив4 на их-фанатиках, наткнулся вот на что:
http://forums.civfanatics.com/showpost.php...83&postcount=89
Дистанционная коррупция:
DistanceMaint = (Pop + 7) * 2.5 * Distance/DistanceScale * Building_m * WorldSize_m * Handicap_m
Distance - расстояние к ближайшему дворцу, в стандартном фираксисовском смысле (шаг по диагонали считается как 1.5, округляем вниз).
Building_m = .5 if courthouse, 1 otherwise
Worldsize_m: Duel=.50, Tiny=.60, Small=.70, Standard=.80, Large=.90, Huge=1
Handicap_m: Settler=.45, Chieftain=.55, Warlord=.65, Noble=.75, Prince=.85, Monarch=.90, Emperor=.95, Immortal=1, Diety=1
DistanceScale = (MapHeight + MapWidth), причем MapHeight и MapWidth делим пополам если карта замыкается соответственно по высоте и/или ширине.
Ранговая коррупция:
CityMaint = N * (Pop + 17)/18 * WorldSize_m * Handicap_m + (1 for some cities, depending on cityrank)
CityMaint = min(CityMaint, CitiesHandicap) * Building_m, т.е. не может превышать 4-8 в зависимости от уровня
Worldsize_m: Duel=.45, Tiny=.40, Small=.35, Standard=.30, Large=.25, Huge=.20
Handicap_m: Settler=.40, Chieftain=.50, Warlord=.60, Noble=.70, Prince=.80, Monarch=.85, Emperor=.90, Immortal=.95, Diety=1
CitiesHandicap: Settler=4, Chieftain=4, Warlord=5, Noble=5, Prince=6, Monarch=6, Emperor=7, Immortal=7, Diety=8
Building_m = .5 if courthouse, 1 otherwise
В первой формуле 1 прибавляем если
(1 if CityRank/N * 100 > 100 - (N * NumCitiesPercent) % 100)
из-за операции взятия остатка (%) эта единица появляется рандомно в зависимости от ранга (считается как в цив3). Смысл в том чтобы не было резких скачков при прибавлении города.
Интересно что значение зависит от населения города (я это и раньше замечал), особенно сильно зависит дистанционная коррупция.
По всей видимости все вычисления целочисленные, округленя вниз, но точно это неизвестно, так что возможна ошибка +/- одна монета.




Ответить с цитированием







.
млин, надо Лиара сюда позвать, а то он терзает себя в гайд-парке...



Капитан команды RUS.
