首页所有页面

另类开局模组制作

The common/alternate_start 文件夹用于定义替代起始生成的设置,包括破碎世界和 Random World.

Setting format

Settings follow this format:
名称 = { # 设定名称。在 LOC 中使用同名,前缀是“setting_”。比如,这里的“setting_name”。带有“_tooltip”的后置键将用于提示,延迟提示则使用“_tooltip_delayed”

类型 = 复选框 # 使用哪种界面。详见“类型”部分的完整可能类型列表
random_default = option_name # 在随机世界中默认选择什么。可选;如果被排除,将默认使用第一个定义的选项
shattered_default = option_name # 在破碎世界中默认选择什么。可选;如果被排除,将默认使用第一个定义的选项
sort_priority = 1000 # 在设置列表中显示的位置。优先级越高,显示得越早。平局按定义顺序被打破。如果未定义,优先级视为0。优先级可以是负的
分隔符 = 是 # 如果设置为“是”,“分隔符”图标会显示在 GUI 条目上
potential = { # 选项应出现的时间。如果条件未满足,该图块将不会显示。注意,这只在玩家打开设置时进行评估;它*不会*根据所选设置动态更新
some_triggers
}
trigger = { # 当该选项应启用时。如果条件未达成,将显示为灰色。对于那些只有在启用了其他设置时才相关的情况尤其有用
some_trigger
}


option_name = { # 期权名称。在 LOC 中,显示名称的 UI 类型也会使用相同的名称(前缀为设置键)。后续会修正“_tooltip”/“_tooltip_delayed”作为提示。第一个选项是默认选项,除非被“random_default”或“shattered_default”覆盖”
generate_dukes = 是的 # 可以设置各种参数。完整列表请见下方“参数”部分
效果 = { } # 参数执行后要运行的效果
}
option_name = { ... } # 你可以定义任意数量的选项。注意,它们不能与其他属性(如“默认”或“最大值”)相同命名


default = 10 # Default value for a slider
最小值 = 0 # 滑块或双滑块的最小值
max = 100 # 滑块或双滑块的最大值
min_default = 10 # 双滑块上一个旋钮的默认值
max_default = 50 # 双滑块另一个旋钮的默认值
apply_before_generation = 是的 # 是在角色生成前还是之后应用设定
优先级 = 1000 # 决定设置的执行顺序。默认是0优先级。更多信息请参见“执行顺序”部分

}

Types

Settings come in the following types:

  • 复选框 - 二进制状态。如果勾选,则会使用“勾选”选项。如果没有,就“未受控”。如果没有效果,可以把给出的选项留空或完全省略。
  • 滑块——离散数轴。玩家选择的值可以在脚本中引用,在某些设置下会影响代码
  • double_slider - 离散数轴,玩家设定两个数值而非一个。玩家选择的数值可以在脚本中引用,某些设置会影响代码
  • 选择——允许任意数量的不同选择。第一个列出的将是默认的
  • 自定义——允许任意数量的独特选择。使用与选项同名的窗口类型,前缀为“alt_setting_”,后缀为“_entry(例如,alt_setting_tier_entry)。窗口类型需要与每个选项同名的按钮。第一个列出的将是默认的。窗口类型还需要一个“selection_indicator”图标。该页面会被移到所选选项的左上角

Parameters

设置可以设置各种参数,这些参数将由代码执行,或脚本引用。 带代码效果的参数完整列表:

