Точные отношения для BtS 3.19 (до 50 цивилизаций)
* * * * * *
Точные отношения для патча 1.74 (ванила)
Точные отношения для патча 2.13 (24 нации) (Warlords)
Точные отношения для патча 302 (34 нации) (Beyond the Sword)
Моды работают с любым языком, описанным в XML файлах.
Эти моды сделаны после выхода патча 3.13.
Точные отношения для патча 313 (34 нации) (Beyond the Sword)
Точные отношения для патча 313 (50 наций) (Beyond the Sword)
Точные отношения для неофициального патча (50 наций) (Beyond the Sword)
- - - - - - - - - - - - - - - - - - - -
<div align="center">СВЯЗЬ СДК И ПИТОНА.</div>
<div align="center">(Вызов функций, описанных в СДК, через Питон)</div>
Для того, чтобы вызывать функции, описанные в СДК, через Питон необходимо убедиться, что эти функции описаны в СДК для Питона. Все эти функции лежат во второй части СДК в файлах, начинающихся на Cy. Например (Для класса CvPlayer):
CyPlayer.cpp, CyPlayer.h.
Если эти функции не описаны в этих файлах, то их надо прописать самому.
Для примера попробуем описать функцию AI_getAttitudeVal для Питона, находящуюся в классе CvPlayerAI. Но при этом попробуем создать свою функцию в классе CvPlayer (т.к. класс CvPlayerAI в Питон не передается). Если бы мы сразу хотели передать эту функцию, то ее пришлось бы описывать в файле CvPlayer.h таким образом:
Что вызывает вылет программы (системная ошибка)Код:virtual int AI_getAttitudeVal(PlayerTypes ePlayer, bool bForced = true) = 0;
Так что нам приходится создавать свою функцию. Мы ее прописываем так:
Флаг bForsed опускаем, но добавляем второго игрока, так как отношения проверяются между двумя игроками. (в этом то и была ошибка в первой редакции).Код:int getAttitudeVal(PlayerTypes ePlayer, PlayerTypes ePlayerHuman);
После этого прописываем эту функцию в файле Cyplayer.h. Здесь надо ее прописать также, как она была прописана в файле CvPlayer.h, только тип PlayerTypes надо заменить на int:
Далее создаем функцию getAttitudeVal в файле CvPlayer.cppКод:int getAttitudeVal(int /*PlayerTypes*/ ePlayer, int /*PlayerTypes*/ ePlayerHuman);
[code]
int CvPlayer::getAttitudeVal(PlayerTypes ePlayer, PlayerTypes ePlayerHuman)
{





Ответить с цитированием





. Посмотрел скрин. Что значит осторожны - 100?? AI_getAttitudeVal выдает отношение от -100 до 100, для Cautios могут быть числа от -3 до 3. ??? 

Да я не про тире. С тире все нормально, лучше даже в скобочки число поставить. Это все мелочи, я про другое. 



