EC2 - разработка игры
Мастерская Steam - мои моды для Civilization V
Last Citadel - сайт игроков Warlords III
Господа! Требуется ваша помощь. Перед выкладыванием новой версии в стим, хотел бы убедиться что русская версия будет работать корректно.
У кого установлен русский язык в игре - попробуйте запустить мод, нормально ли там будет все отображаться.
Должны быть две новые строчки в окне города ("счастье" и "процветание") слева вверху, где еда, продукция и т.д.
Также если поиграете подольше будут происходить миграции, обозначаемые такими же значками какими обозначается прирост и убыль населения. Во всплывающих подсказках к ним также интересует правильность отображения текста.
Вот файл:
Emigration (v 5).zip
в архиве файл мода, кладете его в мои документы\my games\civilization v\mods, запускаете игру, идете в моды, нажимаете "установить", ставите галочку на эмиграцию, далее, сингл плеер.. играете.
Спасибо!
EC2 - разработка игры
Мастерская Steam - мои моды для Civilization V
Last Citadel - сайт игроков Warlords III
EC2 - разработка игры
Мастерская Steam - мои моды для Civilization V
Last Citadel - сайт игроков Warlords III
кто нибудь,
попробуйте еще раз, пожалуйста
Emigration (v 5).zip
EC2 - разработка игры
Мастерская Steam - мои моды для Civilization V
Last Citadel - сайт игроков Warlords III
Надписи появились
Doc1.zip
Всё нормально?
Отличная идея, да, давно такого хотел. Жаль, что в Цив5 только сделали.
Там по-прежнему эмиграция не зависит от расстояния до городов? А новые поселения мигранты не могут создать?
И что ж получается: если взять навалу варваров на культурную страну - то те же монголо-татары должны были перебегать в Киевскую Русь, а не захватывать ее?
EC2 - разработка игры
Мастерская Steam - мои моды для Civilization V
Last Citadel - сайт игроков Warlords III
EC2 - разработка игры
Мастерская Steam - мои моды для Civilization V
Last Citadel - сайт игроков Warlords III
В аддоне этот пункт потеряет свою актуальность - статуя свободы и некоторые другие чуды будут привязаны к определенным идеологиям. А во всемирном конгрессе можно будет выбрать "Мировую идеологию". Вдруг мировой идеологией станет не "Свобода", а какая-то другая идеология? Аналогично и с религиями - можно будет выбирать "Мировую религию". Вместе с миграцией населения, думаю стоит будет и миграцию религии этого населения вводить. Не станут же католики мусульманами или буддисты православными от того, что поменяли место жительства...статуе свободы добавлена дополнительная функция - она приманивает иммигрантов. при выборе пункта назначения они скорее выберут ваш город чем такой же (по производительности и счастью) город в другой стране, если у вас есть статуя свободы. естественно статуя не отменяет того факта что ваши города должны быть богаты и счастливы, чтобы люди хотели туда ехать.
Кстати, в аддоне будет ещё и туризм - это тоже может сильно повлиять - в разных городах разные показатели туризма могут быть
Так-что коэффициенты там сильно править придется
Peter, а вы бы не хотели выпустить следующую версию вашей модификации? Было бы неплохо, чтобы мигрант забирал религию родного города, в данный же момент он переселяется атеистом. Например сейчас, когда Европа подвержена потоку переселенцев с Ближнего Востока, в ней самой становится больше мусульман в процентах от общего числа граждан.
Я тут немного доработал скрипт
1) Мигрант забирает с собой процентное соотношение религий, которые были в его родном городе (это в игре гражданин 1 штука, а в жизни это были бы представители разных конфессий, будем считать, что их переселяется равное количество в одном жителе). Если в родном городе из 5 жителей было 5 буддистов, значит мигрант будет состоять из 100% буддистов. Ещё пример, допустим в родном городе мигранта из 12 жителей было 3 православных, 3 мусульманина, 3 индуиста и 3 атеиста, значит мигрант будет состоять из 4 частей по 25%, три из них - религии. Пантеон тоже считается религией.
2) Далее мигрант приехал в новый город и растворяется среди местных обитателей, привнося новые или укрепляя уже имеющиеся религии. Причём учитывается, сколько % занимает он сам среди жителей. Это значит, что если мигрант на 100% состоял из буддистов, значит в городе сразу появится на 1 буддиста больше, если же мигрант состоял из нескольких религий, то эффекта сразу можно не увидеть, но проценты запомнятся и проявятся позже.
3) Движок игры проценты воспримет сразу, но пересчитает кол-во последователей через 1-2 хода, во всяком случае в редакторе показывало так. Дело в том, что увеличить кол-во последователей сразу невозможно, можно только конвертировать одну религию за счёт другой в процентах. Но мой алгоритм всё пересчитывает.
*Но нужно помнить, что религиозное давление извне никуда не исчезает, и соотношение религий может с течением ходов меняться, это механика игры.
Также я считаю нужно сделать минимальное кол-во жителей в городе, при которых возможен отъезд из города. Дело в том, что новые города в Современности появляются с 3 жителями, и получается сразу будут подвержены миграции, хотя в них ещё даже ничего нет. Я думаю надо дать шанс игроку немного развить город, да и граждане мгновенно не могут стать недовольными. К тому же, абсолютно все не могут уехать, так в жизни не бывает. Миграция не должна привести к тому, что все уехали и в городе нельзя ничего построить практически. Мало ли какие ситуации бывают, параметр поставить надо.
Мои настройки в EmigrationSettings.xml, М - модификатор, Д - дальность в клетках:
Древний мир: М - 5, Д - 5
Античность: М - 15, Д - 10
Средневековье: М - 20, Д - 15
Новое время: М - 25, Д - 30
Эпоха Просвещения: М - 30, Д - 45
Новейшее время: М - 50, Д - 60
Современность: М - 75, Д - 90
Эпоха Атома: М - 90, Д - 130
Информационный век: М - 100, Д -170
Будущее: М - 100, Д - 250
Хотелось бы видеть зависимость дальности от размера карты, сейчас прописано жёстко.
Есть также период, через который происходит изменение, уедет гражданин, не уедет, или просто ничего не произойдёт. Я считаю, переселение не должно быть бешеным, а мягким, поднял уставку с 12 до 18 на средней скорости.
Прежде чем поделюсь скриптом, предлагаю обсудить сообществу какие параметры вы считаете оптимальными:
1) Минимальное кол-во граждан в городе, при которых возможен отъезд. Пока поставил 4, при 3 ещё не уезжают. Думаю можно поставить и 5-6.
2) Модификаторы по эпохам и дальность миграции.
3) Период миграции в ходах на средней скорости.
Последний раз редактировалось Tomahawk; 02.03.2016 в 18:55.
Tomahawk's Collection for Civilization V - сборник модификаций. Качественный перевод и совместимость между собой.
R.E.D. World War II - масштабный сценарий Второй мировой войны.
Война Судного дня - сценарий войны на Ближнем Востоке, произошедшей в 1973 году.
1. отъезд из малых городов регулируется модификатором локального счастья. чем важнее локальное счастье, тем больший штраф к процветанию получают большие города. также влияет форма зависимости от продуктивности. там вроде логарифмическая формула, через коэффициенты можно регулировать крутизну функции. в общем имхо лучше с этими параметрами играть чем вводить новые.
2. тут я не в курсе, мало играл с модом и не на всех картах. скажу что сильно ограничивать миграцию для ранних эр я бы не стал т.к. большая часть игры проходит в них, а до поздних редко кто доигрывает и там уже все решено практически, так что какой смысл делать механику которая ни на что особо не влияет. зависимость дистанции от размера карты можно сделать, например не в тайлах задавать а в % от длины диагонали
3. тут тоже игрокам виднее. мне казалось 12 ходов вполне достаточно чтобы принять меры.
насчет религий, интересное дополнение но можно ли его сделать в lua или потребуется sdk?
эмигрируют часто представители меньшинств, возможно эмигрант должен переносить 100 очков одной из религий представленных в городе включая атеистов. хорошо бы при этом в исходном городе убавить соотв религию на эти 100 очков.
EC2 - разработка игры
Мастерская Steam - мои моды для Civilization V
Last Citadel - сайт игроков Warlords III
Хорошая идея, доработаете?
Уже сделал ) заняло в lua около 30 строк кода всего, оставил подробные комментарии. Скину вам в личку через пару часов. Отладочная информация пишется в lua.log через print. Работоспособность проверил через InGame Editor, специально сидел ситуации эмулировал, чтобы математику проверить.
Надо определиться как должно происходить. По сути было недовольно всё население родного города мигранта, поэтому я и считаю, что уезжают "все в 1 жителе", этот 1 житель состоит из процентного соотношения всех религий в городе, из которого уезжает. Можно сделать, чтобы из жителей уехал только 1 буддист или 1 православный, но нужно ли?
Tomahawk's Collection for Civilization V - сборник модификаций. Качественный перевод и совместимость между собой.
R.E.D. World War II - масштабный сценарий Второй мировой войны.
Война Судного дня - сценарий войны на Ближнем Востоке, произошедшей в 1973 году.
интересно, я с выходом gnk смотрел какие функции доступны в lua и возможности изменять pressure там не было
если эмигрант берет фиксированное число очков, логичнее выбрать какую-то одну религию
если относительное - то можно брать все
во втором случае есть опасность что эффект будет слишком сильным, например к вам приехал кто-то из чужого святого города. он может сразу ваш город обратить.
на моддинг пока времени нет, попозже может займусь
но скрипт интересно будет посмотреть
если выпускать шестую версию, у меня есть еще идея добавить фракцию варваров, чтобы несчастные бежали к ним, если других подходящих направлений нет. это могло бы просто добавлять юнит рядом с лагерем или создавать варварский город. второе, кажется, интереснее. хотя может вести к эксплоитам.
EC2 - разработка игры
Мастерская Steam - мои моды для Civilization V
Last Citadel - сайт игроков Warlords III
Скрипт скинул. Значит смотрите, Firaxis дала нам только 2 функции для работы, это int GetNumFollowers(ReligionType religion) и ConvertPercentFollowers(ReligionType arg0, ReligionType arg1, int arg2)
http://modiki.civfanatics.com/index....ty_(Civ5_Type)
В первой мы смотрим сколько последователей есть в городе в штуках, как это видят игроки. Вторая функция более хитрая, в ней мы можем указать сколько процентов одной религии преобразовать в другую (обратить). Другого не дано. То есть тут всегда "одна за счёт другой".
Да, как раз так и происходит, он берёт процентное соотношение религий в одном себе. Это тоже самое как потом добавить в новом городе 0.5 последователя индуиста и 0.5 сикха, если в родном городе было 50% последователей индуизма и 50% последователей сикхизма.
Нет, он не сможет изменить кол-во последователей больше, чем на 1 ) Не важно откуда переезжает, из простого города или священного.
Я бы не рисковал. Мало ли как это отразится на других модах с варварами, сейчас народ предпочитает использовать Barbarian Evolved, например. По мне, если некуда ехать, значит альтернатив нет, везде всё плохо, посидим тогда дома ))
P.S. ID религий посмотрите тут, понадобится чтобы разобраться в логе.
Tomahawk's Collection for Civilization V - сборник модификаций. Качественный перевод и совместимость между собой.
R.E.D. World War II - масштабный сценарий Второй мировой войны.
Война Судного дня - сценарий войны на Ближнем Востоке, произошедшей в 1973 году.
ваш скрипт конвертирует атеистов в целевом городе во все религии исходного
этот подход порождает множество проблем
во-первых он основан на том, что SetPopulation увеличивает число атеистов. Вы уверены в этом?
беглый взгляд в исходник такого механизма не выявил:
https://github.com/Gedemon/Civ5-DLL/...DLL/CvCity.cpp
во-вторых, давление атеизма в произвольно взятом городе может быть любым, от 100 до нескольких тысяч.
например город размера 10 может иметь от 100 до 1000 очков атеизма.
поэтому воздействие миграции будет непредсказуемым, от ничтожного до очень сильного, если он скажем 900 очков атеизма конвертнет в какую-то другую религию. или если там было всего 100 атеизма, и чел прибыл из города 10 размера, он обратит только 10 очков. будет лучше если эффект миграции будет легко пресказуемым.
я предлагаю для простоты выбирать какую-то одну религию из домашнего города и создавать одного последователя в городе назначения. это будет наглядно для игрока.
напр.
а) приехал буддист в город размера 9, 900 очков атеизма: обращаем 1/(1+9) в буддизм, в итоге будет 1 буддист и 9 атеистов
б) приехал буддист в город размера 9, 500 очков атеизма и 1000 индуизма (3 атеиста, 6 индуистов), конвертируем 50 из атеизма в буддизм и 100 из индуизма в буддизм, получаем 450 атеизма, 900 индуизма, 150 буддизма (3 атеиста, 6 индуистов, 1 буддист).
EC2 - разработка игры
Мастерская Steam - мои моды для Civilization V
Last Citadel - сайт игроков Warlords III
Я уверен, что написанный код работает правильно. Можете проверить ситуацию с Ingame Editor (v 39), я сам проделал это несколько раз.
Что известно: 1) религия в городах хранится в процентах, а не очках, потому что после изменения процентного соотношения с помощью ConvertPercentFollowers, меняется и кол-во последователей потом. 2) Кол-во последователей изменяется самой игрой через 1-2 хода после изменения процентов. Я думаю это связано с тем, что во время хода игра пересчитывает показатели во всех городах, она смотрит на проценты и отображает последователей. Миссионеры меняют последователей мгновенно, потому что видимо вызывают эту функция немедленно. Вы упомянули религиозное давление, по нему игра узнаёт сколько процентов в этот ход ей нужно преобразовать за счёт других религий. Больше давления - быстрее обращение произойдёт. Предположу, что "очки" участвуют в этом процессе.
По вашей ссылке по исходнику в функции void CvCity::setPopulation(int iNewValue, bool bReassignPop /* = true */) нет упоминания религии вообще. Значит она меняется где-то в другом месте, правильно? Приехавший житель в этот ход пока ещё атеист. Пересчёт произойдёт позже.
Последний раз редактировалось Tomahawk; 05.03.2016 в 18:24.
Tomahawk's Collection for Civilization V - сборник модификаций. Качественный перевод и совместимость между собой.
R.E.D. World War II - масштабный сценарий Второй мировой войны.
Война Судного дня - сценарий войны на Ближнем Востоке, произошедшей в 1973 году.