Просмотр полной версии : Дипломатическая память AI
Animal Mind
18.01.2009, 11:41
Созрел вопрос - во сколько раз на марафоне увеличено количество ходов, через которые AI "забывают" о плюсах и минусах в дип. отношениях?
Т.е. если через 200-300 ходов на нормале AI забудет об объявлении войны, то сколько это составит на марафоне?
<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] Как ни странно, от скорости игры это не зависит - количество ходов до забывания на всех скоростях одинаковое.
Забывчивость ИИ случайная, а не детерминистская: есть вероятность, что он забудет в тот или иной ход.
Некоторые вещи не видно, как забываются: так, если ИИ не торгует техами, мотивируя 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). Или о чем речь?
<div class='quotetop'>Цитата</div>
мне не встречалось. Есть вид забывания - MEMORY_ACCEPTED_JOIN_WAR (1/150). Или о чем речь?[/b]Нет, это подключение в ответ на просьбу. А вообще сложно найти параметр, отвечающий за забывание, если такого параметра нет :)
NeverMind
19.01.2009, 15:00
Тогда надо найти параметр, ответственный за наличие памяти \ изменение отношения. :)
PS. Очевидно ShareWarAttitude. Надо посмотреть на него внимательно.
<div class='quotetop'>Цитата</div>
Очевидно ShareWarAttitude[/b]
Там 2 части. Одна - +1 просто за совместную войну, дается сразу, не забывется, активна и после войны. Вторая - растет, потом, соответственно, забывается (в пределе - до нуля) и, по-моему, в мирное время неактивна.
NeverMind
19.01.2009, 15:27
При войне между этим же участниками "забывается". :secret: Собственно, как и плюсы от просто мирных отношений.
<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)
{
Хорошая таблица, но определенно не полная. Например, нет плюсов за совместную войну (не путать с согласием подключиться к войне)
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:
<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
Никогда не задумывался, оказывается насколько странно всё устроено. Оказывается если в древности объявить войну и развалить несколько городов, то эта нация наверное даже в современности не сможет стать дружественной. Фигово как-то.
Powered by vBulletin® Version 4.1.9 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot