PDA

Просмотр полной версии : XML параметры AI лидера



NeverMind
16.01.2006, 21:40
http://www.civfanatics.ru/forum/style_images/1/folder_post_icons/icon13.gif Excel-таблицы со всеми элементами CIV4LeaderHeadInfos.xml и комментариями можно скачать на CFC (http://forums.civfanatics.com/downloads.php?do=file&id=3359)

NeverMind
16.01.2006, 22:20
<span style="color:red">Элементы

Первая группа элементов определяет зависимости между XML файлами и не относится к характеристикам AI лидера

<Type>: Тэг, используемый для отсылки к данному лидеру
<Description>: Ссылка на тэг в CIV4GameTextInfos_Objects.xml, определяющий используемое в игре имя лидера
<Civilopedia>: Ссылка на тэг в GameText_Civilopedia_CivLeaders.xml, создающий описание лидера в цивилопедии
<ArtDefineTag>: Cсылка на тэг в CIV4ArtDefines_Leaderhead.xml, определяющий используемые лидером графические компоненты

...

Последняя группа элементов файла определяет музыкальное сопровождение перговоров с данным лидером и тоже не относится к характеристикам AI

<DiplomacyIntroMusicPeace>: Определяет стартовые музыкальные файлы для переговоров в мирное время, в зависимости от эры.
<DiplomacyMusicPeace>: Определяет основные музыкальные файлы для переговоров в мирное время, в зависимости от эры.
<DiplomacyIntroMusicWar>: Определяет стартовые музыкальные файлы для переговоров во время войны, в зависимости от эры.
<DiplomacyMusicWar>: Определяет основные музыкальные файлы для переговоров во время войны, в зависимости от эры.

NeverMind
17.01.2006, 00:50
ПАРАМЕТРЫ AI</span>


<iWonderConstructionRand>: Isak - дополнительный 1dX рандомайзер вероятности начала строительства Чуда (я думаю, что это все таки процентная (?) вероятность начала строительства Чуда, прямая зависимость, а не обратная)
- [0, 10, 20, 30, 40, 50] 0 - Montezuma, 50 - Louis XIV

<iBaseAttitude>: Базовое отношение лидера к другим цивилизациям
- [-1, 0, 1, 2] -1 -Genghis, Napoleon, Tokugawa...; 2 - Gandhi

<iBasePeaceWeight>: Базовая установка лидера на мирные отношения с другими цивилизациями
- [0, 1, 2, 4, 6, 8, 9, 10] 0 - Alexander, Genghis, Montezuma, Napoleon; 10 - Gandhi

<iPeaceWeightRand>: 1dX рандомайзер дополнительных шансов на мирное поведение лидера
- [3]

<iWarmongerRespect>: Дополнительный параметр уважительного отношения к агрессивным лидерам
- [0, 1, 2] Asoka, Gandhi, Mansa... ; 2 - Alexander, Genghis, Peter...

<iRefuseToTalkWarThreshold>: минимальный уровень отношения, при котором лидер может согласиться на переговоры с противником по войне
- [6, 8, 10] 6 - Gandhi, Catherine... ; 10 - Genghis, Napoleon

<iNoTechTradeThreshold>: AI не станет торговать "монопольной" технологией пока его отношение к другому лидеру не достигнет определенного уровня
- [5, 10, 20] 20 - Mansa

<iTechTradeKnownPercent>: Процент известных цивилизаций, владеющих данной технологией, при котором AI перестает считать ее "монопольной" и предыдущее условие теряет силу
- [0, 20, 30, 40, 50, 60, 70, 100] 0 - Mansa; 100 - Tokugawa

<iMaxGoldTradePercent>: Максимальный процент денежных резервов, который AI готов потратить на торговлю (?)
- [5, 10, 20] 20 - Mansa, Louis XIV

<iMaxGoldPerTurnTradePercent>: Максимальный процент текущей походовой прибыли, который AI готов потратить на торговлю
- [10]

<iMaxWarRand>: Дополнительный 1dX рандомайзер для начала лидером неспровоцированной войны
- [50, 100, 200, 300, 400] 50 - Alexander, Genghis, Montezuma; 400 - Gandhi, Mansa

<iMaxWarNearbyPowerRatio>: Минимальный процент от рейтинга силы соседней цивилизации, при котором AI может объявить ей войну
- [80, 90, 100, 110, 120, 130] 80 - Elizabeth; 130 - Isabella, Montezuma

<iMaxWarDistantPowerRatio>: Минимальный процент от рейтинга силы соседней (?) цивилизации, при котором AI может объявить войну удаленной цивилизации
- [30, 40, 50, 60, 70, 80, 90, 100] 30 - Tokugawa; 100 - Isabella

<iMaxWarMinAdjacentLandPercent>: Минимальный уровень общей границы, при котором AI может начать войны определенного типа
- [0, 1, 2, 3, 4] 0 - Alexander, Genghis, Montezuma...; 4 - Bismark, Isabella, Tokugawa

<iLimitedWarRand>: Дополнительный 1dX рандомайзер для начала "ограниченной" войны
- [40, 60, 80, 100, 120, 160 , 200] 40 - Alexander, Genghis, Montezuma, Napoleon ; 200 - Elizabeth, Gandhi, Mansa

<iLimitedWarPowerRatio>: Минимальный процент от рейтинга силы данной цивилизации, при котором AI может начать против нее "ограниченную" войну
- [80, 90, 100, 110, 120, 130] 80 - Gandhi; 130 - Alexander, Genghis, Montezuma, Louis XIV

