+ Ответить в теме
Показано с 1 по 7 из 7

Тема: Условия капитуляции ИИ

  1. #1
    Божество

    Аватар для Lexad


    Регистрация
    29.12.2005
    Адрес
    Новосибирск-Москва
    Сообщений
    7,396
    Анализ кода - ori, инициатор вопроса - alexchamp, переводчик - искренне ваш.

    ori:
    <div class='quotetop'>Цитата</div>
    anyway - this code is extremely convoluted... I&#39;ll do my best:

    the AI will refuse to capitulate if
    - their power is greater than the average of all players
    - their power is greater than 2/3 of yours
    - their success + 40 is greater than your success

    note:
    success is +1 for every unit killed and (if I understand the code correctly) +10 for every city captured
    if another player is also at war with the AI you want to capitulate and its success is greater than yours the success for the AI you want to capitulate is increased by the difference between your and the third player&#39;s success

    power is complicated, I&#39;ll just post the calculation:
    yourPower= 2*your power rating (I believe its what the demographics graph shows)*your success / [yourSuccess+theirSuccess]
    this is modified: if you are the AIs worst enemy (which is usually the case during war) its multiplied by 3/4, if you have no land connection to the AI its multiplied by 1/2
    theirPower=their power rating * VassalPowerModifier for the leader (in Civ4LeaderheadInfos.xml)

    note: VassalPowerModifier can be e.g. 10 this means that their power is multiplied by 1.1 - if it is -20, their power is multiplied by 0.8 etc...
    [/b]
    Код весьма запутан, но вроде так.

    ИИ откажется капитулировать, если:
    - его сила (немного не та сила, пояснение ниже) больше средней силы всех игроков
    - его сила больше 2/3 нашей
    - или его военный успех на 40 больше нашего (в войне нас и его, естественно).

    За убитый юнит дается +1 успеха, за взятый город (если ori все правильно понял) +10.

    Если другой ИИ (Х) тоже в войне с жертвой и его успех больше нашего, то успех жертвы в войне с нами увеличивается на разницу нашего успеха и успеха (Х).

    НашаСила = 2*наш рейтинг силы (можно посмотреть в Демографии) * нашУспех / (нашУспех + жертвыУспех)
    жертвыСила = их рейтинг силы * (1 + 0.01* Множитель силы для Вассализации VassalPowerModifier) (свой для каждого лидера, смотреть в Civ4LeaderheadInfos.xml)

    От тако-то.
    продвинь это сообщение в соцсеть:  
    Krieg души

  2. #2
    <div class='quotetop'>Цитата</div>
    ИИ откажется капитулировать, если:- его сила (немного не та сила, пояснение ниже) больше средней силы всех игроков- его сила больше 2/3 нашей- или его военный успех на 40 больше нашего (в войне нас и его, естественно).[/b]
    Выходит, ИИ может капитулировать независимо от хода войны? Т. е. можно обьявить иму войну, и, практически не воюя, сделать его вассалом только потому, что он слабый?
    продвинь это сообщение в соцсеть:  
    Здесь была ссылка на пиратский ресурс. Была.
    Viva la Google!

  3. #3
    Божество

    Аватар для Lexad


    Регистрация
    29.12.2005
    Адрес
    Новосибирск-Москва
    Сообщений
    7,396
    <div class='quotetop'>Цитата</div>
    Т. е. можно обьявить иму войну, и, практически не воюя, сделать его вассалом только потому, что он слабый?[/b]
    Да, но совсем не воевать не получится - иначе нашУспех = 0, следовательно, нашаСила = 0.
    продвинь это сообщение в соцсеть:  
    Krieg души

  4. #4
    Точно, я малость затупил
    продвинь это сообщение в соцсеть:  
    Здесь была ссылка на пиратский ресурс. Была.
    Viva la Google!

  5. #5
    <div class='quotetop'>Цитата(Lexad * 11.9.2008, 16:19) [snapback]260121[/snapback]</div>
    <div class='quotetop'>Цитата
    Т. е. можно обьявить иму войну, и, практически не воюя, сделать его вассалом только потому, что он слабый?[/b]
    Да, но совсем не воевать не получится - иначе нашУспех = 0, следовательно, нашаСила = 0.
    [/b][/quote]
    Вот только есть тонкий момент:
    в начале войны нашУспех=0 и жертвы успех=0, получаем "division by zero".
    продвинь это сообщение в соцсеть:  
    Нет монстров страшнее людей.

  6. #6
    Божество

    Аватар для Lexad


    Регистрация
    29.12.2005
    Адрес
    Новосибирск-Москва
    Сообщений
    7,396
    <div class='quotetop'>Цитата</div>
    Вот только есть тонкий момент:
    в начале войны нашУспех=0 и жертвы успех=0, получаем "division by zero".[/b]
    И часто у тебя игра вылетала в начале игры? Я код не видел, только переводил ori, но уверен, что там, как и везде, стартовое значение 1 (или 0,01) - по крайней мере успех жертвы.
    продвинь это сообщение в соцсеть:  
    Krieg души

  7. #7


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

    Но думаю там более обширный подсчёт. Так как замечал, что капитуляция никак не происходит за 1 ход, даже если затопить в первый же ход много кораблей и захватить пару прибрежных городов. Кроме того видел, что капитулируется охотнее, если затянуть на территорию врага армию, просто затянуть даже без битв.

    Ещё интересно как считается, если воюешь в компании с вассалами, сам в битвах не участвуя.
    продвинь это сообщение в соцсеть:  

+ Ответить в теме

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
Рейтинг@Mail.ru

free counters