В игре есть папка "Mods" - туда устанавливаются моды. Наиболее новые устанавливаются в дополнения игры. Например в: Sid Meier's Civilization 4 Complete\Beyond the Sword\Mods\
В папке Mods должна появиться папка с названием мода который ты установил.
Затем заходишь в игру, нажимаешь "Дополнительно", затем "Загрузка модификации" и в открывшемся окне выбираешь мод в который хочешь играть. Жмешь "Ок". Игра загрузит модификацию. Играешь : )
Друзья, подскажите такую вещь в плане моддинга:
- как сделать так, чтобы юнит получал бонус к силе от числа своих юнитов, находящихся на той же клетке что и он и соседних клетках?
- как сделать так, чтобы юнит получал штраф к силе от числа вражеских юнитов, находящихся на соседних клетках?
PS Делаю реализм-мод на основе RM. А котлов, окружений и зависимости от прикрытия в циве не предусмотрено пока... не порядок. Это же азбука войн, особенно современных. Надеюсь на вашу помощь !
Хотел бы ответить на этот довольно простой вопрос, хотя можно было и в faq заглянуть, и поиск никогда лишним не был. Начнем с того, одкуда скачивать моды. Кроме нашего раздела "Модная цивилизация" даю ее пару ссылок:
http://forums.civfanatics.com/downloads.php?do=cat&id=2
http://forums.civfanatics.com/downloads.php?do=cat&id=3
http://forums.civfanatics.com/downloads.php?do=cat&id=4
http://civru.com/1051
Устанавливаются они в Папка с игрой/mods
Запускаются при помощи Дополнительно/загрузить мод (Advanced/load a mod).
Удачи
нашел, что посоветовать... там страничка в 2006 обновлялась... это моды в лучшем случае для warlords...
вот этого хватит:
http://www.civfanatics.ru/threads/10071
Сап, нужна помощь. В самом начале был вопрос о возможности постройки города на территории чужой цивилизации. Так вот, дело в том, что MIN_CITY_RANGE игнорируется. Как сделать так, чтобы учитывался и он?
Далее: есть у меня свой модкомп, который создает юниты на карте. Он взаимодействует с CvEventInterface.py, в то время, как необходимый мне AI AUTO PLAY взаимодействует с ним тоже. Так вот, как это все сгрупировать? Конкретно, возникает неувязочка в def getEventManager(). В общем, гляньте сами.
Мой файл:
Файл AutoPlayimport CvUtil
import CvEventManager
import CvRAFEvents
from CvPythonExtensions import *
gMesoamericaEventManager = CvRAFEvents.CvRAFEvents()
gDefaultEventManager = CvEventManager.CvEventManager()
def getEventManager():
return gMesoamericaEventManager
def onEvent(argsList):
'Called when a game event happnes - returns 1 if the event is consumed'
return getEventManager().handleEvent(argsList)
def applyEvent(argsList):
context, playerID, netUserData, popupReturn = argsList
return getEventManager().applyEvent(argsList)
def beginEvent(context, argsList = -1):
return getEventManager().beginEvent(context, argsList)
Благодарю!import CvCustomEventManager
customEventManager = CvCustomEventManager.CvCustomEventManager()
def getEventManager():
return customEventManager
def onEvent(argsList):
"""Called when a game event happens - return 1 if the event was consumed."""
return getEventManager().handleEvent(argsList)
def applyEvent(argsList):
context, playerID, netUserData, popupReturn = argsList
return getEventManager().applyEvent(argsList)
def beginEvent(context, argsList = -1):
return getEventManager().beginEvent(context, argsList)
...Снова нарушу молчание, надеясь, что ответите. Как сделать так, чтобы определенное событие затрагивалось, если игрок - человек, либоже напротив: не затрагивалось, если игрок - ИИ. Интересует конкретно питон.
Подскажите, пожалуйста: 1) как править русификации модов - там специальная кодировка, как я понял (через блокнот выглядит как набор символов и цифр); 2) какой параметр отвечает за эпохи, в которых графика юнита (например генерала) меняется со средневековой на позднюю (хотелось бы сделать на эпоху позже).
самая простая программа, вот - http://sbgames.su/utility-dlya-moddinga-civilization-4/
здесь (cxt):
http://www.civfanatics.ru/threads/6790
и вот этот ничего (но он периодически сбивается):
http://www.civfanatics.ru/threads/7843
***
подтвердил группу мододелы, здесь описание хранилища файлов: http://www.civfanatics.ru/threads/10901
Я не знаю, каким оружием будет вестись Третья Мировая Война, но в Четвертой будут сражаться палками и камнями. (с) Альберт Эйнштейн
Сценарий исторического старта на Земле 1521 г. н. э. на 31 цивилизацию для мода RedForce
Подскажите, пожалуйста, можно ли как-то не сильно заморочными способами повлиять на склонность ИИ строить миссионеров в огромных количествах после основания какой-либо из религий. А то почти всегда получается, что одна из передовых цивилизаций ИИ основывает религию (а не будь она передовой, она не смогла бы первой открыть нужную технологию), после чего начинает строить практически одних миссионеров, в результате чего сильно отстает от остальных и в военном отношении, и научно, и вообще экономически. В итоге, ее довольно быстро захватывает какой-нибудь сосед, получая себе и территорию, и священный город. Вносит дисбаланс, да и вообще нелогично это. В CIV4UnitInfos есть строки iAIWeight и Flavors. Не совсем понятно, за что они отвечают. Возможно, как раз за это? Заранее спасибо.
Я не знаю, каким оружием будет вестись Третья Мировая Война, но в Четвертой будут сражаться палками и камнями. (с) Альберт Эйнштейн
Сценарий исторического старта на Земле 1521 г. н. э. на 31 цивилизацию для мода RedForce
Как добавить технологии государству посредством питона? Вернее, почему эта штука не желает работать? Попап в начале игры выплывает, остальные события данного файла работают, что свидетельствует о его правильности, как я полагаю. Вчд?
Может, следует задействовать еще какие-то файлы? Но какие, если это так?Код:# initialise player variables to player IDs from WBS iRome = 0 pRome = gc.getPlayer(iRome) teamRome = gc.getTeam(pRome.getTeam()) iGunpowder = CvUtil.findInfoTypeNum(gc.getTechInfo,gc.getNumTechInfos(),'TECH_GUNPOWDER') class NewTechs: def giveTech( self, iTech, iPlayer ): for iPlayer in range(gc.getMAX_PLAYERS()): pPlayer = gc.getPlayer(iPlayer) iteam = pPlayer.getTeam() TheTeam = gc.getTeam(iTeam) for iTech in range(gc.getNumTechInfos ()): TheTeam.setHasTech(iTech,True,iPlayer,False,False) def setup(self): # display welcome message self.displayWelcomePopup() def checkTurn(self, iGameTurn): ##techs if (iGameTurn == 2): teamRome.setHasTech(iGunpowder, True, iRome, False, False)
iAIWeight как раз и отвечает за склонность ИИ к созданию данного юнита. Таким образом, если укажешь значение 1 к хр.миссионеру, ИИ отдаст предпочтение ему. Еще в файле CIV4ReligionInfo.xml есть тэг iSpreadFactor, который отвечает за степень распространения той или иной религии, поменяв значение которого, ты получишь необходимый результат. То есть распространяться она будет не только посредством миссионера. Flavors вероятней всего, отвечает за предпочтения. То есть он связан с FlavorType из файла CIV4LeaderHeadInfos.xml. Привязывает данного юнита к определенному лидеру, у которого предпочтением является, например FLAVOR_RELIGION.
в целом правильно, но дьявол кроется в деталях)
в этом параметре проценты.. т.е. указывать надо 100, тогда ИИ будет строить в ДВА раза чаще.. да и.. это значение прибавляется к базовому, т.е. значение 50 - ИИ будет строить в 1,5 раза чаще..
чтобы ограничить... можно попробовать там поставить отрицательное значение, но я точно не помню..
попробуйте забить iAIWeight в поиск по форуму.. когда-то давно я отписывался по своим экспериментам с этим значениям..
питонистов у нас тоже почти не осталось... так, навскидку, а точно gc.getMAX_PLAYERS()?
и попробуй объявить переменные внутри функ... ммм... процедуры... класса.. как тут правильно то будет..
Есть аналогичный, только краткий код в моде ванильной цивы Desert War. При замене на этотпитонистов у нас тоже почти не осталось... так, навскидку, а точно gc.getMAX_PLAYERS()?
и попробуй объявить переменные внутри функ... ммм... процедуры... класса.. как тут правильно то будет..Поведение цивы не меняется.Код:def giveTech( self, iTech, iPlayer ): """Gives advance iTech to iPlayer.""" iTeam = gc.getPlayer(iPlayer).getTeam() gc.getTeam(iTeam).setHasTech(iTech, True, 0, False, False)
Большое спасибо. Но я так понимаю, это отвечает за приоритет строительства этих юнитов у всех цивилизаций? А с миссионерами проблема возникает только у тех, кто является основателем религии. Остальные же строят их в нормальном количестве. Как бы так сделать, чтобы основатели религии строили меньше миссионеров (но не перестали строить их вообще), а другие цивилизации продолжили строить столько же, сколько и раньше? Где-то ведь прописан этот повышенный приоритет на миссионеров у основателей религии, потому они и строят их так много.
Я не знаю, каким оружием будет вестись Третья Мировая Война, но в Четвертой будут сражаться палками и камнями. (с) Альберт Эйнштейн
Сценарий исторического старта на Земле 1521 г. н. э. на 31 цивилизацию для мода RedForce
Такой вопрос: в хмл игнорируются MIN_CITY_RANGE и AI_CAN_DISBAND_UNITS ИИ. Во втором случае ИИ финансовых проблем не испытывает, однако, по-прежднему продолжает удалять юниты, в то время, как у человека, играющего за появившуюся циву, таких проблем не возникает. Я так полагаю, за решением обеих проблем следует копать SDK? Если да, то где? Это очень необходимо для баланса. Век помнить буду!
MIN_CITY_RANGE точно не игнорируется, в том числе и для ИИ. Менял в GlobalDefines, все корректно работает. Про AI_CAN_DISBAND_UNITS не могу ничего сказать.
P.S. MIN_CITY_RANGE игнорируется для городов на других континентах / островах. Кстати, если кто знает, как это исправить, подскажите, пожалуйста. В принципе, это не так критично, но все же.
Я не знаю, каким оружием будет вестись Третья Мировая Война, но в Четвертой будут сражаться палками и камнями. (с) Альберт Эйнштейн
Сценарий исторического старта на Земле 1521 г. н. э. на 31 цивилизацию для мода RedForce
Snake_B
Альт. По поводу второго: решение нашлось, а вот насчет первого - неизвестно. Вернее он города строит рядом в значении 1, но только в крайних случаях, а не как в RFC. DLL у меня свой.
Эх... если б кто в питоне разбирался... пару вопросов накопилось. Довольно интересных.