* generate_dukes = yes			# Elevate a count in every duchy to duke, and vassalize the other counts
* consolidate_dukes = yes		# The dukes will also get every county in their duchy, held personally
* holding_type = historical		# Does not touch holdings, but makes all rulers of one or two holding tribal provinces (note holdings, not slots) of Nomadic cultures Nomads
* holding_type = feudal			# Makes every county in the game have a feudal, temple, and city holding, in that order
* holding_type = tribal			# Makes every county in the game have just a single tribal holding
* holding_type = nomadic		# Makes every county in the game have no holdings whatsoever
* holding_type = tribal_nomadic		# Makes all Nomadic cultured provinces (as defined in the culture itself) have no holdings. Everything else has a single tribal holding
* holding_slots = random		# Causes the number of holding slots to be randomized between 1 and 7. Formula is ( 2d7 + 1 ) / 2
* holding_slots = one-seven		# Causes the number of holding slots to be set to this number in the whole world
* culture = random/full_random		# Causes culture to be randomized. See "culture and religion spread" section
* religion = random/full_random		# Causes religion to be randomized. See "culture and religion spread" section
* technology = flat			# Causes all provinces to have the same tech level (interpolated by year between the ideal years for 0 and 8 tech)
* dejure_kingdoms = none		# Causes all dejure kingdoms and empires to get removed
* dejure_kingdoms = random		# Causes all dejure kingdoms to be replaced with randomly generated ones
* dejure_empires = none			# Causes all dejure empires to get removed
* dejure_empires = random		# Causes all dejure empires to be replaced with randomly generated ones
* holy_sites = random			# Causes holy sites for any religion with provinces on the map to be randomized. See "holy site generation" for more info
* culture_names = random		# Causes culture names to get randomized. See "culture name generation" for more info
* religion_names = random		# Causes religion names to get randomized. See "religion name generation" for more info
* religion_features = random		# Causes religions to have their features reset, and then generated from the religion_features folder in common. See "religion feature generation" for more info
* generate_random_dukes = yes		# Elevate counts to dukes if they meet certain requirements. For more info, see "random duke/king/emperor generation"
* generate_random_kings = yes		# Elevate rulers to kings if they meet certain requirements. For more info, see "random duke/king/emperor generation"
* generate_random_emperors = yes	# Elevate rulers to emperors if they meet certain requirements. For more info, see "random duke/king/emperor generation"
* generate_random_holdings = yes	# Randomizes the holdings in the world. For more info, see "random holding generation"

你也可以定义任何参数,用“has_alternate_parameter”触发器在脚本中引用它。例如,“test = hello”不会有效果,但可以在脚本中用 has_alternate_parameter = { 关键字 = test value = hello } 进行检查

Sliders

The following sliders have code effects:

  • female_percentage # 这里的数值决定了每位统治者是女性的概率
  • marriage_percentage # 这里的价值决定了每位(成年)统治者结婚的概率
  • num_counties # 计数可生成的最大县数。计数者会不断掷出50%的分数以获得一个县,直到达到上限或掷骰失败

Double sliders

The following double sliders have code effects:

  • age_span # 这里的值决定了字符年龄生成的界限
  • num_of_children # 这里的价值决定了成年统治者有多少孩子
  • dejure_kingdom_size # 这里的数值决定了随机生成王国的大小
  • dejure_empire_size # 这里的价值决定了随机生成帝国的规模
  • MORE TBA

Execution order

设置按优先级顺序执行。当优先级相同时,平局按定义顺序决出。 设置参数在“效果”部分之前执行。 所有选项在计数生成后执行,但在游戏实际开始之前,除非设置“apply_before_generation = 是”。如果设置为,则该选项会在角色生成前执行。

如果使用替代起始,比赛开始时会进行“on-action on_alternate_start”。生成完成、存档加载、启动任务执行完成后,它才会触发

Related triggers

is_alternate_start = yes		# Whether the game was started as a shattered/random world
is_shattered_world = yes		# Whether the game was started as a shattered world
is_random_world = yes			# Whether the game was started as a random world


has_alternate_start_setting = {		# Whether the given setting has the given option
	setting = dukes			# The key of the setting to check
	option = checked		# The key of the option to check for
}

has_alternate_start_parameter = {	# Whether the given parameter has been set to the given value
	key = generate_dukes		# The parameter key to check
	value = yes			# The value key to check for
}

has_alternate_start_setting = {		# Whether the given setting has the given value
	setting = female_percentage	# The key of the setting to check
	value > 10    			# The value to compare to. Also takes variables
}

has_alternate_start_setting = {		# Whether the given setting has the given bounds
	setting = age_bounds		# The key of the setting to check
	max > 10			# The value to compare the max value to. Also takes variables
	min > 5				# The value to compare the min value to. Also takes variables
}

is_name_randomized = yes		# Checks if the name of the religion or culture currently scoped to has been randomized

Future: is_random_world = yes

Related effects

export_to_variable = {				# Will export the value chosen by the player for a setting to a provided variable
	which = variable_name			# Variable to export to
	value = alternate_start_value/		# What to export
		alternate_start_min_value/
		alternate_start_max_value 	
	key = setting_name			# Which setting to export it from
}

Culture and religion spread

文化和宗教是可以随机化的。 基本流程如下:

0. 所有文化/宗教都从地图上清除 1. 每个群体随机选一个省份作为种子省份(宗教则通过“religion_group_spawn”加权,该系统可通过特殊触发any_religion_distance检查已生成群体的距离)。宗教团体刷新顺序随机) 2. 每个邻近的省份都计算其得分。注意,这意味着一个与多个已填满省份接壤的省份可以有多个条纹。即使是同一组 3. 从得分列表中随机(按分数加权)选出一个省份,并指定文化/宗教群体 4. 重复第二步和第三步,直到所有省份都有文化/宗教团体 5. 每个群体的宗教/文化都会再次被清除。该组内的每个文化/宗教会随机选择分配给该组的区域内的起始省份。第2到第4步则通过培养而非分组执行