<iDogPileWarRand>: 1dX рандомайзер готовности AI вступить в уже идущую между другими цивилизациями войну
- [25, 50, 100] 100 - Gandhi...

<iMakePeaceRand>: Дополнительный 1dX шанс на то, что AI предложит мир
- [10, 20, 30, 40. 80] 10 - Gandhi, Catherine...; 80 - Genghis

<iDeclareWarTradeRand>: Дополнительная 1dX вероятность, что воюющий AI попросит о вступлении в войну третьей цивы
- [40]

<iDemandRebukedSneakProb>: Вероятность(?) внезапного нападения AI, если его некое требование будет отвергнуто
- [0, 20, 40, 60, 80, 100] 0 - Asoka, Gandhi...; 100 - Washington

<iDemandRebukedWarProb>: Вероятность того, что AI объявит войну, если его некое требование будет отвергнуто
- [0, 5, 10, 20, 25, 50] 0- Gandhi; 50 - Genghis, Roosevelt

<iRazeCityProb>: Процентная вероятность разрушения захваченного лидером города
- [0, 25, 50, 75] 50 - Frederick, Hatshepsut, Montezuma; 75 - Genghis

<iBuildUnitProb>: Процентная вероятность того, что AI начнет производство юнита
- [15, 20, 25, 30, 35, 40] 15 - Gandhi; 40 - Napoleon

<iBaseAttackOddsChange>: Модификатор расчета сранительной силы противостоящих юнитов, использумый AI для решения "атаковать или нет".
- [0, 2, 4, 6] 4 - Alexander, Genghis, Montezuma, Peter; 6 - Napoleon

<span style="color:green"><iAttackOddsChangeRand>: Дополнительный 1dx рандомайзер к предыдущей переменной
-[8]

NeverMind
17.01.2006, 01:10
МОДИФИКАТОРЫ ОТНОШЕНИЯ

Эта группа элементов определяет зависимость и степень измения отношения AI к другим цивилизациям как следствие определенных действий и состояний

Ключевые характеристики этой группы:

AttitudeChange -

AttitudeDivisor -

AttitudeChangeLimit -


<iWorseRankDifferenceAttitudeChange> Модификатор отношения к цивилизациям с более низким рейтингом силы
- [-3, -2, -1, 0] -3 = Montezuma

<iBetterRankDifferenceAttitudeChange>: Модификатор отношения к цивилизациям с более высоким рейтингом силы
- [0, 1, 2, 3, 4] 0 = Alexander, Bismarck, Catherine...; 4 = Mansa

<iCloseBordersAttitudeChange>: Модификатор отношения к соседним цивилизациям
- [-4, -3, -2]

<iLostWarAttitudeChange>: Изменение отношения AI к победившим его в войне лидерам
- [-1]

<iAtWarAttitudeDivisor>: Изменение отношения к цивилизации, с которой лидер ведет войну. Число ходов длящейся войны делится на этот показатель для вычисления изменений.
- [-5]

<iAtWarAttitudeChangeLimit>: Минимальное\Максимальное изменение отношения в результате <iAtWarAttitudeDivisor>
- [5]

<iAtPeaceAttitudeDivisor>: Изменение отношения к цивилизации, с которой у лидера мирные отношения. Число ходов , которое длится мир, делится на этот показатель для вычисления изменений.
- [60]

<iAtPeaceAttitudeChangeLimit>: Минимальное\Максимальное изменение отношения в результате <iAtPeaceAttitudeChangeLimit>
- [1]

<iSameReligionAttitudeChange>: Модификатор отношения к цивилизации с той же самой государственной религией
- [1]

<iSameReligionAttitudeDivisor>: Изменение отношения к цивилизации с той же самой государственной религией в зависимости от продолжительности такого состояния. Число ходов делится на данную переменную.
- [10]

<iSameReligionAttitudeChangeLimit>: Минимальное\Максимальное изменение отношения в результате<iSameReligionAttitudeDivisor>
- [2, 3, 4, 5, 6, 7] 2 = Mao, Montezuma; 7 = Asoka

<iDifferentReligionAttitudeChange>: Модификатор отношения к цивилизации с другой государственной религией
- [-2, -1, 0] -2 = Catherine, Isabella, Saladin...; 0 = Mao, Bismarck, Genghis...

<iDifferentReligionAttitudeDivisor>: Изменение отношения к цивилизации с другой государственной религией в зависимости от продолжительности такого состояния. Число ходов делится на данную переменную.
- [-5]

<iDifferentReligionAttitudeChangeLimit>: Минимальное\Максимальное изменение отношения в результате <iDifferentReligionAttitudeDivisor>
- [-1]

<iBonusTradeAttitudeDivisor>: Изменение отношения к цивилизации, с которой ведется торговля бонусными ресурсами. Продолжительность торговых отношений (в ходах) делится на эту переменную.
- [50]

<iBonusTradeAttitudeChangeLimit>: Минимальное\Максимальное изменение отношения в результате <iBonusTradeAttitudeDivisor>
- [2]

<iOpenBordersAttitudeDivisor>: Изменение отношения к цивилизации, с которой действует соглашение об открытых границах. Продолжительность таких отношений (в ходах) делится на эту переменную.
- [25]

<iOpenBordersAttitudeChangeLimit>: Минимальное\Максимальное изменение отношения в результате <iOpenBordersAttitudeDivisor>
- [2]

<iDefensivePactAttitudeDivisor>: Изменение отношения к цивилизации в зависимости от длительности оборонительного союза с ней
- [12]

<iDefensivePactAttitudeChangeLimit>: Минимальное\Максимальное изменение отношения в результате <iDefensivePactAttitudeDivisor>
- [2]

