PDA

Просмотр полной версии : Дипломатическая память AI



Animal Mind
18.01.2009, 11:41
Созрел вопрос - во сколько раз на марафоне увеличено количество ходов, через которые AI "забывают" о плюсах и минусах в дип. отношениях?
Т.е. если через 200-300 ходов на нормале AI забудет об объявлении войны, то сколько это составит на марафоне?

Artuwok
18.01.2009, 19:16
<div class='quotetop'>Цитата(Animal Mind * 18.1.2009, 12:41) 276260</div>

Созрел вопрос - во сколько раз на марафоне увеличено количество ходов, через которые AI "забывают" о плюсах и минусах в дип. отношениях?
Т.е. если через 200-300 ходов на нормале AI забудет об объявлении войны, то сколько это составит на марафоне?
[/b]

Помоему AI никогда никаких минусиков не забывает.(Ну за исключением религии и когда вассалом стает)

Я предпочитаю эпик скорость :.V.:

Animal Mind
18.01.2009, 20:36
<div class='quotetop'>Цитата(Artuwok * 18.1.2009, 19:16) 276324</div>

<div class='quotetop'>Цитата(Animal Mind * 18.1.2009, 12:41) 276260

Созрел вопрос - во сколько раз на марафоне увеличено количество ходов, через которые AI "забывают" о плюсах и минусах в дип. отношениях?
Т.е. если через 200-300 ходов на нормале AI забудет об объявлении войны, то сколько это составит на марафоне?
[/b]

Помоему AI никогда никаких минусиков не забывает.(Ну за исключением религии и когда вассалом стает)

Я предпочитаю эпик скорость :.V.:
[/b][/quote]

Вот из этой темы (http://www.civfanatics.ru/forum/index.php?s=&showtopic=2785&view=findpost&p=73649) можно сделать вывод, что все-таки забывает. На марафонской скорости у меня AI забывал что я отказывался менять цивики или религию и вроде бы отказы в помощи.

Но вот персидкий царь Ксеркс в течении 700-750 ходов так и не забыл что я разрушил у него несколько городов и всю игру оставался Furiuos.

NeverMind
19.01.2009, 14:03
<div class='quotetop'>Цитата(Animal Mind * 18.1.2009, 11:41) 276260</div>
Созрел вопрос - во сколько раз на марафоне увеличено количество ходов, через которые AI "забывают" о плюсах и минусах в дип. отношениях?
Т.е. если через 200-300 ходов на нормале AI забудет об объявлении войны, то сколько это составит на марафоне?[/b] Как ни странно, от скорости игры это не зависит - количество ходов до забывания на всех скоростях одинаковое.

Lexad
19.01.2009, 14:19
Забывчивость ИИ случайная, а не детерминистская: есть вероятность, что он забудет в тот или иной ход.
Некоторые вещи не видно, как забываются: так, если ИИ не торгует техами, мотивируя We fear you are becoming too advanced, что на самом деле означает "Вы купили слишком много тех у других", и лимит у него 12 тех, то он будет это писать и если вы сменяете у других 20 тех, и если он о 5 из них забудет. Аналогично с теми техами, которые вы ему сменяли (+ за You shared your technological discoveries with us).
Наконец, некоторые вещи не забываются вообще. Так, +1, сразу получаемый при начале совместной войны, не исчезает.

NeverMind
19.01.2009, 14:49
Да, привязка к ходам, конечно, не прямая. Каждый ход существует вероятность уменьшения "модуля" дипломатической памяти от события на 1 - в зависимости от типа события - от 1/10 для "голосовали за\против нас" до 1/200 "предоставили нам помощь".

Память о некоторых событиях (война, ядерный удар, разрушение города...) остается всегда, но подтверждени этого...<div class='quotetop'>Цитата</div>
Так, +1, сразу получаемый при начале совместной войны, не исчезает.[/b]мне не встречалось. Есть вид забывания - MEMORY_ACCEPTED_JOIN_WAR (1/150). Или о чем речь?

Lexad
19.01.2009, 14:54
<div class='quotetop'>Цитата</div>
мне не встречалось. Есть вид забывания - MEMORY_ACCEPTED_JOIN_WAR (1/150). Или о чем речь?[/b]Нет, это подключение в ответ на просьбу. А вообще сложно найти параметр, отвечающий за забывание, если такого параметра нет :)

NeverMind
19.01.2009, 15:00
Тогда надо найти параметр, ответственный за наличие памяти \ изменение отношения. :)

PS. Очевидно ShareWarAttitude. Надо посмотреть на него внимательно.

Lexad
19.01.2009, 15:23
<div class='quotetop'>Цитата</div>
Очевидно ShareWarAttitude[/b]
Там 2 части. Одна - +1 просто за совместную войну, дается сразу, не забывется, активна и после войны. Вторая - растет, потом, соответственно, забывается (в пределе - до нуля) и, по-моему, в мирное время неактивна.

