Как открыть все фракции в атилла тотал вар

Обновлено: 05.07.2024



Я сделал мод , добавляя все доступные фракции в Гранд кампании и населяющих все пустынные регионы.

WRE и ERE разбиты на более мелкие фракции, Migrators установлены вниз, сепаратисты добавил здесь и там, изменили некоторые начиная дипломатических отношений, армии добавил , где им нужно, все фракции теперь есть 2+ символов, 12TPY.


По словам автора каждый месяц будут добавляться 4 фракции ( скорее всего в течении месяца). Будет производится правка баланса, у каждой фракции будут свои архитектурные сооружения, армии и присутствовать стартовые заставки. С каждым обновлением будут выявляться и устранятся существующие ошибки.

Подробнее о каждом обновлении я буду рассказывать в первом комментарии под статьей.

Как же производится установка обновлений? ↓↓↓ Смотрим ↓↓↓

Сообщество Империал: Открытие всех фракций и 2-3-4-6-12 ходов в год - Сообщество Империал

Imperial

Описание: мод открывает все фракции в компании, в пользовательских и случайных сражениях. Также есть возможность изменить количество ходов в год.

Время строительства и изучения технологий в этом моде считается за ход (а не за год). Время строительства и изучения технологий не увеличено (как в Магнар моде).

Подробное описание мода, требует перевода. (раскрыть)

Playable Factions and Custom Battle

For steam workship, I will only have upload two files: one turn/year version of all_playable_factions.pack and all_factions_playable_gft.pack. The links to them in the download section.

Finally, I would like the thank Osbot for telling me how to get victory condition. I like to thank Blackie42 for starting the conversion and figuring the work.

Playable Factions
ALL

Custom Battle Playable Factions
ALL

Custom Faction Description and Traits (раскрыть)

Aedui
Aestii
Anartes
Arevaci
Armenia
Bactria
Boii
Catiaroi
Etruscan League
Frisii
Rhodos
Sagartia
Sardes
Scythia
Sequani
Siraces
Thyssagetae
Trapezos
Treverii
Triballi
Turdetani
Tylis
Veneti
Vivisci
Volcae
Axum
Ardiaei
Atrebartes
Meroe
Aorsoi
Arachosia
Ardhan
Aria
Bastarnae
Syracuse
Budini
Roxolani
Massagetae
Dahae
Khorasmii
Bastarnae
Biephi
Bythinia
Boii
Cherusci
Lusitani
Blemmyes
Helvetii
Rugii
Saba
Massilia

a. Persia flag in factions_table was set to False - True now
b. Turn off slave ( I can add it back in if someone wants it)
c. Etruscan has a roster now, I goofed in my little csv creation script

(faction traits) - all_factions_playable.pack
(Generic faction trait) - all_factions_playable_gft.pack
(No faction traits) - all_factions_playable_nft.pack

Generic Effects Added to ALL Factions
-Homefront Defense: 10% Morale when defending
-Taxation: 5% wealth boost from able administrators
-Melee Defense: 10% Melee Defence for all infantry units
16.Apparently there is another update to the beta again, so here we go again. No more rar files, we are back to the zip files only. Massilia has a faction trait now. Again there is three pack files(Factions traits, generic Faction traits, and no traits) to choose one from. When Beta flips to a live patch, we are going to stop updating the no Faction traits (all_factions_playable_nft.pack) and only go on with two.

(faction traits) - all_factions_playable.pack
(Generic faction trait) - all_factions_playable_gft.pack
(No faction traits) - all_factions_playable_nft.pack

Generic Effects Added to ALL Factions
-Homefront Defense: 10% Morale when defending
-Taxation: 5% wealth boost from able administrators
-Melee Defense: 10% Melee Defence for all infantry units
17.Another update by CA - Patch 4. TG updated the startpos.esf, mod to FULL Patch 4, Punic Colonies Fixed as a faction group, and some recruitment effect fixes. Knossos, Galatia, Nabatea has been added to the list of faction traits and descirptions. TG also moved a few faction to different groups here is the list. The updated links to startpos.esf zip file, all_factions_playable.zip, and all_factions_playable_gft.zip are down below. We have got rid of the all_playable_factions_nft.zip.
Anartes from Germanic to Celtic
Arevaci from Gallic to Celtiberian
Budini from Germanic to Nomadic
Cimmeria from Eastern to Greek
Khorasmii from Eastern to Nomadic
Nabatea from African to Arabian

Generic Factions Traits as follow
-Taxation: 2% wealth boost from able administrators
-Homefront Defense: 5% Morale when defending
-Melee Defense: 5% Melee Defence for all infantry units