<iShareWarAttitudeChange>: Модификатор отношения к цивилизации, которая ведет войну с тем же противником
- [1]

<iShareWarAttitudeDivisor>: Изменение отношения к цивилизации, в зависимости от длительности войны против общего врага. Число ходов конфликта делится на эту переменную.
- [8]

<iShareWarAttitudeChangeLimit>: Минимальное\Максимальное изменение отношения в результате <iShareWarAttitudeDivisor>
- [2, 3, 4] 2 = Gandhi, Catherine...; 4 = Alexander, Genhis, Napoleon

<iFavoriteCivicAttitudeChange>: Модификатор отношения к цивилизации, которая установила любимый civic данного лидера, определяемый тэгом <FavoriteCivic>
- [1]

<iFavoriteCivicAttitudeDivisor>: Изменение отношения к цивилизации, выбравшей любимый civic данного лидера. Число ходов, которое соблюдается это условие, делится на эту переменную.
- [10]

<iFavoriteCivicAttitudeChangeLimit>: Минимальное\Максимальное изменение отношения в результате <iFavoriteCivicAttitudeDivisor>
- [1, 2, 3, 4, 5, 6] 1 = Saladin; 6 = Mao, Gandhi

lllexa
17.01.2006, 09:50
Спасибо, NeverMind!
<div class='quotetop'>Цитата</div>
<iDemandRebukedSneakProb>: Вероятность(?) внезапного нападения AI, если его некое требование будет отвергнуто
- [0, 20, 40, 60, 80, 100] 0 - Asoka, Gandhi...; 100 - Washington
<iDemandRebukedWarProb>: Вероятность того, что AI объявит войну, если его некое требование будет отвергнуто
- [0, 5, 10, 20, 25, 50] 0- Gandhi; 50 - Genghis, Roosevelt[/b]
А может быть, это отражает "обидчивость" AI - за внезапное нападение и за собственно войну? :rolleyes: Кто-то рассказывал, что Ганди может оставаться к вам Pleased даже когда с вами воюет...

ЗЫ Сдаётся мне, бывали у меня случаи, когда Вашингтон чего-то просил :rolleyes: и войну после отказа не объявлял... Вообще за мои сыгранные 3,5 игры на меня пока ещё ни разу не нападали под таким соусом - только внезапно...

BuDDaH
17.01.2006, 10:01
Классно! Спасибо, NeverMind

Дополнительный 1dX рандомайзер? Что за зверь? Можно его прменить к чему-то другому, и не только к поведению лидера? Как это сделать?

NeverMind
17.01.2006, 12:48
lllexa Для "обидчивости" за войну скорее используются эти переменные, я их просто еще не успел описать)

<iAtWarAttitudeDivisor>: Изменение отношения к циве, с которой лидер ведет войну. Число ходов длящейся войны делится на этот показатель для вычисления изменений.
<iAtWarAttitudeChangeLimit>: Минимальное\Максимальное изменение отношения в результате <iAtWarAttitudeDivisor>

Вообще, я и хотел, чтобы высказывались мнения по поводу трактовки тэгов, потому как 100-процентной гарантии в их именно таком действии никто дать не может.


BuDDaH 1dX означает вероятность "один из Х", где Х - используемое число, воспользовался "англоязычным" термином Исака просто потому, что так короче).

Однако, я собирался вечером сделать еще как минимум постов 5-6). Где мне теперь продолжать? Пет?-)



]lllexa Только сейчас обратил внимание на вторую часть твоего поста :D. Да, меня тоже смущало 100 у Вашингтона, но там точно 100. У меня такая гипотеза - это не вероятность начала войны вообще, а вероятность, что при решении о войне, которое зависит и от других факторов, будет выбран именно этот способ. У Вашигтона по второй переменной 0. Значит, если ему откажут, то при решении о войне он 100% нападет внезапно. Правда так как суммирование вероятностей по другим лидерам дает меньше 100, то тоже не факт... :whistle:

Пет
17.01.2006, 20:47
Если ничего другого не задумаешь :secret:, продолжай прям здесь же. :yes: Мы потом если чё поподвинем всё :yes:

NeverMind
17.01.2006, 22:57
Следующая группа элементов определяет склонность AI к указанным действиям в отношении другой цивилизации в зависимости от уровня отношения к этой цивилизации. Isak предполагает, что указанные уровни являются максимальными для невозможности данного действия. Однако, вероятно, что по крайней мере некоторые из них являются минимальными для возможности такого действия. То есть, вопрос о работе пограничного значения не совсем ясен.

Уровни отношений: None, Furious, Annoyed, Cautious, Pleased, Friendly

None - означает, что лидер рассматривает (т.е. включается рандомайзер) возможность данного действия при любом отношении к данной цивилизации

<DemandTributeAttitudeThreshold>: Прекращение требования дани
- [Cautious]

<NoGiveHelpAttitudeThreshold>: Возможность оказания помощи (безвозмездной-)
- [Cautious]

<TechRefuseAttitudeThreshold>: Возможность согласия на торговлю технологиями
- [None, Furious, Annoyed, Cautious] None - Gandhi, Catherine; Cautious - Tokugawa

<StrategicBonusRefuseAttitudeThreshold>: Возможность согласия на торговлю стратегическими ресурсами
- [Annoyed, Cautious, Pleased] Pleased - Tokugawa

<HappinessBonusRefuseAttitudeThreshold>: Возможность согласия на торговлю бонусными ресурсами
- [None, Furious, Annoyed, Cautious] None - Gandhi, Mansa; Cautious - Tokugawa

