<div class='quotetop'>Цитата(NeseryozniyVET * 30.4.2010, 0:50) [snapback]334728[/snapback]</div>Спасибо, попробую этот вариант...Во-первых, изменения надо делать только в трех файлах SDK: CvInfos.h CvInfos.cpp и CvCity.cpp. В остальных файлах изменения надо удалить.
Во-вторых, замени в указаных строчках (там где ошибки) getSpecialBuilding() на getSpecialBuildingType()
[/b]
Поскольку возникли вопросы, то объясняю основную идею подробнее.
Исходные данные.
1. Расположение всех зданий в городе строго привязано к определенным местам.
2. На каждом месте может быть построено только одно здание.
3. Если это здание не построено, то данное место остается пустым (Пример: нет нужного ресурса, поэтому нет смысла строить здание. Как вариант: город на острове из одной клетки, вокруг только вода. Строить здания по производству сигар, рома и т.д. бессмысленно, ресурсов все равно нет).
4. Возможности расположить здания плотнее друг к другу путем уменьшения их размеров на экране и пр. крайне ограничены. Выигрыш дает лишь 25% увеличение количество построек, да и то за счет ухудшения графики.
Предлагаемый вариант решения:
1. Введение четкой специализации городов: обычный город, город-крепость, и т.д. Вариантов может быть масса в зависимости от выбранной эпохи и воображения игрока. Можно даже город-курорт строить по типу Тропико.
2. На каждой клетке города можно строить лишь одно из зданий, но выбирать можно из нескольких вариантов. Для этого нескольким зданиям задаются одни и те же координаты на экране. Но построив первое здание, другого уже на этом же месте построить нельзя.
3. Проблема пустых (незанятых постройками) мест в городе решается, поскольку строить можно то, что необходимо исходя из специализации города, доступных ресурсов и т.д.
4. По этой же причине отпадает и проблемы с количеством зданий и постройкой новых зданий.
Собственно для этого и ведется поиск решения, как на одном месте в городе строить лишь одно из нескольких возможных зданий, после возведения которого дальнейшее строительство именно на этом месте чего-то иного было бы невозможно. Построенное здание можно лишь улучшать.
<div class='quotetop'>Цитата(Snake_B * 29.4.2010, 12:56) [snapback]334646[/snapback]</div><div class='quotetop'>Цитата(kabjans * 28.4.2010, 9:37) [snapback]334515[/snapback]эм... линейки должны пересекаться или нет?Но решение необходимо не только для первого здания, а для всех построек в городе.
Весь набор зданий - тех уже есть в оригинальной колонизации, и тех, что я буду вводить в моде - можно будет условно разделить на "городскую" и "крепостную" инфраструктуры. То есть каждой паре зданий прописать одни и те же координаты в CvMainInterface.py, а по ходу игры уже решать, что конкретно строить. Если в окрестностях города нет к примеру табака, то это место можно смело занимать например оружейной мастерской или чем-то другим. Сейчас же это место вообще пустует или если здание все же построено (зачем только?), то ничего не производит.
Предлагаемые изменения дают как минимум (!) двухкратное увеличение площадей под строительство. А следовательно намного более интересную инфраструктуру можно создать на городском или крепостном экранах.[/b]
т.е. если мы строим крепость, то мы можем построить в ней только "крепостные" здания или для каждого здания выбор идёт отдельно, независимо от первого здания?[/b][/quote]
- Линейки пересекаться могут лишь по второстепенным зданиям, типа кузницы и др. Основное направление развития города определяется первым специализированным зданием (либо административное, либо военное, либо религиозное, если строится религиозный центр).
- Тут зависит как прописать координаты. В принципе выбор зданий должен быть одинаков для всех типов поселений. Но вполне разумно вводить ограничения. К примеру если это город-крепость, по супер-церковь там строить наверное нет смысла. Достаточно часовни. А вот вокруг города-монастыря с супер-церковью в центре крепостных стен быть не должно.
<div class='quotetop'>Цитата(Snake_B * 29.4.2010, 12:56) [snapback]334646[/snapback]</div>Я держу на заметке твое предложение о национальных чудесах. Их в Колонизации нет. Если не получится тем путем, как идем сейчас, то можно попробовать решить проблему через чудеса. Их, кстати и независимо было бы интересно ввести в игру. Нужно лишь подумать какие именно, в каком виде и что конкретно они могли бы дать. С другой стороны эти же Дворец генерал-губернатора, Морскую Академию или Национальный Банк можно вполне построить по существующим линейкам зданий. Введения нац.чудес тут не требуется.в колонизации вообще есть национальные чудеса? тут в низ всё упирается, если они есть как здания, то так делать не стоит, если их нет, но тэги для них прописаны, то можно сделать...[/b]
<div class='quotetop'>Цитата(Snake_B * 29.4.2010, 12:56) [snapback]334646[/snapback]</div><div class='quotetop'>Цитата(kabjans * 28.4.2010, 9:37) [snapback]334515[/snapback]и как?Но как обойти проблему первого здания я в принципе решил.
[/b]
[/b][/quote]
Высадка колонистов происходит на пустой берег. На следующий ход идет закладка поселения. Единственным зданием в котором будет к примеру "палатка". Затем несколько вариантов развития, где для строительства простейшего административного здания или простейшей башки нужно наличие этой самой "палатки". Если вместо нее строится простейшее административное здание, то далее развитие идет по обычной схеме города. Если вместо палатки строится простейшая башня, то развитие идет по линии города-крепости. То есть как пройти начальную точку в принципе понятно. Осталось сделать второй шаг, а именно ввести запрет на многократное строительство на одном месте многих зданий.
<div class='quotetop'>Цитата(Хальк Юсдаль * 29.4.2010, 18:08) [snapback]334690[/snapback]</div><div class='quotetop'>ЦитатаТогда уже я чего-то не понимаю, ведь если здание на том месте не построено, на другом его уже не построишь, так вроде должно быть?Все верно. Как раз этот момент особых проблем не вызывает. Тут можно просто обойтись элементарным требование: апгрейд здания типа А требует наличия в городе простейшего здания типа А. Я такое уже делал в намного более сложных комбинациях. Все выполняется простым редактированием одного единственного CIV4BuildingInfos.xml файла. Здесь же задачка посложнее. Надо запретить строительство второго здания, если на этом месте в городе уже построено первое.[/b]
[/b][/quote]
Да, так.
<div class='quotetop'>Цитата(Хальк Юсдаль * 29.4.2010, 18:08) [snapback]334690[/snapback]</div>Вот именно это и необходимо сделать. Но этот тэг надо правильно прописать в исходных кодах, чтобы он заработал. Пока же у меня одно здание строится поверх другого. В этом и есть основная загвоздка.Тогда почему бы не модифицировать уже имеющиеся условия постройки, так чтобы нельзя было построить здание B, если уже имеется простейшее здание типа А? Ну и вынести это в CIV4BuildingInfos.xml ещё одним тегом.
[/b]




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