3. You click on "New Campaign" and you only see the vanilla factions. Next you check "Custom Battles" and only see the vanilla factions. Basically both the startpos.esf and all_playable_factions.pack are not in the correct location or not enabled. Please go back to the install notes.


Q. I cant see Sparta or Athena, I want to play them.
A. You have to have Greek States DLC to play them. Technically speaking they are already enable in the db files, unless you have the DLC the game will not list them in the selection screen. With new DLC coming out, you will need to buy them to play specific factions, some of the nomadic tribes(paid) and Seleucid(free) is coming up next.

Q. What happen to Scythia, Roxolani, and Massagetae?
A. You must purchase the Nomadic DLC to play them now. Technically speaking they are already enable in the db files, unless you have the DLC the game will not list them in the selection screen.

DOWNLOAD LINKS

STEAM LINKS
Playable Factions with new Factions Traits(1turn/year) -> Для просмотра ссылки Зарегистрируйтесь
OR
Playable Factions with generic Factions Traits(1turn/year) -> Для просмотра ссылки Зарегистрируйтесь

MOD PACKS PATCH 5
Playable Factions with new Factions Traits -> Для просмотра ссылки Зарегистрируйтесь
OR
Playable Factions with generic Factions Traits -> Для просмотра ссылки Зарегистрируйтесь

Сообщество Империал: Важная информация по моддингу Total War: Attila - Сообщество Империал

Imperial

ПС Кто использует более раннюю

(о которой я упоминал в статьях), эту новую закидывайте в папку с игрой и программа автоматически распознает нужный путь (по крайне мере у меня так сработало).

Imperial

Только на переходе хода вылет. но это понятное дело, так и должно быть.

может найдутся и еще какие элементы

Imperial

еще нужно в campaign_model/human_factions проставить номер новой играбельной фракции. как я понимаю, это номер блока players_array+1 или же номер этот находится в первой строке титульной закладки конкретной фракции:

Imperial

Imperial

Заметил одну вАжную вещь на счёт скоупов (областей применения):
Если в одной таблице прописать две строки с одинаковым эффектом (например, для технологии), но выставить разную область применения (скоуп), то эффект будет работать в двух областях применения (скоупах).

Продолжая цитату: но информация будет видна только об одной строке. Проблема в локализации: ибо один и тот же эффект в обоих строках. У скоупов тоже есть локализация, поэтому вывод инфы от двух скоупов одновременно для одного эффекта невозможен. При этом значения из двух строк суммируются и вводят в заблуждение.

Чтобы информация выводилась адекватно, СА сделали несколько идентичных скоупов с разными локализациями или вообще без локализации (скрытые).
1. general_to_force_own
2. general_to_force_own_horde
3. general_to_force_own_unseen
Например: это три скоупа-клона, у которых одно и то же назначение "персонаж при командовании армией". Разница только в локализации.
Первый выводит на экран "(подчинённые войска)", второй "(подчинённая орда)", третий без локализации.

А так же, СА сделали клоны эффектов.
Например для генеральского скила "Ворон" используются два идентичных эффекта с разными скоупами.
1. att_effect_building_construction_cost_mod
2. att_effect_force_building_cost_mod
"Ворон", это варварский скил, а ведь варварская фракция может быть сейчас ордой, а на следующем ходу стать оседлой. И, чтобы показать, что скил "Ворон" снижает цену строительства в обоих случаях, СА и сделали клон эффекта. И мы, благодаря этому, видим, что "Ворон" снижает цену строительства как при командовании ордой, так и во вверенной провинции.

Вот такие финты ради того, чтобы адекватно вывести инфу на экран об эффектах и скоупах. И вот такие ошибки, если это не учитывать.

Imperial

Похоже, что при создании файла старпос в АкиТе учитываются правки, сделанные только в таблицах старпос. Другие таблицы по боку, к сожалению.

В результате, например, через АкиТ мы не сможем создать новую играбельную фракцию. А придётся вручную копаться в готовом старпос.
Или другой пример: не сможем изменить группу имён или группу портретов для тех генералов, которые будут в старпос. Это опять придётся делать потом, вручную.

Акит - сволочь такая )))

Imperial

Как делать трейты

Работа с трейтами распадается на два блока: работа с таблицами в ПФМе для создания трейта и работа в ПФМе со скриптами для редактирования/создания триггера (это набор условий, при котором происходит проверка на получение трейта).
Нужна ли нам будет вторая часть, если мы используем ванильный триггер? Толком протестировать я это не
смог, но думаю, что да - всё равно придётся дописывать кое-что в скриптах.
Замечу, что также нет смысла приниматься за дело без АКита, поскольку жизненно важная таблица trait_triggers (нужная не для создания трейта как такового, но для получения информации о триггере) в ПФМе просто недоступна.
Я опишу полный цикл создания трейта, включая создание нового триггера. Думаю, после этого работа со старыми трейтами и триггера станет понятна и так.