<HealthBonusRefuseAttitudeThreshold>: Возможность согласия на торговлю health ресурсами
- [None, Furious, Annoyed, Cautious] None - Gandhi, Mansa; Cautious - Tokugawa

<MapRefuseAttitudeThreshold>: Возможность согласия на торговлю картами
- [None, Furious, Annoyed, Cautious, Pleased, Friendly] None - Gandhi; Friendly - Elizabeth, Tokugawa

<DeclareWarRefuseAttitudeThreshold>: Возможность объявления войны третьей цивилизации по просьбе этой цивилизации
- [Annoyed, Cautious, Pleased] Annoyed - Alexander, Catherine...; Pleased - Gandhi, Saladin...

<DeclareWarThemRefuseAttitudeThreshold>: Возможность объявления войны этой цивилизации по просьбе третьей цивилизации
- [Annoyed, Cautious, Pleased, Friendly] Annoyed - Gandhi, Saladin, Cyrus; Friendly - Catherine

<StopTradingRefuseAttitudeThreshold>: Возможность прекращения торговли с третьей цивилизацией по просьбе этой цивилизации
- [Annoyed, Cautious, Pleased]

<StopTradingThemRefuseAttitudeThreshold>: Возможность прекращения торговли с этой цивилизацией по просьбе третьей цивилизации
- [Furious, Annoyed, Cautious, Pleased] Furious - Mansa; Pleased - Tokugawa

<AdoptCivicRefuseAttitudeThreshold>: Возможность согласия на смену civic
- [Annoyed, Cautious, Pleased] Annoyed - Catherine, Mansa

<ConvertReligionRefuseAttitudeThreshold>: Возможность согласия на смену религии
- [Annoyed, Cautious, Pleased] Annoyed - Elizabeth, Gandhi, Mansa; Pleased - Isabella, Saladin, Tokugawa

<OpenBordersRefuseAttitudeThreshold>: Возможность согласия на договор об "открытых границах"
- [None, Furious, Annoyed, Cautious] None - Gandhi, Mansa; Cautious - Tokugawa

<DefensivePactRefuseAttitudeThreshold>: Возможность согласия на заключение оборонительного союза
- [Cautious, Pleased]

<PermanentAllianceRefuseAttitudeThreshold>: Возможность согласия на вступление в постоянный альянс
- [Pleased, Friendly] Friendly - Alexander, Napoleon, Tokugawa

NeverMind
17.01.2006, 23:44
<FavoriteCivic>: Определяет любимый сivic лидера из списка в CIV4CivicInfos.xml

<Traits>: Содержит перечень (2) свойств лидера из списка в CIV4TraitInfos.xml

Traits определяют бонусы, которыми обладает лидер, вне зависимости от того, кто им управляет - игрок или AI. Скорее всего, traits не являются элементом стратегии AI. Оба свойства лидера являются равозначными.

http://nm.civfanatics.ru/ref/civ4leaders_traits.jpg


<Flavors>: Содержит перечень (1 или 2) предпочтительных стратегий лидера из списка в CIV4GlobalTypes.xml

Flavors, судя по всему, являются основным элементом стратегии AI, но их внутренние параметры пока неизвестны. Каждый лидер имеет либо один flavor c коэффициентом 10, либо два, с коэффициентами 5 и 2 соответственно.

http://nm.civfanatics.ru/ref/civ4leaders_flavors.jpg

NeverMind
18.01.2006, 00:20
КОНТАКТЫ

<ContactRands>: Перечень типов контактов, которыми может воспользоваться AI, и вероятность использования им данного контакта. Вероятность определяется как 1dX, где X - значение переменной. Т.е чем больше значение, тем меньше вероятность.

CONTACT_RELIGION_PRESSURE: Предложение сменить религию на государственную религию AI
- [50, 100, 250, 500, 1000] 50 - Isabella; 1000 - Mao

CONTACT_CIVIC_PRESSURE: Предложение сменить сivic на любимый civic AI
- [50, 100, 250, 500, 1000, 10000] 50 - Gandhi, Mao; 10000 - Saladin

CONTACT_JOIN_WAR: Просьба о вступлении в идущую войну
-[10, 20] 10 - Catherine, Elizabeth, Kublai, Saladin

CONTACT_STOP_TRADING: Требование прекратить торговлю с третьей цивилизацией
- [50]

CONTACT_GIVE_HELP: "Неспровоцированное" предоставление помощи другой цивилизации
- [25, 50, 100, 250, 500, 1000, 10000] 25 - Gandhi; 10000 - Tokugawa

CONTACT_ASK_FOR_HELP: Обращение за "гуманитарной" помощью
- [25, 50, 100, 250, 500, 1000] 25 - Catherine ; 1000 - Louis XIV, Montezuma, Tokugawa, Saladin

CONTACT_DEMAND_TRIBUTE: Требование дани
- [25, 50, 250, 500, 1000, 10000] 25 - Genghis, Montezuma, Napoleon; 10000 - Gandhi

CONTACT_OPEN_BORDERS: Предложение "открыть" границы
- [20, 80] 80 - Tokugawa

CONTACT_DEFENSIVE_PACT: Предложение о заключении оборонительного союза
- [80]

CONTACT_PERMANENT_ALLIANCE: Предложение о заключении постоянного альянса
- [80]

CONTACT_PEACE_TREATY: Предложение мирного договора
- [20]

CONTACT_TRADE_TECH: Инициатива торговли технологиями
- [1, 2, 5, 10, 20] 1 - Mansa; 20 - Tokugawa

CONTACT_TRADE_BONUS: Инициатива торговли ресурсами
- [1, 2, 5, 10, 20] 1 - Mansa; 20 - Tokugawa