NeverMind
19.01.2009, 15:27
При войне между этим же участниками "забывается". :secret: Собственно, как и плюсы от просто мирных отношений.

Lexad
19.01.2009, 15:41
<div class='quotetop'>Цитата</div>
При войне между этим же участниками "забывается". [/b]Безусловно. Но это не то "забывание" :)

Animal Mind
20.01.2009, 09:26
А "Объявление войны другу" забывается с каким-нибудь процентом вероятности?
http://www.civfanatics.ru/forum/index.php?showtopic=2785 из этой темы можно сделать вывод, что нет?

В теге <MemoryType> - то что АИ может забыть
А тут <MemoryAttitudePercent> то что не может? Или как? :)

NeverMind
20.01.2009, 14:53
Еще посмотрел, продолжаем разговор. :)

Чтобы не было путаницы отделим "прямое формирование отношений" от отношений от памяти\забывания, как это сделано в функции CvPlayerAI::AI_getAttitudeVal
<div class='quotetop'>Цитата</div>
...
iAttitude += AI_getCloseBordersAttitude(ePlayer);
iAttitude += AI_getWarAttitude(ePlayer);
iAttitude += AI_getPeaceAttitude(ePlayer);
iAttitude += AI_getSameReligionAttitude(ePlayer);
iAttitude += AI_getDifferentReligionAttitude(ePlayer);
iAttitude += AI_getBonusTradeAttitude(ePlayer);
iAttitude += AI_getOpenBordersAttitude(ePlayer);
iAttitude += AI_getDefensivePactAttitude(ePlayer);
iAttitude += AI_getRivalDefensivePactAttitude(ePlayer);
iAttitude += AI_getRivalVassalAttitude(ePlayer);
iAttitude += AI_getShareWarAttitude(ePlayer);
iAttitude += AI_getFavoriteCivicAttitude(ePlayer);
iAttitude += AI_getTradeAttitude(ePlayer);
iAttitude += AI_getRivalTradeAttitude(ePlayer);

for (iI = 0; iI < NUM_MEMORY_TYPES; iI++)
{
iAttitude += AI_getMemoryAttitude(ePlayer, ((MemoryTypes)iI));
}
...[/b]

Всего существуют 33 типа памяти, они перечислены в файле CIV4MemoryInfos.xml. Ниже представлена таблица со всеми видами памяти и их игровым описанием (из русификации наш-фанатиков).

http://nm.civfanatics.ru/ref/ai_memory.gif
http://nm.civfanatics.ru/ref/ai_memory.gif

В файле CIV4LeaderheadsInfos.xml для каждого лидера по большинству видов памяти (28) даются изменения отношения MemoryAttitudePercent - я внес в таблицу стандартные значения (незначительно меняются только 5-6 из них). Уником Ганди меняет отношение только после 19 событий - не обижается, если отказали в просьбе и тд.

Там же указаны и рандомайзеры забывания (MemoryDecayRand) - по 21 виду памяти для каждого правителя с абсолютно идентичными значениями.

Как это работает.

Изменение отношения: CvPlayerAI::AI_getMemoryAttitude
[spoiler][code]int CvPlayerAI::AI_getMemoryAttitude(PlayerTypes ePlayer, MemoryTypes eMemory)
{

Lexad
20.01.2009, 15:21
Хорошая таблица, но определенно не полная. Например, нет плюсов за совместную войну (не путать с согласием подключиться к войне)

GobblinS
20.01.2009, 16:14
NeverMind :applau2:
Надо будет как-нибудь покопаться в коде и составить списочек, кто на что обижается... :whistle:

NeverMind
20.01.2009, 16:40
Это полная таблица касательно MemoryTypes, другие вещи не собирался тут трогать. Остальные таблицы я когда то составлял в другой теме (http://www.civfanatics.ru/forum/index.php?showtopic=3711). :)

В принципе теперь можно все объединить и составить почти полное описание формирования отношения AI. :w00t: :whistle:

Lexad
20.01.2009, 16:43
<div class='quotetop'>Цитата</div>
В принципе теперь можно все объединить и составить почти полное описание формирования отношения AI[/b]
У ori лежит на ихфанатиках.

NeverMind
20.01.2009, 17:04
Зачем так далеко ссылаться? То, что лежит у ori, за год до этого описал vpadlo на модиках (http://modiki.civfanatics.ru/index.php/SDK:_CvPlayerAI::AI_getAttitudeVal). Описание работы MemoryTypes я там тоже на заметил (?) и никакой таблицы с подходящими данными (не полной копией Leaderheads.xml) по лидерам, что вместе и было бы "почти полным описанием", о котором я говорю.

Artemios
26.01.2009, 14:54
Никогда не задумывался, оказывается насколько странно всё устроено. Оказывается если в древности объявить войну и развалить несколько городов, то эта нация наверное даже в современности не сможет стать дружественной. Фигово как-то.