swan
14.12.2006, 20:55
В данной теме вы можете писать все свои идеи по модификации цивы, которые нельзя сделать посредством редактора карт или изменения общих параметров в XML файлах (описание которых есть на Модиках (http://modiki.civfanatics.ru))
Гарантировать, что ваша идея будет осуществлена никто не может, но чем подробнее вы опишите как это должно работать - тем больше шансов на то, что её кто нить осуществит. По возможности старайтесь писать полный алгоритм действия вашей идеи.
Не надо писать что-то навроде:
"Хочу чтобы у каждой религии был свой уникальный бонус"
Вы должны расписать как и при каких условиях этот бонус должен работать и что он должен конкретно давать.
Если вы не знаете механику игры и поэтому не можете составить полный (или более-менее полный) алгоритм действия вашей идеи - постарайтесь хотя бы детально расписать принципы её действия, потому что штатных телепатов на форуме нет, а на то чтобы додумывать идею за кого то и много импровизировать при её осуществлении у многих из тех, кто может осуществить эту идею просто нет времени.
Далее приведен пример идеи и то как выглядит алгоритм её осуществления (этот алгоритм довольно подробный - желательно приводить ваши идеи именно в таком виде или хотябы близком к нему)
=====================================================================
Концепция:
Юниты имеющие высокий уровень опыта "обучают" юниты с малым количеством опыта (добавляют опыта) в городах с бараками.
Алгоритмы:
=====
Глобальное:
=====
1. Добавление к XML наук двух новых параметров:
А. <bAllowXPEducation>
B. <bAllowXPEducationAtWar>
2. Добавление к XML юнитов параметра <iXPEducationGoldCost>
=====
Игровое:
=====
Первичный алгоритм:
=====
1. При фокусировке на юните проверяется наличие True в параметрах <bAllowXPEducation> и <bAllowXPEducationAtWar>
1.1. Если оба параметра False - то skip function (далее просто "skip")
1.2. Если параметр известных наук <bAllowXPEducation> == True,
а параметр <bAllowXPEducationAtWar> == False - то идет проверка дипломатического состояния
на предмет ведения войны.
Если война идет хоть с одной мажоритарной нацией - skip
2. Проверяется параметр <iXPEducationGoldCost> для данного юнита
Если параметр <iXPEducationGoldCost> (с учетом множителя <iConstructPercent> из GameSpeedInfos.xml
для скорости игры) в 10 раз больше, чем наличность в казне - skip
Формула: (<iXPEducationGoldCost> * 10 * <iConstructPercent>)/100
3. Выполняется проверка места нахождения юнита.
2.1. Если юнит не в плоте города - skip
2.2. Если в городе, где находится юнит нет здания казарм - skip
4. Выполняется проверка XP у этого юнита
Если XP < 10 - skip
5. Выполняется проверка наличия других юнитов в данном плоте
Если юнитов не обнаружено - skip
6. Активируется кнопка "Провести военные учения" (для Human-Player'a)
7. Для АИ алгоритм нужно выстраивать по обстоятельствам (смотреть в СДК,
поскольку в патчах периодически он изменяется)
=====
Алгоритм генерации попапа "Доступные для прокачивания отряды":
=====
1. Генерируется попап с заголовком "Отряды, доступные для увеличения опыта" (TXT_KEY_XP_EDUCATION_POPUP_HEAD)
Тип попапа аналогичен типу, который возникает при присоединении великого генерала к юнитам
2. Пролистываются попорядку все юниты в данном плоте
2.1. Если у юнита количество XP больше чем (50% -1) от кол-ва XP у "учителя" -
- то пролистывается следущий юнит (далее просто "cont")
2.2. Если сумма <iXPEducationGoldCost> обоих отрядов больше суммы в казне - cont
2.3. В попап добавляется кнопка с названием юнита, его XP и стоимостью прокачки
3. В попап в конце добавляется кнопка "Отмена"
=====
Алгоритм обработчика события нажатия кнопки "Провести военные учения": (для Human Player'a)
=====
1. Появляется попап (навроде как с присоединением великого генерала к отрядам)
в попапе генерируется список доступных для обучения отрядов по алгоритму генерации попапа
"Доступные для прокачивания отряды".
2. Если нажата кнопка "Отмена" - попап закрывается (продолжение игры)
3. Если нажата одна из кнопок - то выбранному отряду добавляется %n XP
%n == :
%n.3.1. Если XP у отряда меньше чем (1/2 -2) то == 2
%n.3.2. Если XP у отряда больше чем (1/2 -2) то == 1
Формула: обр(XP1 / 2), где "обр" - число, у которого обрезаны цифры после точки (не округленное),
XP1 - XP у "учителя"
4. Movement у отряда "учителя" и обучаемого отряда обнуляется.
5. Из казны снимается стоимость проведения учений.
6. Вываливается игровое сообщение с текстом:
"Отряд %s1 получил %d2 опыта в результате проведенных учений с отрядом %s3"
Конец алгоритма.
PS идея приведенная к алгоритму подобного вида легко осуществима, читаема и соответственно ЛЕГКО ИСПОЛНИМА, поскольку не нужно много импровизировать и выискивать, у чего откуда что должно быть.
PPS Также приглашаются программисты, желающие и могущие осуществить одну из таких идей. Техническую поддержку по осуществлению подобных идей по возможности будем предоставлять. Также можем предоставить место на сайте под готовый продукт по осуществлению одной из подобных идей или ваш мод
Гарантировать, что ваша идея будет осуществлена никто не может, но чем подробнее вы опишите как это должно работать - тем больше шансов на то, что её кто нить осуществит. По возможности старайтесь писать полный алгоритм действия вашей идеи.
Не надо писать что-то навроде:
"Хочу чтобы у каждой религии был свой уникальный бонус"
Вы должны расписать как и при каких условиях этот бонус должен работать и что он должен конкретно давать.
Если вы не знаете механику игры и поэтому не можете составить полный (или более-менее полный) алгоритм действия вашей идеи - постарайтесь хотя бы детально расписать принципы её действия, потому что штатных телепатов на форуме нет, а на то чтобы додумывать идею за кого то и много импровизировать при её осуществлении у многих из тех, кто может осуществить эту идею просто нет времени.
Далее приведен пример идеи и то как выглядит алгоритм её осуществления (этот алгоритм довольно подробный - желательно приводить ваши идеи именно в таком виде или хотябы близком к нему)
=====================================================================
Концепция:
Юниты имеющие высокий уровень опыта "обучают" юниты с малым количеством опыта (добавляют опыта) в городах с бараками.
Алгоритмы:
=====
Глобальное:
=====
1. Добавление к XML наук двух новых параметров:
А. <bAllowXPEducation>
B. <bAllowXPEducationAtWar>
2. Добавление к XML юнитов параметра <iXPEducationGoldCost>
=====
Игровое:
=====
Первичный алгоритм:
=====
1. При фокусировке на юните проверяется наличие True в параметрах <bAllowXPEducation> и <bAllowXPEducationAtWar>
1.1. Если оба параметра False - то skip function (далее просто "skip")
1.2. Если параметр известных наук <bAllowXPEducation> == True,
а параметр <bAllowXPEducationAtWar> == False - то идет проверка дипломатического состояния
на предмет ведения войны.
Если война идет хоть с одной мажоритарной нацией - skip
2. Проверяется параметр <iXPEducationGoldCost> для данного юнита
Если параметр <iXPEducationGoldCost> (с учетом множителя <iConstructPercent> из GameSpeedInfos.xml
для скорости игры) в 10 раз больше, чем наличность в казне - skip
Формула: (<iXPEducationGoldCost> * 10 * <iConstructPercent>)/100
3. Выполняется проверка места нахождения юнита.
2.1. Если юнит не в плоте города - skip
2.2. Если в городе, где находится юнит нет здания казарм - skip
4. Выполняется проверка XP у этого юнита
Если XP < 10 - skip
5. Выполняется проверка наличия других юнитов в данном плоте
Если юнитов не обнаружено - skip
6. Активируется кнопка "Провести военные учения" (для Human-Player'a)
7. Для АИ алгоритм нужно выстраивать по обстоятельствам (смотреть в СДК,
поскольку в патчах периодически он изменяется)
=====
Алгоритм генерации попапа "Доступные для прокачивания отряды":
=====
1. Генерируется попап с заголовком "Отряды, доступные для увеличения опыта" (TXT_KEY_XP_EDUCATION_POPUP_HEAD)
Тип попапа аналогичен типу, который возникает при присоединении великого генерала к юнитам
2. Пролистываются попорядку все юниты в данном плоте
2.1. Если у юнита количество XP больше чем (50% -1) от кол-ва XP у "учителя" -
- то пролистывается следущий юнит (далее просто "cont")
2.2. Если сумма <iXPEducationGoldCost> обоих отрядов больше суммы в казне - cont
2.3. В попап добавляется кнопка с названием юнита, его XP и стоимостью прокачки
3. В попап в конце добавляется кнопка "Отмена"
=====
Алгоритм обработчика события нажатия кнопки "Провести военные учения": (для Human Player'a)
=====
1. Появляется попап (навроде как с присоединением великого генерала к отрядам)
в попапе генерируется список доступных для обучения отрядов по алгоритму генерации попапа
"Доступные для прокачивания отряды".
2. Если нажата кнопка "Отмена" - попап закрывается (продолжение игры)
3. Если нажата одна из кнопок - то выбранному отряду добавляется %n XP
%n == :
%n.3.1. Если XP у отряда меньше чем (1/2 -2) то == 2
%n.3.2. Если XP у отряда больше чем (1/2 -2) то == 1
Формула: обр(XP1 / 2), где "обр" - число, у которого обрезаны цифры после точки (не округленное),
XP1 - XP у "учителя"
4. Movement у отряда "учителя" и обучаемого отряда обнуляется.
5. Из казны снимается стоимость проведения учений.
6. Вываливается игровое сообщение с текстом:
"Отряд %s1 получил %d2 опыта в результате проведенных учений с отрядом %s3"
Конец алгоритма.
PS идея приведенная к алгоритму подобного вида легко осуществима, читаема и соответственно ЛЕГКО ИСПОЛНИМА, поскольку не нужно много импровизировать и выискивать, у чего откуда что должно быть.
PPS Также приглашаются программисты, желающие и могущие осуществить одну из таких идей. Техническую поддержку по осуществлению подобных идей по возможности будем предоставлять. Также можем предоставить место на сайте под готовый продукт по осуществлению одной из подобных идей или ваш мод