CONTACT_TRADE_MAP: Инициатива торговли картами
- [20]

<ContactDelay>: Минимальное время после определенного контакта, прежде чем AI снова может воспользоваться тем же видом контакта в отношении той же цивилизации. Единица времени неизвестна, но похоже, что это все таки ход-). Пока Firaxis cделала всех лидеров идентичными в этом плане.

CONTACT_RELIGION_PRESSURE: Предложение сменить религию на госрелигию AI
- [50]
CONTACT_CIVIC_PRESSURE: Предложение сменить сivic на любимый civic AI
- [50]
CONTACT_JOIN_WAR: Просьба о вступлении в идущую войну
- [20]
CONTACT_STOP_TRADING: Требование прекратить торговлю с третьей цивилизацией
- [20]
CONTACT_GIVE_HELP: "Неспровоцированное" предоставление помощи другой цивилизации
- [50]
CONTACT_ASK_FOR_HELP: Обращение за "гуманитарной" помощью
- [50]
CONTACT_DEMAND_TRIBUTE: Требование дани
- [50]
CONTACT_OPEN_BORDERS: Предложение "открыть" границы
- [20]
CONTACT_DEFENSIVE_PACT: Предложение о заключении оборонительного союза
- [20]
CONTACT_PERMANENT_ALLIANCE: Инициатива торговли технологиями
- [20]
CONTACT_PEACE_TREATY: Предложение мирного договора
- [10]
CONTACT_TRADE_TECH: Инициатива торговли технологиями
- [30]
CONTACT_TRADE_BONUS: Инициатива торговли ресурсами
- [20]
CONTACT_TRADE_MAP: Инициатива торговли картами
- [50]

NeverMind
18.01.2006, 00:41
<MemoryType>: Определяет промежуток времени, по прошествии которого данный результат контакта полностью "забывается" AI и больше не оказывает влияние на его отношение к другой цивилизации. Firaxis сделала всех лидеров одинаково "забывчивыми". (Единица времени - ход?)

Время, необходимое, чтобы AI забыл, что другой лидер:

MEMORY_GIVE_HELP: Согласился оказать помощь
- [200]
MEMORY_REFUSED_HELP: Отказался предоставить помощь
- [100]
MEMORY_ACCEPT_DEMAND: Принял требование
- [50]
MEMORY_REJECTED_DEMAND: Отверг требование
- [150]
MEMORY_ACCEPTED_RELIGION: Согласился сменить религию
- [100]
MEMORY_DENIED_RELIGION: Отказался сменить религию
- [50]
MEMORY_ACCEPTED_CIVIC: Согласился сменить civic
- [100]
MEMORY_DENIED_CIVIC: Отказался сменить civic
- [50]
MEMORY_ACCEPTED_JOIN_WAR: Согласился помочь в войне
- [150]
MEMORY_DENIED_JOIN_WAR: Отказался помочь в войне
- [100]
MEMORY_ACCEPTED_STOP_TRADING: Согласился остановить торговлю с третьей цивилизацией
- [100]
MEMORY_DENIED_STOP_TRADING: Отказался остановить торговлю с третьей цивилизацией
- [50]
MEMORY_STOPPED_TRADING_RECENT: Прекратил торговые отношения
- [30]
MEMORY_MADE_DEMAND_RECENT: Выдвинул требование
- [20]
MEMORY_CANCELLED_OPEN_BORDERS: Отменил действие "открытых границ"
- [10]
MEMORY_TRADED_TECH_TO_US: Продал AI технологию
- [100]
MEMORY_RECEIVED_TECH_FROM_ANY: - ?
- [20]


<MemoryAttitudePercent>: Измение отношения AI к другой цивилизации в результате определенного типа контакта. Значение переменной делится на 100.

Измение отношения AI к лидеру, который:

MEMORY_DECLARED_WAR: Объявил войну AI
- [-300]
MEMORY_DECLARED_WAR_ON_FRIEND: Объявил войну дружественной цивилизации
- [-200,-100] -200 - Gandhi
MEMORY_HIRED_WAR_ALLY: (?) Вступил в войну на стороне врага
- [-100]
MEMORY_NUKED_US: Нанес ядерный удар по AI
- [-200]
MEMORY_NUKED_FRIEND: Нанес ядерный удар по дружественной цивилизации
- [-200,-100] -200 = Gandhi
MEMORY_RAZED_CITY: Разрушил город AI
- [-250]
MEMORY_RAZED_HOLY_CITY: Разрушил священный город государственной религии AI
- [-200]
MEMORY_SPY_CAUGHT: Разоблачен в шпионаже против AI
- [-200,-100] -200 - Catherine
MEMORY_GIVE_HELP: Оказал помощь
- [100]
MEMORY_REFUSED_HELP: Отказался предоставить помощь
- [-200,-100] -200 = Catherine, Kublai, Louis XIV, Qin, Tokugawa (у Ганди этот элемент отсутсвует)
MEMORY_ACCEPT_DEMAND: Принял требование AI
- [100]
MEMORY_REJECTED_DEMAND: Отверг требование
- [-200,-100] -200 = Catherine, Kublai, Louis XIV, Qin, Tokugawa (у Ганди этот элемент отсутствует)
MEMORY_ACCEPTED_RELIGION: Согласился сменить религию
- [100]
MEMORY_DENIED_RELIGION: Отказался сменить религию
- [-200,-100] -200 = Catherine, Kublai, Louis XIV, Qin, Tokugawa (у Ганди этот элемент отсутствует)
MEMORY_ACCEPTED_CIVIC: Согласился сменить civic
- [100]
MEMORY_DENIED_CIVIC: Отказался сменить civic
- [-200,-100] -200 = Catherine, Kublai, Louis XIV, Qin, Tokugawa (у Ганди этот элемент отсутствует)
MEMORY_DENIED_JOIN_WAR: Отказался помочь в войне
- [-200,-100] -200 = Catherine, Kublai, Tokugawa (у Ганди этот элемент отсутствует)
MEMORY_ACCEPTED_STOP_TRADING: Согласился остановить торговлю с третьей цивилизацией
- [50]
MEMORY_DENIED_STOP_TRADING: Отказался остановить торговлю с третьей цивилизацией
- [-200,-100] -200 = Catherine, Kublai, Tokugawa (у Ганди этот элемент отсутствует)
MEMORY_STOPPED_TRADING: Остановил торговлю с AI
- [-100] (у Ганди этот элемент отсутcтвует)
MEMORY_HIRED_TRADE_EMBARGO: Согласился (инициировал?) на торговое эмбарго против AI
- [-100] (у Ганди этот элемент отсутствует)
MEMORY_MADE_DEMAND: Выдвинул требование к AI
- [-200,-100] -200 = Catherine, Kublai, Louis XIV, Qin, Tokugawa (у Ганди этот элемент отсутствует)
MEMORY_TRADED_TECH_TO_US: Продал AI технологию
- [5, 10, 15, 20] 20 - Mansa