Итак, вот полный перечень задействованных таблиц:
character_traits
trait_info
trait_to_included_agents
trait_to_antitraits
character_trait_levels
trait_level_effects
trigger_effects

В character_traits создаётся именно трейт, названия колонок в общем и целом понятны. Обращает на себя внимание no_going_back_level. Видимо, именно это имел в виду rawhide. Я с этим, по крайней мере, не экспериментировал. Остаётся загадкой колонка precedence. Никакого влияния от её параметров я не заметил. Короче говоря, ставьте, как в ванили.

Далее прописывается техническая оснастка трейта. В trait_info выдаётся общая цель трейта. В игре это только agent. Хотя есть опции region и unit (остаётся только гадать, как это выглядит на практике). В trait_to_included_agents задаётся конкретная цель трейта - генерал, жрец и т.д. Чисто теоретически можно обойтись без этой таблицы, задав жёсткие условия в скрипте, но, как говорится, лучше перебдеть. В системе трейтов вообще много такого, что кажется дублирующим или излишним, но приходится всё это исполнять, как обряд.

trait_to_antitraits нужна нам, только если мы делаем трейт, противоположный существующему. Или сразу пару противоположных трейтов. Тут всё понятно - указанные в паре трейты будут друг друга заменять, не встречаясь одновременно. Как понимаю, нужно прописывать отдельно и пару трейтА - трейтБ, и пару трейтБ - трейтА, иначе замена будет работать только "в одну сторону".

Теперь переходим к содержимому трейта. В character_trait_levels мы создаём уровни трейта, создавать уровень нужно даже в том случае, если он у трейта единственный. Тут плюс-минимум всё тоже понятно по названиям колонок. Есть, правда, пустые колонки с манящими названиями вроде epithet_text (уж не кличка ли это?), но они ещё ждут своего исследователя. В этой таблице, однако, задаётся самый загадочный и едва ли не самый главный аспект трейта - threshold (порог). Опытным путём было выявлено, что это количество успешных проверок, которые должен пройти трейт, чтобы получить данный уровень. Т.е., скажем, если у первого уровня threshold = 2, а условие получение трейта, скажем, - выиграть в битве, вероятность же получения = 100%, то персонаж должен получить трейт только после второй выигранной битвы.
В целом при назначении threshold стоит ориентироваться на ванильные показатели. По крайней мере, поначалу.
Отмечу, что локализация трейта привязывается именно к его уровням (как название, так и описание - coloured text). Никакого общего названия для трейта не существует.

Таблицу trait_level_effects нет смысла даже комментировать. Стандартная привязка эффектов, величин и скоупов к уровням трейта.

На данной стадии трейт уже готов, и его, скажем, можно прописать в стартпозе, так что он будет у данного персонажа со старта. Только вот раздавать этот трейт в дальнейшем игра не будет.

В trigger_effects мы приписываем трейт к определённому триггеру (придумываем, соответственно, новый). Судя по тестам, колонка value - это тот показатель, который добавляется к threshold после успешного прохождения проверки. Другими словами, если у вас threshold = 3 и value = 1, то трейт появится у персонажа после трёх успешных проверок. А если value = 3, то после первой же успешной проверки. Это проще всего понаблюдать, создав трейт, выдаваемый каждый ход всем персонажам с вероятностью 100, и запустив новую кампанию. В первом случае трейт будет получен на третий ход (каждый ход срабатывала успешная проверка), во втором – на первом же ходу, как только мы запустили кампанию.
Ну а вероятность, как нетрудно догадаться прописывается здесь же, в колонке chance.

На этом с таблицами мы покончили, можно приступать к скриптам, но сперва нам надо поучиться.
Идём в АКите в trait_triggers - это, своего рода, скриптовый файл, разложенный в табличном виде. Настольный учебник по созданию трейтов. Разобравшись в том, что и как там написано, мы усвоим азы синтаксиса скриптов.
Итак, тут у нас есть триггер, список ивентов, при которых триггер срабатывает (там выпадающий список, интуитивно понятный - наступление нового хода, рождение персонажа, взросление персонажа и т.п.). И самое главное - conditions, условия. Это условия, при которых происходит на получение трейта.
Тут задаётся контекст - какие персонажи, каких фракций, религий, культур, субкультур, на какой территории и при каких других условиях будут проходить проверки на получение данного трейта.

