Группировки (factions) — различия между версиями
RedPython (обсуждение | вклад) |
RedPython (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | ==Создание базы группировки (sim_faction)== | + | =={{Якорь|Создание базы группировки}}Создание базы группировки (sim_faction)== |
Для создания базы группировки необходимо в [[LevelEditor]] поставить объект '''Spawn Element -> ai -> sim_faction'''. В его '''Properties -> Custom data''' нужно прописать следующее: | Для создания базы группировки необходимо в [[LevelEditor]] поставить объект '''Spawn Element -> ai -> sim_faction'''. В его '''Properties -> Custom data''' нужно прописать следующее: | ||
<syntaxhighlight lang="ini">[faction] | <syntaxhighlight lang="ini">[faction] | ||
Строка 9: | Строка 9: | ||
|- | |- | ||
|style="width: 20%; background-color: #efffef;"|'''Параметр''' | |style="width: 20%; background-color: #efffef;"|'''Параметр''' | ||
− | |style="width: | + | |style="width: 80%; background-color: #efffef;"|'''Описание''' |
|- | |- | ||
|name||Имя группировки, которой принадлежит эта база. Можно взять из файла '''game_relations.ltx'''. | |name||Имя группировки, которой принадлежит эта база. Можно взять из файла '''game_relations.ltx'''. | ||
Строка 24: | Строка 24: | ||
---- | ---- | ||
В игре не может быть двух баз с одним и тем же именем группировки, даже на разных уровнях (если они связаны между собой). Если же такое произойдёт – последствия непредсказуемы. | В игре не может быть двух баз с одним и тем же именем группировки, даже на разных уровнях (если они связаны между собой). Если же такое произойдёт – последствия непредсказуемы. | ||
+ | |} | ||
+ | |||
+ | |||
+ | =={{Якорь|Настройка группировки}}Настройка группировки== | ||
+ | После создания объекта группировки '''Spawn Element -> ai -> sim_faction''', в его '''Properties -> Custom data''', в секцию '''[faction]''' добавляется ключ '''settings''', значением которого является путь к '''.ltx'''-файлу настроек группировки (см. [[#Создание базы группировки]]). Такие файлы желательно создавать как '''''локальная_папка_аддона\gamedata\configs\misc\faction_имя_группировки.ltx'''''. Содержимое такого файла выглядит примерно так: | ||
+ | <syntaxhighlight lang="ini">[settings] | ||
+ | |||
+ | resource_0 = спаун-секция_представителя_группировки, удельный_вес_при_подспауне, спаун-секция_представителя_группировки... | ||
+ | resource_1 = спаун-секция_представителя_группировки, удельный_вес_при_подспауне, спаун-секция_представителя_группировки... | ||
+ | resource_2 = спаун-секция_представителя_группировки, удельный_вес_при_подспауне, спаун-секция_представителя_группировки... | ||
+ | resource_3 = спаун-секция_представителя_группировки, удельный_вес_при_подспауне, спаун-секция_представителя_группировки... | ||
+ | |||
+ | glory_0 = дополнительное_количество_отрядов | ||
+ | glory_1 = дополнительное_количество_отрядов | ||
+ | glory_2 = дополнительное_количество_отрядов | ||
+ | glory_3 = дополнительное_количество_отрядов | ||
+ | glory_4 = дополнительное_количество_отрядов | ||
+ | glory_5 = дополнительное_количество_отрядов | ||
+ | |||
+ | |||
+ | [expansion_0] ; нулевой уровень экспансии | ||
+ | |||
+ | base_squad_number = базовое_количество_отрядов | ||
+ | precondition_power = | ||
+ | sim_prior = название_секции_приоритетов | ||
+ | |||
+ | |||
+ | [expansion_1] ; первый уровень экспансии | ||
+ | |||
+ | base_squad_number = базовое_количество_отрядов | ||
+ | precondition_power = | ||
+ | sim_prior = название_секции_приоритетов | ||
+ | |||
+ | |||
+ | [expansion_2] ; второй уровень экспансии | ||
+ | |||
+ | base_squad_number = базовое_количество_отрядов | ||
+ | precondition_power = | ||
+ | sim_prior = название_секции_приоритетов | ||
+ | |||
+ | |||
+ | [prior_0] | ||
+ | |||
+ | тип_лагерей_или_название_лагеря = прибавка_к_относительной_ценности_лагеря_или_типа_лагерей, коэффициент_прибавки_параметра_sim_value | ||
+ | тип_лагерей_или_название_лагеря = прибавка_к_относительной_ценности_лагеря_или_типа_лагерей, коэффициент_прибавки_параметра_sim_value | ||
+ | |||
+ | … | ||
+ | |||
+ | [prior_1] | ||
+ | |||
+ | тип_лагерей_или_название_лагеря = прибавка_к_относительной_ценности_лагеря_или_типа_лагерей, коэффициент_прибавки_параметра_sim_value | ||
+ | тип_лагерей_или_название_лагеря = прибавка_к_относительной_ценности_лагеря_или_типа_лагерей, коэффициент_прибавки_параметра_sim_value | ||
+ | |||
+ | … | ||
+ | |||
+ | [prior_2] | ||
+ | |||
+ | тип_лагерей_или_название_лагеря = прибавка_к_относительной_ценности_лагеря_или_типа_лагерей, коэффициент_прибавки_параметра_sim_value | ||
+ | тип_лагерей_или_название_лагеря = прибавка_к_относительной_ценности_лагеря_или_типа_лагерей, коэффициент_прибавки_параметра_sim_value | ||
+ | |||
+ | … | ||
+ | |||
+ | [start_position] | ||
+ | |||
+ | идентификатор_отряда = имя_смарта | ||
+ | идентификатор_отряда = имя_смарта | ||
+ | идентификатор_отряда = имя_смарта</syntaxhighlight> | ||
+ | |||
+ | |||
+ | ==Описание параметров== | ||
+ | {| class="wikitable" style="color: #black; background-color: #efffef; width: 100%;" | ||
+ | |- | ||
+ | |style="width: 20%; background-color: #efffef;"|'''Параметр''' | ||
+ | |style="width: 80%; background-color: #efffef;"|'''Описание''' | ||
+ | |- | ||
+ | |'''[settings]''' | ||
+ | ||Секция настроек уровней науки и богатства. | ||
+ | |- | ||
+ | |'''resource_0''' | ||
+ | '''resource_1''' | ||
+ | '''...''' | ||
+ | ||Значение каждого ключа '''resource_N''' – это параметры появления новых отрядов при количестве ресурсов '''N'''. Количество ресурсов повышается с захватом лагерей типа '''resource'''. Через запятую указываются: спаун-секция (из файла '''spawn_sections.ltx''') бойца в новом отряде, вероятность его появления в виде удельного веса, спаун-секция, вероятность появления в виде удельного веса, спаун-секция, вероятность появления в виде удельного веса, и т.д. Например, если указаны две спаун-секции, и у первой удельный вес – 40, а у второй – 30, то с вероятностью 40 из 70 появится боец первой спаун-секции, а с вероятностью 30 из 70 появится боец второй спаун-секции. | ||
+ | |- | ||
+ | |'''glory_0''' | ||
+ | '''glory_1'''<br /> | ||
+ | '''...''' | ||
+ | ||Значение каждого ключа '''glory_N''' – это количество дополнительных отрядов, которые появляются у группировки при уровне славы '''N'''. Уровень славы повышается с захватом лагерей типа '''territory'''. | ||
+ | |- | ||
+ | |'''[expansion_0]''' | ||
+ | '''[expansion_1]'''<br /> | ||
+ | '''…''' | ||
+ | ||Секции настроек уровней экспансии. На каждом уровне задаётся определённое количество отрядов и приоритеты группировки. | ||
+ | |- | ||
+ | |'''base_squad_number''' | ||
+ | ||Базовое количество отрядов группировки на данном уровне экспансии. Общее количество отрядов равно этому числу плюс количество дополнительных отрядов, зависящее от уровня богатства группировки. | ||
+ | |- | ||
+ | |precondition_power | ||
+ | ||Условие переключения на другой уровень экспансии. | ||
+ | |- | ||
+ | |sim_prior | ||
+ | ||Название секции приоритетов, в которой описаны приоритеты группировки на этом уровне экспансии. | ||
+ | |- | ||
+ | |'''[prior_0]''' | ||
+ | '''[prior_1]'''<br /> | ||
+ | '''…''' | ||
+ | ||Секции приоритетов группировки. Используются для искусственного поднятия ценности определённых лагерей в списке приоритетов группировки, что заставляет группировку в первую очередь захватывать и удерживать именно такие лагеря. В секции задаются ключи, которые являются типом лагерей или именем конкретного лагеря, а после знака «равно» через запятую задаются прибавка к относительной ценности лагеря и коэффициент прибавки параметра '''sim_value''' соответствующего лагеря. Например: | ||
+ | |||
+ | <ini> | ||
+ | [prior_0] | ||
+ | science = 100, 0.1 | ||
+ | |||
+ | smart_1 = 150, 0 | ||
+ | </ini> | ||
+ | |||
+ | В этом примере для группировки к стандартной ценности каждого лагеря типа '''science''' прибавляется '''100 + 0.1 * sim_value''' этого лагеря, что обеспечивает общее поднятие научно-технологических лагерей в системе приоритетов группировки, тем не менее сохраняя различия ценности таких лагерей относительно друг-друга. | ||
+ | |- | ||
+ | |'''[start_position]''' | ||
+ | ||Секция стартового расположения отрядов. Используется, чтобы заспаунить отряды в определённых лагерях в начале игры. В секции задаются ключи, которые являются идентификаторами отрядов. Значение ключа – это имя лагеря, в котором должен появиться этот отряд. | ||
|} | |} | ||
[[Категория:A-Life]][[Категория:LevelEditor]][[Категория:Чистое небо]] | [[Категория:A-Life]][[Категория:LevelEditor]][[Категория:Чистое небо]] |
Версия 16:33, 5 декабря 2016
Создание базы группировки (sim_faction)
Для создания базы группировки необходимо в LevelEditor поставить объект Spawn Element -> ai -> sim_faction. В его Properties -> Custom data нужно прописать следующее:
[faction]
name = имя_группировки
base_smart = имя_smart_terrain
settings = имя_файла_настроек
Параметр | Описание |
name | Имя группировки, которой принадлежит эта база. Можно взять из файла game_relations.ltx. |
base_smart | Имя smart_terrain типа base, в котором будут появляться новые отряды группировки. Этот smart_terrain желательно ставить примерно в центре базы, для красивого отображения на карте. |
settings | Имя .ltx-файла, в котором содержатся настройки группировки. Путь к файлу задаётся относительно папки локальная_папка_аддона\gamedata\configs\. Подробнее – в разделе #Настройка группировки. |
Важно!
Точка sim_faction в дебаговом режиме отображается на карте символом, из подсказки которого можно получить много полезной информации, поэтому желательно эту точку не ставить поверх smart_terrain’а, иначе они будут друг друга перекрывать. В игре не может быть двух баз с одним и тем же именем группировки, даже на разных уровнях (если они связаны между собой). Если же такое произойдёт – последствия непредсказуемы. |
Настройка группировки
После создания объекта группировки Spawn Element -> ai -> sim_faction, в его Properties -> Custom data, в секцию [faction] добавляется ключ settings, значением которого является путь к .ltx-файлу настроек группировки (см. #Создание базы группировки). Такие файлы желательно создавать как локальная_папка_аддона\gamedata\configs\misc\faction_имя_группировки.ltx. Содержимое такого файла выглядит примерно так:
[settings]
resource_0 = спаун-секция_представителя_группировки, удельный_вес_при_подспауне, спаун-секция_представителя_группировки...
resource_1 = спаун-секция_представителя_группировки, удельный_вес_при_подспауне, спаун-секция_представителя_группировки...
resource_2 = спаун-секция_представителя_группировки, удельный_вес_при_подспауне, спаун-секция_представителя_группировки...
resource_3 = спаун-секция_представителя_группировки, удельный_вес_при_подспауне, спаун-секция_представителя_группировки...
glory_0 = дополнительное_количество_отрядов
glory_1 = дополнительное_количество_отрядов
glory_2 = дополнительное_количество_отрядов
glory_3 = дополнительное_количество_отрядов
glory_4 = дополнительное_количество_отрядов
glory_5 = дополнительное_количество_отрядов
[expansion_0] ; нулевой уровень экспансии
base_squad_number = базовое_количество_отрядов
precondition_power =
sim_prior = название_секции_приоритетов
[expansion_1] ; первый уровень экспансии
base_squad_number = базовое_количество_отрядов
precondition_power =
sim_prior = название_секции_приоритетов
[expansion_2] ; второй уровень экспансии
base_squad_number = базовое_количество_отрядов
precondition_power =
sim_prior = название_секции_приоритетов
[prior_0]
тип_лагерей_или_название_лагеря = прибавка_к_относительной_ценности_лагеря_или_типа_лагерей, коэффициент_прибавки_параметра_sim_value
тип_лагерей_или_название_лагеря = прибавка_к_относительной_ценности_лагеря_или_типа_лагерей, коэффициент_прибавки_параметра_sim_value
…
[prior_1]
тип_лагерей_или_название_лагеря = прибавка_к_относительной_ценности_лагеря_или_типа_лагерей, коэффициент_прибавки_параметра_sim_value
тип_лагерей_или_название_лагеря = прибавка_к_относительной_ценности_лагеря_или_типа_лагерей, коэффициент_прибавки_параметра_sim_value
…
[prior_2]
тип_лагерей_или_название_лагеря = прибавка_к_относительной_ценности_лагеря_или_типа_лагерей, коэффициент_прибавки_параметра_sim_value
тип_лагерей_или_название_лагеря = прибавка_к_относительной_ценности_лагеря_или_типа_лагерей, коэффициент_прибавки_параметра_sim_value
…
[start_position]
идентификатор_отряда = имя_смарта
идентификатор_отряда = имя_смарта
идентификатор_отряда = имя_смарта
Описание параметров
Параметр | Описание |
[settings] | Секция настроек уровней науки и богатства. |
resource_0
resource_1 ... |
Значение каждого ключа resource_N – это параметры появления новых отрядов при количестве ресурсов N. Количество ресурсов повышается с захватом лагерей типа resource. Через запятую указываются: спаун-секция (из файла spawn_sections.ltx) бойца в новом отряде, вероятность его появления в виде удельного веса, спаун-секция, вероятность появления в виде удельного веса, спаун-секция, вероятность появления в виде удельного веса, и т.д. Например, если указаны две спаун-секции, и у первой удельный вес – 40, а у второй – 30, то с вероятностью 40 из 70 появится боец первой спаун-секции, а с вероятностью 30 из 70 появится боец второй спаун-секции. |
glory_0
glory_1 |
Значение каждого ключа glory_N – это количество дополнительных отрядов, которые появляются у группировки при уровне славы N. Уровень славы повышается с захватом лагерей типа territory. |
[expansion_0]
[expansion_1] |
Секции настроек уровней экспансии. На каждом уровне задаётся определённое количество отрядов и приоритеты группировки. |
base_squad_number | Базовое количество отрядов группировки на данном уровне экспансии. Общее количество отрядов равно этому числу плюс количество дополнительных отрядов, зависящее от уровня богатства группировки. |
precondition_power | Условие переключения на другой уровень экспансии. |
sim_prior | Название секции приоритетов, в которой описаны приоритеты группировки на этом уровне экспансии. |
[prior_0]
[prior_1] |
Секции приоритетов группировки. Используются для искусственного поднятия ценности определённых лагерей в списке приоритетов группировки, что заставляет группировку в первую очередь захватывать и удерживать именно такие лагеря. В секции задаются ключи, которые являются типом лагерей или именем конкретного лагеря, а после знака «равно» через запятую задаются прибавка к относительной ценности лагеря и коэффициент прибавки параметра sim_value соответствующего лагеря. Например:
<ini> [prior_0] science = 100, 0.1 smart_1 = 150, 0 </ini> В этом примере для группировки к стандартной ценности каждого лагеря типа science прибавляется 100 + 0.1 * sim_value этого лагеря, что обеспечивает общее поднятие научно-технологических лагерей в системе приоритетов группировки, тем не менее сохраняя различия ценности таких лагерей относительно друг-друга. |
[start_position] | Секция стартового расположения отрядов. Используется, чтобы заспаунить отряды в определённых лагерях в начале игры. В секции задаются ключи, которые являются идентификаторами отрядов. Значение ключа – это имя лагеря, в котором должен появиться этот отряд. |