NeverMind
26.01.2006, 01:36
<NoWarAttitudeProbs>: Дополнительная (?) вероятность объявления войны при определенном уровне отношения AI к другой цивилизации. Чем больше значение, тем меньше вероятность войны.

ANNOYED - [-, 10, 20]
не используется для - Alexander, Catherine, Mao...; 20 = Asoka, Gandhi, Saladin...

CAUTIOUS - [20, 30, 50, 70]
20 = Alexander, Catherine, Victoria...; 70 = Asoka, Gandhi, Saladin...

PLEASED - [80, 90, 100]
80 = Alexander, Catherine, Victoria; 100 = Asoka, Gandhi, Saladin...

FRIENDLY - [100]


<UnitAIWeightModifiers>: Задает предпочтения AI к определенным видам юнитов. Для всех лидеров, кроме Hatshepsut (0), указан один вид юнитов.

<ImprovementWeightModifiers>: Определяет предпочтения AI в отношении построек на местности (шахты, фермы...). Firaxis использует от 0 до 2 указателей для каждого лидера.

NeverMind
26.01.2006, 01:48
Это все. Выложил excel-таблицу в первом сообщении. Постараюсь вносить изменения по мере понимания этих элементов-)

Если есть замечания или вопросы, пишите где-нибудь.

liar
09.02.2006, 18:53
<div class='quotetop'>Цитата(NeverMind * 18.01.2006 - 00:41) 73649</div>

MEMORY_RECEIVED_TECH_FROM_ANY: - ?
- [20]
[/b]

Я думаю имеется ввиду продал технологию враждебной цивилизации... :shy2:

PSYX
01.04.2006, 00:12
КРУТО!!!! Обязательно буду использовать в моде))))
У мя есть тутор на корявеньком но вполне понятном русском по технологиям, нужен?
А мне надо по религиям, процес их создания на русском, есть ли у кого нить? Я на их фанатиках нашел два по религиям, один не полный, другой мудрёный... Хочу сделать: праославие + коммунизм и фажизм (не секрет, в эти времена лидеры коммунистов, например себя обожествляли, ставили на место бога, поэтому вижу вполне логичными их добавить, в качестве альтернативных религий)

ToSla
03.04.2006, 09:30
Тогда уж АТЕИЗМ, как основная "религия". При коммунизме так и было, а у фашистов кстати не было заморочки на религию, то что они храмы жгли и все такое - так то банальный вандализм.

NeverMind
14.04.2006, 18:41
Обновил таблицу для версии 1.61. Изменений совсем немного.

iAttackOddsChangeRand для всех лидеров снижен с 10 до 8. Для варвара - с 20 до 16. Видимо, это означает относительно меньшую склонность AI к суицидальным атакам.

iNoTechTradeThreshold повышен для 12 лидеров ровно на 5 единиц (5 - 10, 10 - 15). Наверное, это значит, что AI будет относительно менее склонен к продаже своих технологий. Не факт.

Тэги для Мао изменены с MAO_ZEDONG на CHINESE_LEADER, но на его характере это не отразится.


Новый файл в первом посте. В остальном он лишь незначительно подредактирован внешне.

NeverMind
08.11.2006, 01:40
ori составил на CFC аналогичную таблицу по CIV4LeaderHeadinfos.xml для Warlords 2.08.

Ее можно скачать тут: http://forums.civfanatics.com/downloads.php?do=file&id=3359

Lexad
12.04.2007, 18:11
Огромное спасибо! Вопрос: при расчете

<div class='quotetop'>Цитата</div>
<iTechTradeKnownPercent>: Процент известных цивилизаций, владеющих данной технологией, при котором AI перестает считать ее "монопольной" и предыдущее условие теряет силу
- [0, 20, 30, 40, 50, 60, 70, 100] 0 - Mansa; 100 - Tokugawa[/b]

входит ли владелец в % и от кого берется % - от стартовавших или живых на момент?

razer
12.04.2007, 20:00
<div class='quotetop'>Цитата(NeverMind * 17.1.2006, 1:50) 73407</div>

