PDA

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



NeverMind
25.06.2006, 00:15
Открыл эту тему специально, чтобы опытные товарищи помогли разобраться с дипломатическим поведением AI. :D


Вычисление отношения AI к другому игроку.


[code]int CvPlayerAI::AI_getAttitudeVal(PlayerTypes ePlayer)
{

vpadlo
25.06.2006, 00:45
Стучи в аську и задавай конкретные вопросы, я сейчас как раз занимаюсь изучением поведение AI(пока разбираюсь в системой голосования).

NeverMind
25.06.2006, 02:36
Ок, конкретные два вопроса.

[code]

vpadlo
25.06.2006, 02:40
<div class='quotetop'>Цитата(NeverMind * 25.6.2006, 1:36) 106392</div>[quote]
Ок, конкретные два вопроса.

[code]

vpadlo
25.06.2006, 03:00
Строка

iAttitude += min(GC.getLeaderHeadInfo(getPersonalityType()).getWarmongerRespect(), GC.getLeaderHeadInfo(GET_PLAYER(ePlayer).getPersonalityType()).getWarmongerRespect());
добавляет к отношению меньшее из значений WarmongerRespect игрока или AI.
Строка

iAttitude += (4 - abs(AI_getPeaceWeight() - GET_PLAYER(ePlayer).AI_getPeaceWeight()));
добавляет к отношению 4 - | PeaceWeight AI - PeaceWeight игрока |

PSYX
26.06.2006, 08:26
А по религиям, уже что то известно? Я имею ввиду, как размножить окошко религий до двух?

vpadlo
26.06.2006, 13:10
<div class='quotetop'>Цитата(PSYX * 26.6.2006, 7:26) 106478</div>

А по религиям, уже что то известно? Я имею ввиду, как размножить окошко религий до двух?
[/b]
Пока нет, работа продвигается довольно медленно, больших успехов можно будет добится, когда больше людей присоединятся к разбору кода, вот тогда работа закипит.

vpadlo
26.06.2006, 18:53
<div class='quotetop'>Цитата(PSYX * 26.6.2006, 7:26) 106478</div>

А по религиям, уже что то известно? Я имею ввиду, как размножить окошко религий до двух?
[/b]
Сделать два окошка я думаю не сложно(хотя ещё не пробывал), а вот с возможностью выборать сразу две религии для одной цивилизации будет посложней, хотя возможно всё.

NeverMind
28.06.2006, 13:30
[code]if (GET_TEAM(GET_PLAYER(ePlayer).getTeam()).AI_getWarSuccess(getTeam()) > GET_TEAM(getTeam()).AI_getWarSuccess(GET_PLAYER(ePlayer).getTeam()))

vpadlo
28.06.2006, 13:43
<div class='quotetop'>Цитата(NeverMind * 28.6.2006, 12:30) 106870</div>[quote]
[code]if (GET_TEAM(GET_PLAYER(ePlayer).getTeam()).AI_getWarSuccess(getTeam()) > GET_TEAM(getTeam()).AI_getWarSuccess(GET_PLAYER(ePlayer).getTeam()))

PSYX
28.06.2006, 22:04
А защитный союз, типа НАТО, сложно создать? Думаю, надо просто скопировать защитный союз и поменять цвет его полоски в меню добавить графику. Могу взять на себя графическую часть.
Или хотя бы скажите, где можно найти этот союз в СДК?

NeverMind
29.06.2006, 00:39
<div class='quotetop'>Цитата</div>
Или хотя бы скажите, где можно найти этот союз в СДК?[/b]
Мне недавно объяснили как это надо искать. Это оказывает очень просто.

1) Распаковываешь SDK
2) Запускаешь Total Commander
3) Поиск файлов - в указанном каталоге - с указанным текстом

- Текст "DefensivePact" (ты ж его искал, да?)
- и бац, вот он пакт, выдается 19 файлов :blink: из них 12 .cpp

А дальше...Ну, почему бы и не "поменять полоску"...:whistle:

Solver
29.06.2006, 00:56
Не путайте вопросы интерфейса и непосредственно игры. Поменять там цвет полоски или сделать окошко для двух государственных религий - это все через Python делается. Но при этом никакого смысла в игре не имеет, пока код SDK не изменен.

Что тут вообще имеется ввиду под "защитным союзом типа НАТО"? Чем это должно отличатся от того союза, что на данный момент есть?

PSYX
30.06.2006, 08:16
<div class='quotetop'>Цитата(Solver * 28.6.2006, 23:56) 106969</div>

Что тут вообще имеется ввиду под "защитным союзом типа НАТО"? Чем это должно отличатся от того союза, что на данный момент есть?
[/b]
Если игрок вступает в союз НАТО, то цены на вооружение должны упасть и игрок должен платить определённую сумму за ход.