除了普通邻接外,还使用“邻接”部分的邻接。请参见本文档的“邻接”部分。如果你的模组有岛屿,这些是*必须*的,否则他们可能会失去文化或宗教。因此,你的领地必须完全相连。你可以确保分数为0,确保它只会通过这种邻接方式传播,而实际上没有其他选择。

评分按culture_spread等部分进行。在原版中,你会在01_spread.txt中找到这些。可用的范围是文化/宗教为根源,省份被评估为FROM。 对于这些群体,提供的文化/宗教范围是该群体内的第一个条目。

你还可以在宗教、文化及其群体中设置以下参数: alternate_start = { some_trigger } 范围是文化/宗教(如果是群体层面,则是群体中的第一个文化/宗教)。可以用来检查具体设置等

Kingdom and empire spread

王国/帝国生成的机制与文化和宗教有点类似。 然而,与其同时评估所有文化/宗教,标题生成时一次只生成一个标题。

除了普通邻接外,还使用“邻接”部分的邻接。请参见本文档的“邻接”部分。

算法如下: 1. 我们会保留迄今为止所有位于公国边界上的省份名单 2. 我们随机占领一个与其中一个省份接壤的未分配公国。如果我们没有边境省份,就随便抓一个未分配的公国 3. 接着我们随机抓取与新建王国接壤的公国,直到达到目标大小(滑块给出的随机数)或用尽所有邻近公国 4. 如果公国数量不足,我们会尝试找邻近王国合并。如果现有王国只有一个公国那么大,无论如何都会合并。否则,只有在合并后才会合并,且仍低于最大公国限制。例如,如果最小值是3,最大为10,一个2公国王国会与邻近的8公国王国合并,但不会合并9公国王国 5. 我们回到第二步,直到离开未分配的公国 对于帝国,只需将“公国/王国”替换为“王国/帝国”即可。

在这个过程的最后,游戏会尝试透露那些与王国/帝国其他部分只有一点点关联的公国/王国,以获得更真实的头衔形状。这始终尊重最小和最高公国/王国。

公国/王国的选择方式类似于省份,在文化/宗教分布中;对于目前尚未授予头衔的省份,都会计算分数。注意,就像文化/宗教传播一样,每个独特的边界对都有自己的分数,所以如果两个省份都与另一个公国的同一个省份接壤,总共得四个分数。这有助于保持标题的简洁。

王国计分采用 dejure_kingdom_spread。 帝国评分采用dejure_empire_spread。 ROOT是被评估的省份。 FROM是称号中最接近其地理中心的省份,随着更多公国/王国的加入而更新。 FROMFROM是与被评估省相邻的省份

The historical dejure kingdoms/empires get marked as inactive.

Adjacencies