В этой колонке настоящее нагромождение текста, но разобраться в нём довольно легко, если учесть, что каждой команде (уж извините, в терминологии не силён) предшествует технический текст и его можно пропускать (хотя я предполагаю, что можно манипулировать и им, но это надо уже совсем в деле разбираться).
Например, такое условие:

Переводится это так:
Персонаж - генерал с армией И имя фракции - "Римская экспедиция" И фракция персонажа открыла технологию gloria_romanorium И НЕ кампания-пролог И НЕ гранд-кампания
Т.е. трейт выдаётся генералам и губернаторам Римской экспедиции в кампании Велизария после открытия определённой техи. Всё просто.
Команды типа context:character():faction():name() – это тот самый технический текст. Мы можем присваивать им ключи, взятые из таблиц – названия фракций, религий и прочего (в данном случае - bel_fact_byzantine_expedition).
Есть и самостоятельные функции, например, char_is_general_with_army. На самом деле, под этой функцией уже закодирован определённый контекст, который нам не нужно прописывать (контекст, в общем-то, ясен из названия).
NB. Если открыть пак data через ПФМ, то по адресу lua_scripts / lib_export_triggers.lua можно найти своеобразный сборник этих самых функций. Не могу сказать, что я нашёл там что-то экстраординарное, но для человека, который уже разобрался в trait_triggers, может быть полезно.

Схематически это будет выглядеть так (извиняюсь, табуляция пропадает, но её тоже надо блюсти):

--[[ <Название скрипта, думаю, чисто для красоты> ]]--

function <Название триггера>_impl (context)
return <набор контекстов>
end

Нетрудно догадаться, что всё, что не вошло в скобки <>, трогать не стоит.

Но самое сердце (и источник всех глюков) трейтового скрипта - это набор условий, или контекстов.
Синтаксис его довольно прост - его мы уже наблюдали в trait_triggers. Ровно те же самые команды и функции мы из него и берём.
У нас есть несколько логических операторов (капсом - для наглядности):
- AND - "и"
- OR - "или"
- NOT - оператор отрицания для функций (у которых нет значка присвоения ==). Обычно идёт в комбинации с AND или OR. Т.е. если мы хотим задать условие "все, кроме генералов, командующих армией", то мы пишем not char_is_general_with_army(context:character())
-

= - оператор отрицания для команд со значком присвоения ==. Собственно, этот значок он и заменяет. Т.е., если мы хотим задать условие "любая фракция, кроме фракции гаутов", то мы пишем context:character():faction():name()

= "att_fact_gauti". Ни в коем случае не используйте NOT в данном случае. Весь скрипт просто перестанет работать.
- и наконец, обычные скобки (). Как в формулах Экселя. С помощью них можно задавать довольно сложные условия, группируя контексты. Скажем, условие вида

(context:character():is_faction_leader() and context:character():faction():name() == "att_fact_mauri") or context:character():faction():name() == "att_fact_gaetuli"

- позволяет нам воздействовать конкретно на лидера фракции мавров ИЛИ на всех персонажей фракции гетулов. Но не на рядовых персонажей фракции мавров.
Тут логика - наше всё. Короче говоря, если вы не понимаете, каковы будут последствия у условия ЕСЛИ (А И Б), а какие - у условия ЕСЛИ (А ИЛИ Б), то лучше вообще не подходите к трейтам.

На закуску ряд полезных условий для создания трейта (из тех, что я лично проверял или использовал):
- context:character():is_faction_leader() - персонаж - лидер фракции
- char_is_general(context:character()) - персонаж - генерал (любой не женский персонаж и не агент)
- char_is_governor(context:character()) - персонаж - губернатор
- context:character():faction():name() == "ВАШ ТЕКСТ" - фракция персонажа
- context:character():model():campaign_name("ВАШ ТЕКСТ") - определить кампанию (пролог, основная, Велизарий, Карл)
- context:character():faction():state_religion() == "ВАШ ТЕКСТ" - гос. религия персонажа
- context:character():has_trait("ВАШ ТЕКСТ") - персонаж имеет определённый трейт
- context:character():faction():culture() == "ВАШ ТЕКСТ" - культура фракции персонажа
- context:character():faction():subculture() == "ВАШ ТЕКСТ" - субкультура фракции персонажа
- context:character():age() > ВАШ ТЕКСТ - возраст персонажа больше заданного числа (ну или меньше, если знак перевернуть)
А есть ещё контексты, связанные с битвами.

Читайте также: