Группировки (factions) — различия между версиями
RedPython (обсуждение | вклад) |
RedPython (обсуждение | вклад) м |
||
(не показано 6 промежуточных версий этого же участника) | |||
Строка 13: | Строка 13: | ||
|name||Имя группировки, которой принадлежит эта база. Можно взять из файла '''game_relations.ltx'''. | |name||Имя группировки, которой принадлежит эта база. Можно взять из файла '''game_relations.ltx'''. | ||
|- | |- | ||
− | |base_smart||Имя '''smart_terrain''' типа '''base''', в котором будут появляться новые отряды группировки. Этот '''smart_terrain''' желательно ставить примерно в центре базы, для красивого отображения на карте. | + | |base_smart||Имя '''smart_terrain''' типа '''base''', в котором будут появляться новые отряды группировки. Этот '''smart_terrain''' желательно ставить примерно в центре базы, для красивого отображения на карте. Для комьюнити монстров можно не указывать. |
|- | |- | ||
|settings||Имя .ltx-файла, в котором содержатся настройки группировки. Путь к файлу задаётся относительно папки '''''локальная_папка_аддона\gamedata\configs\'''''. Подробнее – в разделе [[#Настройка группировки]]. | |settings||Имя .ltx-файла, в котором содержатся настройки группировки. Путь к файлу задаётся относительно папки '''''локальная_папка_аддона\gamedata\configs\'''''. Подробнее – в разделе [[#Настройка группировки]]. | ||
Строка 24: | Строка 24: | ||
---- | ---- | ||
В игре не может быть двух баз с одним и тем же именем группировки, даже на разных уровнях (если они связаны между собой). Если же такое произойдёт – последствия непредсказуемы. | В игре не может быть двух баз с одним и тем же именем группировки, даже на разных уровнях (если они связаны между собой). Если же такое произойдёт – последствия непредсказуемы. | ||
+ | ---- | ||
+ | Монстры — это тоже группировка (community), и для неё тоже нужен свой объект faction. Без него симуляционные зверушки не будут появляться. | ||
|} | |} | ||
− | |||
=={{Якорь|Настройка группировки}}Настройка группировки== | =={{Якорь|Настройка группировки}}Настройка группировки== | ||
После создания объекта группировки '''Spawn Element -> ai -> sim_faction''', в его '''Properties -> Custom data''', в секцию '''[faction]''' добавляется ключ '''settings''', значением которого является путь к '''.ltx'''-файлу настроек группировки (см. [[#Создание базы группировки]]). Такие файлы желательно создавать как '''''локальная_папка_аддона\gamedata\configs\misc\faction_имя_группировки.ltx'''''. Содержимое такого файла выглядит примерно так: | После создания объекта группировки '''Spawn Element -> ai -> sim_faction''', в его '''Properties -> Custom data''', в секцию '''[faction]''' добавляется ключ '''settings''', значением которого является путь к '''.ltx'''-файлу настроек группировки (см. [[#Создание базы группировки]]). Такие файлы желательно создавать как '''''локальная_папка_аддона\gamedata\configs\misc\faction_имя_группировки.ltx'''''. Содержимое такого файла выглядит примерно так: | ||
<syntaxhighlight lang="ini">[settings] | <syntaxhighlight lang="ini">[settings] | ||
− | |||
resource_0 = спаун-секция_представителя_группировки, удельный_вес_при_подспауне, спаун-секция_представителя_группировки... | resource_0 = спаун-секция_представителя_группировки, удельный_вес_при_подспауне, спаун-секция_представителя_группировки... | ||
resource_1 = спаун-секция_представителя_группировки, удельный_вес_при_подспауне, спаун-секция_представителя_группировки... | resource_1 = спаун-секция_представителя_группировки, удельный_вес_при_подспауне, спаун-секция_представителя_группировки... | ||
Строка 44: | Строка 44: | ||
− | [ | + | [spawn_by_resource] |
+ | 0 = имя_профиля_1, количество, имя_профиля_2, количество, имя_профиля_3, количество и так далее | ||
+ | ... | ||
+ | 5 = имя_профиля_1, количество, имя_профиля_2, количество, имя_профиля_3, количество и так далее | ||
− | |||
− | |||
− | |||
+ | [spawn_by_level] | ||
+ | имя_карты_1 = имя_монстра_1, количество, имя_монстра_2, количество, имя_монстра_3, количество и так далее | ||
+ | ... | ||
+ | имя_карты_N = имя_монстра_1, количество, имя_монстра_2, количество, имя_монстра_3, количество и так далее | ||
− | |||
− | base_squad_number = базовое_количество_отрядов | + | [expansion_0] ; нулевой уровень экспансии |
+ | base_squad_number = базовое_количество_отрядов | ||
precondition_power = | precondition_power = | ||
− | sim_prior = название_секции_приоритетов | + | sim_prior = название_секции_приоритетов |
+ | [expansion_1] ; первый уровень экспансии | ||
+ | base_squad_number = базовое_количество_отрядов | ||
+ | precondition_power = | ||
+ | sim_prior = название_секции_приоритетов | ||
[expansion_2] ; второй уровень экспансии | [expansion_2] ; второй уровень экспансии | ||
− | + | base_squad_number = базовое_количество_отрядов | |
− | base_squad_number = базовое_количество_отрядов | ||
precondition_power = | precondition_power = | ||
− | sim_prior = название_секции_приоритетов | + | sim_prior = название_секции_приоритетов |
[prior_0] | [prior_0] | ||
− | |||
тип_лагерей_или_название_лагеря = прибавка_к_относительной_ценности_лагеря_или_типа_лагерей, коэффициент_прибавки_параметра_sim_value | тип_лагерей_или_название_лагеря = прибавка_к_относительной_ценности_лагеря_или_типа_лагерей, коэффициент_прибавки_параметра_sim_value | ||
тип_лагерей_или_название_лагеря = прибавка_к_относительной_ценности_лагеря_или_типа_лагерей, коэффициент_прибавки_параметра_sim_value | тип_лагерей_или_название_лагеря = прибавка_к_относительной_ценности_лагеря_или_типа_лагерей, коэффициент_прибавки_параметра_sim_value | ||
Строка 73: | Строка 79: | ||
[prior_1] | [prior_1] | ||
− | |||
тип_лагерей_или_название_лагеря = прибавка_к_относительной_ценности_лагеря_или_типа_лагерей, коэффициент_прибавки_параметра_sim_value | тип_лагерей_или_название_лагеря = прибавка_к_относительной_ценности_лагеря_или_типа_лагерей, коэффициент_прибавки_параметра_sim_value | ||
тип_лагерей_или_название_лагеря = прибавка_к_относительной_ценности_лагеря_или_типа_лагерей, коэффициент_прибавки_параметра_sim_value | тип_лагерей_или_название_лагеря = прибавка_к_относительной_ценности_лагеря_или_типа_лагерей, коэффициент_прибавки_параметра_sim_value | ||
Строка 80: | Строка 85: | ||
[prior_2] | [prior_2] | ||
− | |||
тип_лагерей_или_название_лагеря = прибавка_к_относительной_ценности_лагеря_или_типа_лагерей, коэффициент_прибавки_параметра_sim_value | тип_лагерей_или_название_лагеря = прибавка_к_относительной_ценности_лагеря_или_типа_лагерей, коэффициент_прибавки_параметра_sim_value | ||
тип_лагерей_или_название_лагеря = прибавка_к_относительной_ценности_лагеря_или_типа_лагерей, коэффициент_прибавки_параметра_sim_value | тип_лагерей_или_название_лагеря = прибавка_к_относительной_ценности_лагеря_или_типа_лагерей, коэффициент_прибавки_параметра_sim_value | ||
Строка 87: | Строка 91: | ||
[start_position] | [start_position] | ||
− | |||
идентификатор_отряда = имя_смарта | идентификатор_отряда = имя_смарта | ||
идентификатор_отряда = имя_смарта | идентификатор_отряда = имя_смарта | ||
идентификатор_отряда = имя_смарта</syntaxhighlight> | идентификатор_отряда = имя_смарта</syntaxhighlight> | ||
− | |||
==Описание параметров== | ==Описание параметров== | ||
Строка 111: | Строка 113: | ||
... | ... | ||
||Значение каждого ключа '''glory_N''' – это количество дополнительных отрядов, которые появляются у группировки при уровне славы '''N'''. Уровень славы повышается с захватом лагерей типа '''territory'''. | ||Значение каждого ключа '''glory_N''' – это количество дополнительных отрядов, которые появляются у группировки при уровне славы '''N'''. Уровень славы повышается с захватом лагерей типа '''territory'''. | ||
+ | |- | ||
+ | |[spawn_by_resource] | ||
+ | |Какие профили спаунить в зависимости от уровня ресурсов группировки. | ||
+ | |- | ||
+ | |[spawn_by_level] | ||
+ | |Какие профили спаунить на конкретной карте. Ключ — имя профиля, значение — вероятность появления данного существа. | ||
|- | |- | ||
|[expansion_0]<br /> | |[expansion_0]<br /> | ||
Строка 139: | Строка 147: | ||
||Секция стартового расположения отрядов. Используется, чтобы заспаунить отряды в определённых лагерях в начале игры. В секции задаются ключи, которые являются идентификаторами отрядов. Значение ключа – это имя лагеря, в котором должен появиться этот отряд. | ||Секция стартового расположения отрядов. Используется, чтобы заспаунить отряды в определённых лагерях в начале игры. В секции задаются ключи, которые являются идентификаторами отрядов. Значение ключа – это имя лагеря, в котором должен появиться этот отряд. | ||
|} | |} | ||
− | |||
=Функции для работы с группировками= | =Функции для работы с группировками= | ||
==Функции эффектов== | ==Функции эффектов== | ||
===create_squad(имя_отряда:имя_смарта)=== | ===create_squad(имя_отряда:имя_смарта)=== | ||
− | Создаёт в смарте с именем имя_смарта отряд с именем имя_отряда, параметры которого описаны в файле '''''локальная_папка_аддона\gamedata\configs\misc\squad_descr.ltx'''''. Отряд описывается в этом файле как: | + | Создаёт в смарте с именем '''имя_смарта''' отряд с именем '''имя_отряда''', параметры которого описаны в файле '''''локальная_папка_аддона\gamedata\configs\misc\squad_descr.ltx'''''. Отряд описывается в этом файле как: |
<syntaxhighlight lang="ini"> | <syntaxhighlight lang="ini"> | ||
[имя_отряда] | [имя_отряда] | ||
Строка 157: | Строка 164: | ||
'''''имя_группировки''''' – группировка, которой принадлежит создаваемый отряд (можно взять из файла '''''game_relations.ltx'''''). | '''''имя_группировки''''' – группировка, которой принадлежит создаваемый отряд (можно взять из файла '''''game_relations.ltx'''''). | ||
− | '''''спаун-секция_представителя_группировки''''' – имя секции из файла '''''spawn_sections.ltx''''', задаёт одного из бойцов отряда. Возможно задать до пяти бойцов (через запятую). | + | '''''спаун-секция_представителя_группировки''''' – имя секции из файла '''''spawn_sections.ltx''''', задаёт одного из бойцов отряда. Возможно задать до пяти бойцов (через запятую). Указанный первым будет считаться командиром отряда. |
'''''target_smart''''' – указание лагерей, в который отправится отряд. Возможно (через двоеточия) указать отряду последовательность лагерей, которые, один за другим, он должен посетить. Если следующий лагерь не указан – отряд останется удерживать нынешний лагерь. Если вместо следующего лагеря стоит '''''nil''''', то отряд уйдёт под контроль симуляции. В этом параметре возможно использование кондлиста, например:<br /> | '''''target_smart''''' – указание лагерей, в который отправится отряд. Возможно (через двоеточия) указать отряду последовательность лагерей, которые, один за другим, он должен посетить. Если следующий лагерь не указан – отряд останется удерживать нынешний лагерь. Если вместо следующего лагеря стоит '''''nil''''', то отряд уйдёт под контроль симуляции. В этом параметре возможно использование кондлиста, например:<br /> | ||
Строка 167: | Строка 174: | ||
===remove_squad(имя_отряда)=== | ===remove_squad(имя_отряда)=== | ||
Уничтожает отряд с именем '''имя_отряда''', которое можно взять из файла '''''локальная_папка_аддона\gamedata\configs\misc\squad_descr.ltx'''''. | Уничтожает отряд с именем '''имя_отряда''', которое можно взять из файла '''''локальная_папка_аддона\gamedata\configs\misc\squad_descr.ltx'''''. | ||
− | |||
==Функции условий== | ==Функции условий== | ||
Строка 203: | Строка 209: | ||
− | [[Категория:A-Life | + | [[Категория:A-Life]] |
Текущая версия на 20:15, 4 января 2019
Содержание
- 1 Создание базы группировки (sim_faction)
- 2 Настройка группировки
- 3 Описание параметров
- 4 Функции для работы с группировками
- 4.1 Функции эффектов
- 4.2 Функции условий
- 4.2.1 smart_captured(имя_смарта:имя_смарта:имя_смарта…)
- 4.2.2 science_level(уровень_науки)
- 4.2.3 wealth_level(уровень_богатства)
- 4.2.4 squad_quantity(количество_отрядов)
- 4.2.5 smart_quantity(количество_лагерей)
- 4.2.6 smart_captured_by_faction(имя_смарта:имя_группировки)
- 4.2.7 squad_exist(имя_отряда)
- 4.2.8 squad_in_zone(идентификатор_отряда:имя_спейс_рестриктора)
Создание базы группировки (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’а, иначе они будут друг друга перекрывать. В игре не может быть двух баз с одним и тем же именем группировки, даже на разных уровнях (если они связаны между собой). Если же такое произойдёт – последствия непредсказуемы. Монстры — это тоже группировка (community), и для неё тоже нужен свой объект faction. Без него симуляционные зверушки не будут появляться. |
Настройка группировки[править]
После создания объекта группировки 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 = дополнительное_количество_отрядов
[spawn_by_resource]
0 = имя_профиля_1, количество, имя_профиля_2, количество, имя_профиля_3, количество и так далее
...
5 = имя_профиля_1, количество, имя_профиля_2, количество, имя_профиля_3, количество и так далее
[spawn_by_level]
имя_карты_1 = имя_монстра_1, количество, имя_монстра_2, количество, имя_монстра_3, количество и так далее
...
имя_карты_N = имя_монстра_1, количество, имя_монстра_2, количество, имя_монстра_3, количество и так далее
[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. |
[spawn_by_resource] | Какие профили спаунить в зависимости от уровня ресурсов группировки. |
[spawn_by_level] | Какие профили спаунить на конкретной карте. Ключ — имя профиля, значение — вероятность появления данного существа. |
[expansion_0] [expansion_1] |
Секции настроек уровней экспансии. На каждом уровне задаётся определённое количество отрядов и приоритеты группировки. |
base_squad_number | Базовое количество отрядов группировки на данном уровне экспансии. Общее количество отрядов равно этому числу плюс количество дополнительных отрядов, зависящее от уровня богатства группировки. |
precondition_power | Условие переключения на другой уровень экспансии. |
sim_prior | Название секции приоритетов, в которой описаны приоритеты группировки на этом уровне экспансии. |
[prior_0] [prior_1] |
Секции приоритетов группировки. Используются для искусственного поднятия ценности определённых лагерей в списке приоритетов группировки, что заставляет группировку в первую очередь захватывать и удерживать именно такие лагеря. В секции задаются ключи, которые являются типом лагерей или именем конкретного лагеря, а после знака «равно» через запятую задаются прибавка к относительной ценности лагеря и коэффициент прибавки параметра sim_value соответствующего лагеря. Например:
[prior_0]
science = 100, 0.1
smart_1 = 150, 0
В этом примере для группировки к стандартной ценности каждого лагеря типа science прибавляется 100 + 0.1 * sim_value этого лагеря, что обеспечивает общее поднятие научно-технологических лагерей в системе приоритетов группировки, тем не менее сохраняя различия ценности таких лагерей относительно друг-друга. |
[start_position] | Секция стартового расположения отрядов. Используется, чтобы заспаунить отряды в определённых лагерях в начале игры. В секции задаются ключи, которые являются идентификаторами отрядов. Значение ключа – это имя лагеря, в котором должен появиться этот отряд. |
Функции для работы с группировками[править]
Функции эффектов[править]
create_squad(имя_отряда:имя_смарта)[править]
Создаёт в смарте с именем имя_смарта отряд с именем имя_отряда, параметры которого описаны в файле локальная_папка_аддона\gamedata\configs\misc\squad_descr.ltx. Отряд описывается в этом файле как:
[имя_отряда]
faction = имя_группировки
npc = спаун-секция_представителя_группировки, спаун-секция_представителя_группировки...
target_smart = {кондлист} имя_целевого_смарта:имя_целевого_смарта, {кондлист} имя_целевого_смарта:имя_целевого_смарта...
spawn_point = точка_появления
имя_отряда – может быть любым, лишь бы оно совпадало в файле настроек отрядов и в вызове функции.
имя_группировки – группировка, которой принадлежит создаваемый отряд (можно взять из файла game_relations.ltx).
спаун-секция_представителя_группировки – имя секции из файла spawn_sections.ltx, задаёт одного из бойцов отряда. Возможно задать до пяти бойцов (через запятую). Указанный первым будет считаться командиром отряда.
target_smart – указание лагерей, в который отправится отряд. Возможно (через двоеточия) указать отряду последовательность лагерей, которые, один за другим, он должен посетить. Если следующий лагерь не указан – отряд останется удерживать нынешний лагерь. Если вместо следующего лагеря стоит nil, то отряд уйдёт под контроль симуляции. В этом параметре возможно использование кондлиста, например:
{+info_test} smart_1:smart_2, smart_3:nil
То есть, если выдан инфопоршн info_test, то отряд пойдёт в smart_1, а потом – в smart_2, где и останется, иначе отряд пойдёт в smart_3, а по его достижению уйдёт под контроль симуляции.
точка_появления – (опционально) имя пути, в нулевой точке которого появится отряд.
remove_squad(имя_отряда)[править]
Уничтожает отряд с именем имя_отряда, которое можно взять из файла локальная_папка_аддона\gamedata\configs\misc\squad_descr.ltx.
Функции условий[править]
smart_captured(имя_смарта:имя_смарта:имя_смарта…)[править]
Принадлежит ли группировке лагерь с именем имя_смарта. Можно указать несколько лагерей через двоеточие. Только для использования в файле настроек группировки.
science_level(уровень_науки)[править]
Не меньше ли у группировки уровень науки, чем уровень_науки. Только для использования в файле настроек группировки.
wealth_level(уровень_богатства)[править]
Не меньше ли у группировки уровень богатства, чем уровень_богатства. Только для использования в файле настроек группировки.
squad_quantity(количество_отрядов)[править]
Есть ли у группировки количество отрядов, не меньшее чем количество_отрядов. Эта функция пока неоптимальна, потому часто её использовать не следует. Только для использования в файле настроек группировки.
smart_quantity(количество_лагерей)[править]
Есть ли у группировки количество лагерей, не меньшее чем количество_лагерей. Эта функция пока неоптимальна, потому часто её использовать не следует. Только для использования в файле настроек группировки.
smart_captured_by_faction(имя_смарта:имя_группировки)[править]
Принадлежит ли группировке с именем имя_группировки лагерь с именем имя_смарта.
squad_exist(имя_отряда)[править]
Существует ли отряд с именем имя_отряда. Имя можно взять из файла локальная_папка_аддона\gamedata\configs\misc\squad_descr.ltx.
squad_in_zone(идентификатор_отряда:имя_спейс_рестриктора)[править]
Находится ли отряд идентификатор_отряда в спейс-рестрикторе имя_спейс_рестриктора.