ПАРАМЕТРЫ AI
<iWonderConstructionRand>: Isak - дополнительный 1dX рандомайзер вероятности начала строительства Чуда (я думаю, что это все таки процентная (?) вероятность начала строительства Чуда, прямая зависимость, а не обратная)
- [0, 10, 20, 30, 40, 50] 0 - Montezuma, 50 - Louis XIV
[/b]

Гы, а я видел както, что Монтецума построил пирамиды и включил сразу же police state =))

Lexad
13.04.2007, 00:37
Так вероятность дополнительная...

NeverMind
13.04.2007, 14:28
Надо думать, а не думается что то :shy2: . Давайте вместе посмотрим и объясним. Вот полная функция отказа AI от торговли технологиями, т.е. когда они выделены красным в дипломатии. В т.ч и "монопольный" отказ.

DenialTypes CvTeamAI::AI_techTrade(TechTypes eTech, TeamTypes eTeam) const
{
PROFILE_FUNC();

AttitudeTypes eAttitude;
int iNoTechTradeThreshold;
int iTechTradeKnownPercent;
int iKnownCount;
int iPossibleKnownCount;
int iI, iJ;

FAssertMsg(eTeam != getID(), "shouldn&#39;t call this function on ourselves");

if (isHuman())
{
return NO_DENIAL;
}

/*
if (isVassal(eTeam))
{
return NO_DENIAL;
}
*/

if (isAtWar(eTeam))
{
return NO_DENIAL;
}

if (AI_getWorstEnemy() == eTeam)
{
return DENIAL_WORST_ENEMY;
}

eAttitude = AI_getAttitude(eTeam);

for (iI = 0; iI < MAX_PLAYERS; iI++)
{
if (GET_PLAYER((PlayerTypes)iI).isAlive())
{
if (GET_PLAYER((PlayerTypes)iI).getTeam() == getID())
{
if (eAttitude <= GC.getLeaderHeadInfo(GET_PLAYER((PlayerTypes)iI).getPersonalityType()).getTechRefuseAttitudeThreshold())
{
return DENIAL_ATTITUDE;
}
}
}
}

if (eAttitude < ATTITUDE_FRIENDLY)
{
if ((GC.getGameINLINE().getTeamRank(getID()) < (GC.getGameINLINE().countCivTeamsEverAlive() / 2)) ||
(GC.getGameINLINE().getTeamRank(eTeam) < (GC.getGameINLINE().countCivTeamsEverAlive() / 2)))
{
iNoTechTradeThreshold = AI_noTechTradeThreshold();

iNoTechTradeThreshold *= max(0, (GC.getHandicapInfo(GET_TEAM(eTeam).getHandicapType()).getNoTechTradeModifier() + 100));
iNoTechTradeThreshold /= 100;

if (AI_getMemoryCount(eTeam, MEMORY_RECEIVED_TECH_FROM_ANY) > iNoTechTradeThreshold)
{
return DENIAL_TECH_WHORE;
}
}

iKnownCount = 0;
iPossibleKnownCount = 0;

for (iI = 0; iI < MAX_CIV_TEAMS; iI++)
{
if (GET_TEAM((TeamTypes)iI).isAlive())
{
if ((iI != getID()) && (iI != eTeam))
{
if (isHasMet((TeamTypes)iI))
{
if (GET_TEAM((TeamTypes)iI).isHasTech(eTech))
{
iKnownCount++;
}

iPossibleKnownCount++;
}
}
}
}

iTechTradeKnownPercent = AI_techTradeKnownPercent();

iTechTradeKnownPercent *= max(0, (GC.getHandicapInfo(GET_TEAM(eTeam).getHandicapType()).getTechTradeKnownModifier() + 100));
iTechTradeKnownPercent /= 100;

if ((iPossibleKnownCount > 0) ? (((iKnownCount * 100) / iPossibleKnownCount) < iTechTradeKnownPercent) : (iTechTradeKnownPercent > 0))
{
return DENIAL_TECH_MONOPOLY;
}
}

for (iI = 0; iI < GC.getNumUnitInfos(); iI++)
{
if (isTechRequiredForUnit(eTech, ((UnitTypes)iI)))
{
if (isWorldUnitClass((UnitClassTypes)(GC.getUnitInfo((UnitTypes)iI).getUnitClassType())))
{
if (getUnitClassMaking((UnitClassTypes)(GC.getUnitInfo((UnitTypes)iI).getUnitClassType())) > 0)
{
return DENIAL_MYSTERY;
}
}
}
}

for (iI = 0; iI < GC.getNumBuildingInfos(); iI++)
{
if (isTechRequiredForBuilding(eTech, ((BuildingTypes)iI)))
{
if (isWorldWonderClass((BuildingClassTypes)(GC.getBuildingInfo((BuildingTypes)iI).getBuildingClassType())))
{
if (getBuildingClassMaking((BuildingClassTypes)(GC.getBuildingInfo((BuildingTypes)iI).getBuildingClassType())) > 0)
{
return DENIAL_MYSTERY;
}
}
}
}

for (iI = 0; iI < GC.getNumProjectInfos(); iI++)
{
if (GC.getProjectInfo((ProjectTypes)iI).getTechPrereq() == eTech)
{
if (isWorldProject((ProjectTypes)iI))
{
if (getProjectMaking((ProjectTypes)iI) > 0)
{
return DENIAL_MYSTERY;
}
}

for (iJ = 0; iJ < GC.getNumVictoryInfos(); iJ++)
{
if (GC.getGameINLINE().isVictoryValid((VictoryTypes)iJ))
{
if (GC.getProjectInfo((ProjectTypes)iI).getVictoryThreshold((VictoryTypes)iJ))
{
return DENIAL_VICTORY;
}
}
}
}
}

return NO_DENIAL;
}