邻接格式如下: 邻接 = { 1 = 2 # 两个省份连接。顺序无关紧要;连接是双向的 2 = 3 ... }

Holy site generation

如果地图上有“holy_sites = 随机”参数,游戏会为任何带有省份的宗教生成五个圣地。

任何拥有县级称号的省份都有资格申请。选择确保同一省份不会被选中两次。母宗教会在异端之前被处理,确保你可以部分或全部基于母宗教的圣地建立异端圣地。

根据“holy_site_spread”中的权重随机选择一个省份。

为了让精美的选择更方便,我们增加了以下触发条件:

  • “num_holy_sites_generated < 3”——检查当前该宗教存在的圣地数量
  • “holy_site_distance = { 目标 = FROM 值 < 200 }” - 检查目标宗教最近圣地的距离
  • “religion_distance = { 目标 = FROM 值 > 500 }” - 检查目标宗教最近省份的距离。请注意,如果不小心,这张支票可能会非常昂贵。如果可以的话,改用holy_site_distance

当圣地随机生成时,rel 头衔的首选首都将设置为第一个生成的圣地。

游戏确保所有圣地最终都会有神庙,必要时增加持有槽位的#。在游牧者系列中,这会导致没有神庙,但保证有足够的格子建造神庙

Spread notes

请注意,扩散计算使用32位不动点数。 这意味着如果所有概率的总和大约超过210万,数字就会变成负数,局面就会一团糟。因此,尽量保持你的数字在合理范围内。 这也意味着无法使用小于0.001的修正值;它会被解释为0。

Culture name generation

文化命名非常简单。游戏会整理出每个拥有该文化的县份列表。然后它会随机选一个(不加权),然后五五开选出该县的形容词或所在公国的形容词。 文化群体也是同样的做法,只是检查的是县的文化群体,而不是文化。

Religion name generation

宗教命名有三种格式:基于角色名、基于王朝名和基于圣地。 这些情况同样可能。

使用哪些锁键是在“religion_name_formats”中定义的(原版中02_naming.txt)。 请注意,这三个部分*都*必须*至少有一个钥匙,否则使用宗教名称随机化时游戏会崩溃。

如果选中了圣地,会从“holy_site”部分随机选取一个锁键,随机选一个圣地并插入县名。

如果选择基于角色或王朝的命名,会列出所有拥有该宗教的省份,类似于文化生成。其中一个是随机选出的,然后用该省份的文化来生成这个名字。 基于角色名字的话,它会随机选一个男性名字,并根据常规命名权重进行权重。 基于王朝名称的话,它会随机选择该文化的某个王朝,没有任何限制。这个选秀权没有加权。如果王朝名称包含多个词,则使用该名称的最后一个词。撇号E.G.,如d'Anjou)将被视为空格。

然后它会从角色/王朝部分随机抽取一个位置键,然后通过本地化处理。

神祇、虔诚等名字会从religion_name_formats对应的部分随机选出。这些只是提供合适通用名称的锁键。异端的描述往往来自heresy_desc而非描述。 只要你定义了至少与地图上宗教数量相当的描述,描述就会是唯一的,这些描述会被划分为异端和非异端。

没有省份的宗教会复制母教的神名等命名,同时根据母教名称或圣地的文化生成自己的名字。

命名确定后,剧情效果“randomize_religion_names_effect”被调用。没有范围。它用于激活、授予持有者以及重新命名所有宗教头衔。

当宗教名称被随机化时,图标会被gfx/界面/shattered_random中的宗教图标条替换

Religion feature generation

宗教的处理顺序是按定义顺序处理的,除了先处理所有基础宗教,然后是异端。改革后的版本会被移除他们的特征,但不会生成新的特征,因为这会由宗教改革来处理。 首先,剧情效果“reset_religion_features_effect”被调用。所提供的范围是宗教作为根。 然后根据特征的具体情况ai_will_do来选择特征。 注意,FROM范围将未定义,因为没有改革者。

当特征被随机化时,政府中的“allows_matrilineal_marriage”会被忽略,并被默认总是“是”。

Random duke/king/empire generation

随机公爵生成其实很简单。 我们掷一个数字,从0到99。如果低于“duke_ignore_rate”参数,我们就跳过这个公国。

我们列出了公国所有统治者。我们按#他们在公国内拥有的县数排序。然后我们选拥有最多县的那个。平局根据持有的县数 # 来打破(即持有的郡份数更多)。统治者被视为持有其个人伯爵领,以及任何比所生成等级至少低两级的附庸的伯爵领地(这对公爵无关,但对国王和皇帝来说效果更好)。 如果他们持有的公国占有的比例至少和“duke_threshold”公爵参数相当,我们就给他们公国。 对于该地区剩余的统治者,如果他们仍处于伯爵等级且独立,我们会为每个统治者掷出0到99之间的数字。如果低于“duke_vassalization_rate”参数,他们就会被公爵附庸化。拥有超过一半领土的统治者不会被附庸化

国王和皇帝则与上述相同,但将“公爵”一词替换。 任何飞地(定义为仅与一个领地接壤且非沿海)会被周围领地附庸化,前提是它们等级较高

相关页面 (54)

EU4转档器模组制作Random WorldSteam创意工坊事件模组制作作用域修正内阁成员模组制作决议模组制作剧本模组制作单位模组制作历史模组制作图形模组制作地图外政权模组制作地图模组制作头衔模组制作奇观模组制作宗教模组制作定义宝物模组制作宣战理由模组制作家族模组制作小地图模组制作建筑模组制作指令控制台指令政体模组制作故障排除文化模组制作朝贡国类型模组制作本地化条件模组制作死亡模组制作法律模组制作游戏规则模组制作特质模组制作界面模组制作疾病模组制作目标模组制作盾徽模组制作省份模组制作社团模组制作科技模组制作称号模组制作继承模组制作编辑游戏存档肖像模组制作脚本荣誉头衔模组制作血脉模组制作角色模组制作贸易路线模组制作音乐模组制作验证器