А это - как AI считает процент.

[code]int CvTeamAI::AI_techTradeKnownPercent() const
{

Lexad
13.04.2007, 15:16
Какие приколисты, мило так называют строки отказа от торговли...

Из релевантного в первом боксе (про вообще желание торговать, без привязки к монополии):
- если отношение меньше либо равно, чем TechRefuseAttitudeThreshold в LeaderHeadInfo, то отказать с формулировкой DENIAL_ATTITUDE ("We just don&#39;t like you that much" - вроде такая строка текста)
- из остальных - если отношения хуже "Friendly" и оба в топ-половине по очкам среди всех когда либо живших - (?), то порог торговли = noTechTradeThreshold данного ИИ*(NoTechTradeModifier/100 + 1) - что-то про нежелание давать техи на халяву, по-моему; не отказ ли из-за высокого уровня развития? Не суть важно, впрочем

Теперь самое релевантное, выделенное жирным - про монополию:
- Если отношения хуже "Friendly" и оба в верхней(?) половине по очкам среди всех когда-либо живших; иначе не принимает знание остальными во внимание.
- Процент знания техи определяется среди (дополнение - известных продавцу) ныне здравствующих (перед расчетом числителя и знаменателя идет if (GET_TEAM((TeamTypes)iI).isAlive()) )
- Вопрос - среди кого именно здравствующих? Что значит if ((iI != getID()) && (iI != eTeam)) - "все, кроме продавца и покупателя"? Я не программист, не уверен.
- Порог процента знающих = techTradeKnownPercent данного ИИ*(TechTradeKnownModifier/100 + 1). Если отношение процента знающих среди живущих будет больше (строго) порога - DENIAL_TECH_MONOPOLY (отказ по монопольным соображениям)

Остальное - отказ в военных итехах, в техах, по которым строится чудо, в техах, ведущих к победе.

Lexad
13.04.2007, 15:33
Отсюда вывод, если я не ошибся - чтобы монополист начал торговать техами, надо либо самому выскочить из верхней поовины, либо зафрендить его, либо вынести его из верхней половины.

Lexad
13.04.2007, 20:14
А второе окошко просто берет средний по команде модифайер, как я понимаю, и для игры без команд просто = TechTradeKnownPercent

ALEXCHAMP
25.07.2008, 07:42
А что обозначают эти 2 показателя ?
iVassalPowerModifier
iFreedomAppreciation

Lexad
23.08.2008, 16:17
Доанализ кода (порядок соответсвует порядку согласия или отказа в коде). Мой пост №24 был не совсем верен.

1. С нами не будут торговать, если мы - злейший враг, даже если при таких отношениях ИИ и согласен в общем меняться техами. Следовательно, напасть на Мусу, а потом при Аннойд пытаться торгануть не стоит (теоретически).

2. Вассал не жмет техи от хозяина (но может быть и наоборот, надо протестить :))

3. Если Френдли - техи не жмет, даже монопольные. Также не обращает внимания на количество тех, полученных нами от других игроков.

4. Если хуже Френдли, и ранг хотя бы одного из участников обмена (?- не уверен в значении значка ||) - в верхней половине всех, когда-либо живших (округление вниз, т.е. 5-й из 9 не подходит), и мы получили от других игроков тех больше, чем ИИ готов терпеть (индивидуальный параметр iNoTechTradeThreshold, умноженный на [1 + гандикап уровня сложности, который еще надо доставать из кода]), то в дело вступает пресловутая WFYABTA - We fear you are becoming too advanced. И отказ (DENIAL_TECH_WHORE).

Гандикап: К-т сложности для Notechtradethreshold = 2 - 0.1*i, где i = 0-8 (Сеттлер-Бог)
(с) Dynamic

Пример - Ганди на Боге. У него iNoTechTradeThreshold 15, гандикап 20, итого он тготов с нами торговать, если мы выменяли не более 18 тех у других ИИ (дары тоже считаются). С другой стороны, все ИИ с вероятностью 5% в ход могут забыть нам 1 теху, выменянную у других.

Мораль: на высоких уровнях с злопамятными ИИ (см низкий iNoTechTradeThreshold в таблицах NeverMind-а) лучше не выменивать всякие ненужные вещи, типа Луков или Божественного Права.

5. Если хуже Френдли, но без разницы, какие ранги, то берем всех известных продавцу игроков, кроме него самого и нас, и смотрим, сколько из них знают теху.

щас допишу

Lexad
23.08.2008, 16:29
Часть 2 - тут менять особо нечего:

Процент встреченных продавцом живых цив (кроме нас и продавца) сравниваем с индивидуальным параметром продавца techTradeKnownPercent. Если знают меньше, отказ (DENIAL_TECH_MONOPOLY)

6. Далее - могут отказать менять теху, дающую новые юниты, здания или проекты (DENIAL_MYSTERY). Подробнее - надо лезть вне выложенного кода.

7. Техи, дающие победные проекты (СМИ, Аполлон, детали корабля), не меняют (DENIAL_VICTORY).

Ну, а если вам ни разу не отказали - поздравляем.

Dynamic
23.08.2008, 16:52
|| - логическое ИЛИ

Техи, дающие новые юниты, здания или проекты обсчитываются дважды.
Первый раз при расчете монопольности (там большая, но понятная функция), второй - пункт 6 по Лехе. Но по пункту 6 проверка странная какая-то, я не смог найти кода.

Lexad
23.08.2008, 17:08
<div class='quotetop'>Цитата</div>
|| - логическое ИЛИ[/b]Ну, значит я был прав