特质模组制作:修订间差异

本页面所适用的版本可能已经过时,最后更新于1.0
(咯咯炀移动页面Trait modding特质模组制作
(06:52, 12 February 2021‎ Anonymous@98)
 
(未显示2个用户的6个中间版本)
第1行: 第1行:
{{Version|1.0}}
{{Version|1.0}}
Traits are possessed by [[character]]s in the game and can modify their attributes, opinions, personality and other parameters.
特质被游戏内的[[ 角色]] 持有,可以修正他们的属性、好感、性格和其他参数。
== Creating a trait ==
Traits are defined in .txt files in the directory {{path|common/traits}}.


Example trait:
== 创建一个特质 ==
特质在<code>common/traits</code>中的txt文件中定义。
 
举例:
<pre>
<pre>
my_new_trait = {
my_new_trait = {
index = 0 # A unique numerical indentifier for the trait
index = 0 # 特质的唯一数字标识符
education = yes #yes/no to define whether this is an Education trait
education = yes #yes 或no,定义这个特质是否是教育特质
# Flags and modifiers
# 旗标和修正
      ... # Flags and modifiers
      ... # 旗标和修正
      ... # Flags and modifiers
      ... # 旗标和修正
      
      
}
}
</pre>
</pre>
=== Special trait flags ===
=== 特殊特质旗标 ===
{| class="wikitable sortable" width="100%"
{| class="wikitable sortable" width="100%"
! width="10%" | Name
! width="10%" | 名称
! width="25%" | Description
! width="25%" | 描述
! width="25%" | Usage
! width="25%" | 用法
|-
|index
|用于保存文件的数字标识符(索引值)。最多可以是65535。
|index = X
|-
|-
|health
|health
|Changes actual health value
| 改变实际健康值。
|health = X.X
|health = X.X
|-
|-
|fertility
|fertility
|Percentage modifier on fertility
| 生育力百分比修改器。
|fertility = X.X
|fertility = X.X
|-
|-
|inhert_chance
|inherit_chance
|Chance of passing on the trait to children
| 遗传给子女的几率。
|inherit_chance = X
|inherit_chance = X
|-
|-
|birth
|birth
|How many characters out of 100 are born with this trait (when not inherited). Can have decimals
|100 个角色中,有多少个角色天生就有这个特质(不遗传时)。可以有小数。
|birth = X
|birth = X
|-
|-
|random_creation
|random_creation
|How many characters out of 100 are created with this trait? (As opposed to actually being born; this is for things like generated characters, script characters, etc.)
| 在100个角色中,有多少角色是带着这个特质被创造出来的?(相对于实际出生而言,这是对生成角色、剧本角色等而言的。)
|random_creation = X
|random_creation = X
|-
|-
|triggered_opinion
|triggered_opinion
|Applied if the associated conditions are fulfilled
| 如果相关条件得到满足,则适用
|<pre>
|<pre>
triggered_opinion = {
triggered_opinion = {
opinion_modifier = opinion_modifier_key
opinion_modifier = opinion_modifier_key


# Everything below is optional
# 以下所有参数是可选的
parameter = doctrine_parameter_key
parameter = doctrine_parameter_key
check_missing = yes
check_missing = yes
第60行: 第65行:
|-
|-
|compatibility
|compatibility
|This is not a opinion modifier, but can be used by 'compatibility_modifier' and 'trait_compatibility' trigger. Compatibility is checked for the trait holder vs the listed traits (of another character.)
| 这不是一个好感修正,但可以被'compatibility_modifier' 'trait_compatibility' 触发使用。Compatibility是检查特质持有者与所列(另一个角色的)特质的相性。
|<pre>
|<pre>
compatibility = {
compatibility = {
第69行: 第74行:
|-
|-
|parent_inheritance_sex
|parent_inheritance_sex
|specifies whether the trait can be inherited from male/female/all parents (all by default)
| 指定该特质是否可以从男性/ 女性/ 所有父母那里继承(默认为全部)。
|parent_inheritance_sex = male/female/all
|parent_inheritance_sex = male/female/all
|-
|-
|child_inheritance_sex
|child_inheritance_sex
|specifies whether the trait can be inherited by male/female/all children (all by default)
| 指定该特质是否可以由男性/ 女性/ 所有子代继承(默认为全部)。
|child_inheritance_sex = male/female/all
|child_inheritance_sex = male/female/all
|-
|-
|genetic
|genetic
|If set to yes (no by default), the inheritance will follow the following rules: The trait can be inactive. Children can inherit the trait from both active and inactive parent traits.
| 如果设置为“yes”(默认为“no”),继承将遵循以下规则。特质可以是隐性的。子女可以从显性和隐性的父母特质中继承该特质。
An active trait is inherited with 100% chance, an inactive trait with a 50% chance. If the trait is successfully inherited from both parents, it becomes active.
显性有100% 的机会被继承,隐性的特质有50% 的机会被继承。如果该特质从父母双方成功继承,它就会变成显性的。
If it's inherited only from one parent, it's inactive.
如果只从父母一方继承,则为隐性特质。
|genetic = yes/no
|genetic = yes/no
|-
|-
|inherit_from_real_father
|inherit_from_real_father
|Should the trait be inherited from the real (biological) father? (yes by default)
| 该特质是否应该从亲生(生)父亲那里继承?( 默认为“yes”)
|inherit_from_real_father = yes/no
|inherit_from_real_father = yes/no
|-
|-
|enables_inbred
|enables_inbred
|This trait enables the children of the character to be considered for the inbred trait (no by default).
| 这个特质可以让角色的子女被考虑为近亲繁殖(默认为“no”)。
It only enables the inbred chance if there are common ancestors of the parents, so there is no risk of 'inbred' if the parents are not related.
只有在父母有共同祖先的情况下,它才会启用近亲繁殖概率,所以如果父母没有关系,就不会有' 近亲繁殖' 的风险。
If inbred is not enabled by parents' traits, but there are common ancestors, there's a chance (same as for inbred trait when it's enabled) the child will get a random trait with enables_inbred = yes.
如果近亲繁殖没有被父母的特质启用,但是他们有共同的祖先,那么有机会(和近亲繁殖特质启用时一样),孩子会得到一个随机的特质,该特质enabling_inbred = yes
|enables_inbred = yes/no
|enables_inbred = yes/no
|-
|-
|good
|good
|marks this trait as good (default no)
| 标记该特质为{{Ruby|好的|good}}(默认为no)。
|good = yes/no
|good = yes/no
|-
|-
|genetic_constraint_all
|genetic_constraint_all
|This genetic constraint will be applied when gaining the trait
| 当获得特质时,将采用这种遗传约束(genetic constraint )。为了添加新的遗传约束,在common\ethnicities中设置范围前,需要在gfx\portraits\trait_portrait_modifiers中进一步修改。
|genetic_constraint_all = beauty
|genetic_constraint_all = beauty
|-
|-
|forced_portrait_age_index
|forced_portrait_age_index
|The character will use this portrait age index instead of one of the age sub-genes marked as "generic". You can specify more than one such index if you want to randomize between them. If multiple traits force indexes, it randomizes between all of them
| 角色将使用这个肖像年龄{{Ruby|索引值|index}},而不是标记为“{{Ruby|通用|generic}}”的某个年龄子基因。如果你想在它们之间随机化,你可以指定多个这样的{{Ruby|索引值|index}}。如果多个特征被强制索引,则会在所有的{{Ruby|索引值|index}}之间随机化。
|forced_portrait_age_index = 1
|forced_portrait_age_index = 1
|-
|-
|forced_portrait_age_index
|forced_portrait_age_index
|Example showing that you can define more than one index
| 显示你可以定义不止一个{{Ruby|索引值|index}}的例子。
|forced_portrait_age_index = 2
|forced_portrait_age_index = 2
|-
|-
|portrait_extremity_shift
|portrait_extremity_shift
|When gaining this trait, every single morph gene will be shifted by this percentage towards 0 or 1; whichever it is closest to. E.G., 0.4 will shift 25% towards 0, resulting in 0.3
| 获得该特质时,每个{{Ruby|形态基因|morph gene}}将以这个百分比向0或1(中最近的一个)移动;例如,0.4 将向0移动25% ,结果为0.3
|portrait_extremity_shift = 0.25
|portrait_extremity_shift = 0.25
|-
|-
|immortal
|immortal
|Will stop visual aging, and make the character immune to natural death. Can still be killed by script. Fertility will match visual age. You can use set_immortal_age to change the visual age
| 将阻止视觉上的衰老,并使角色免疫自然死亡。仍可被脚本杀死。生育力将与视觉上的年龄相匹配。你可以使用set_immortal_age来改变视觉上的年龄。
|immortal = yes
|immortal = yes
|-
|-
|physical
|physical
|Marks the trait as physical
| 将该特质标记为身体特质
|physical = yes
|physical = yes
|-
|-
|health_trait
|health_trait
|Marks the trait as health related
| 将该特质标记为与健康有关
|health_trait = yes
|health_trait = yes
|-
|-
|fame
|fame
|Marks the trait as fame related
| 标记该特质为名誉相关
|fame = yes
|fame = yes
|-
|-
|trait_exclusive_if_realm_contains
|trait_exclusive_if_realm_contains
|A list of terrain types that are taken into consideration when commander traits are randomly assigned to commanders. These traits are only assigned/considered if the commander's culture contains a province that has one of the terrain types specified in the list
| 将领特质随机分配给将领时考虑的地形类型列表。只有当将领的文化中包含一个具有列表中指定地形类型之一的省份时,才会分配/ 考虑这些特质。
|trait_exclusive_if_realm_contains = {}
|trait_exclusive_if_realm_contains = {}
|}
|}
=== Creating immortal traits ===
As with the previous game, traits that grant immortality are not present in the game at launch but are already programmed and can be easily created. It only requires adding the following parameter to a trait: <code>immortal = yes</code>


For your immortals to look forever young, you can use the effect immortal age. Such as, <code>set_immortal_age = 30</code>
=== 创建永生特质 ===
== Localization ==
如同上一代游戏,授予永生属性的特质在游戏发布时未出现,但已经编写好了程序,可以轻易被创建。只需要在特质中加入以下参数:<code>immortal = yes</code>。
By default, the name key is trait_<key>, and the desc key is trait_<key>_desc.
 
== Icon ==
为了让你的永生者看起来永远年轻,你可以设置永生年龄。例如,<code>set_immortal_age = 30</code>
The default icon path is gfx/interface/icons/traits/<trait>.dds.
== 本地化 ==
默认情况下,名称键值是trait_<key> ,描述键值是trait_<key>_desc
== 图标 ==
默认的图标路径位于<code>gfx/interface/icons/traits/<trait>.dds</code>。
 
这些可以用动态描述进行覆盖。
例如:


These can be overridden with dynamic descriptions.
E.G.,
name = some_loc_key
name = some_loc_key
Or
 
或者
 
<pre>
name = {
name = {
first_valid = { ... }
first_valid = { ... }
}
}
</pre>


The parameters are: '''''name, desc, icon'''''.
参数是:'''''name ,desc,icon'''''
 
The root scope is the character.
Note that in some cases there may be no root, so make sure your first check is a fallback for "NOT = { exists = this }" if you add dynamic names, descs, or icons.


An example:
Root作用域是该角色。注意,某些情况下可能没有Root,所以如果你在添加动态名称、描述和图标,确保你的第一个检查是“NOT = { exists = this }”作为{{Ruby|fallback|回退}}。
举例:
<pre>
<pre>
icon = {
icon = {
第173行: 第182行:
</pre>
</pre>
{{Modding navbox}}
{{Modding navbox}}
[[Category:Modding]]
[[Category: 模组制作]]
[[en:Trait modding]]
[[en:Trait modding]]

2021年2月16日 (二) 18:15的最新版本

特质被游戏内的角色持有,可以修正他们的属性、好感、性格和其他参数。

创建一个特质[编辑 | 编辑源代码]

特质在common/traits中的txt文件中定义。

举例:

my_new_trait = {
	index = 0 # 特质的唯一数字标识符
	education = yes #yes或no,定义这个特质是否是教育特质
	# 旗标和修正
        ... # 旗标和修正
        ... # 旗标和修正
        
}

特殊特质旗标[编辑 | 编辑源代码]

名称 描述 用法
index 用于保存文件的数字标识符(索引值)。最多可以是65535。 index = X
health 改变实际健康值。 health = X.X
fertility 生育力百分比修改器。 fertility = X.X
inherit_chance 遗传给子女的几率。 inherit_chance = X
birth 100个角色中,有多少个角色天生就有这个特质(不遗传时)。可以有小数。 birth = X
random_creation 在100个角色中,有多少角色是带着这个特质被创造出来的?(相对于实际出生而言,这是对生成角色、剧本角色等而言的。) random_creation = X
triggered_opinion 如果相关条件得到满足,则适用
triggered_opinion = {
	opinion_modifier = opinion_modifier_key	

	# 以下所有参数是可选的
	parameter = doctrine_parameter_key 	
	check_missing = yes			
	
	same_faith = yes			
	same_dynasty = yes			
	ignore_opinion_value_if_same_trait = yes	
	male_only = yes	
	female_only = yes
}
compatibility 这不是一个好感修正,但可以被'compatibility_modifier'和'trait_compatibility'触发使用。Compatibility是检查特质持有者与所列(另一个角色的)特质的相性。
compatibility = {
	gluttonous = 20
	drunkard = @pos_compat_low
}
parent_inheritance_sex 指定该特质是否可以从男性/女性/所有父母那里继承(默认为全部)。 parent_inheritance_sex = male/female/all
child_inheritance_sex 指定该特质是否可以由男性/女性/所有子代继承(默认为全部)。 child_inheritance_sex = male/female/all
genetic 如果设置为“yes”(默认为“no”),继承将遵循以下规则。特质可以是隐性的。子女可以从显性和隐性的父母特质中继承该特质。

显性有100%的机会被继承,隐性的特质有50%的机会被继承。如果该特质从父母双方成功继承,它就会变成显性的。 如果只从父母一方继承,则为隐性特质。

genetic = yes/no
inherit_from_real_father 该特质是否应该从亲生(生)父亲那里继承?(默认为“yes”)。 inherit_from_real_father = yes/no
enables_inbred 这个特质可以让角色的子女被考虑为近亲繁殖(默认为“no”)。

只有在父母有共同祖先的情况下,它才会启用近亲繁殖概率,所以如果父母没有关系,就不会有'近亲繁殖'的风险。 如果近亲繁殖没有被父母的特质启用,但是他们有共同的祖先,那么有机会(和近亲繁殖特质启用时一样),孩子会得到一个随机的特质,该特质enabling_inbred = yes。

enables_inbred = yes/no
good 标记该特质为 好的good(默认为no)。 good = yes/no
genetic_constraint_all 当获得特质时,将采用这种遗传约束(genetic constraint)。为了添加新的遗传约束,在common\ethnicities中设置范围前,需要在gfx\portraits\trait_portrait_modifiers中进一步修改。 genetic_constraint_all = beauty
forced_portrait_age_index 角色将使用这个肖像年龄 索引值index,而不是标记为“ 通用generic”的某个年龄子基因。如果你想在它们之间随机化,你可以指定多个这样的 索引值index。如果多个特征被强制索引,则会在所有的 索引值index之间随机化。 forced_portrait_age_index = 1
forced_portrait_age_index 显示你可以定义不止一个 索引值index的例子。 forced_portrait_age_index = 2
portrait_extremity_shift 获得该特质时,每个 形态基因morph gene将以这个百分比向0或1(中最近的一个)移动;例如,0.4将向0移动25%,结果为0.3。 portrait_extremity_shift = 0.25
immortal 将阻止视觉上的衰老,并使角色免疫自然死亡。仍可被脚本杀死。生育力将与视觉上的年龄相匹配。你可以使用set_immortal_age来改变视觉上的年龄。 immortal = yes
physical 将该特质标记为身体特质 physical = yes
health_trait 将该特质标记为与健康有关 health_trait = yes
fame 标记该特质为名誉相关 fame = yes
trait_exclusive_if_realm_contains 将领特质随机分配给将领时考虑的地形类型列表。只有当将领的文化中包含一个具有列表中指定地形类型之一的省份时,才会分配/考虑这些特质。 trait_exclusive_if_realm_contains = {}

创建永生特质[编辑 | 编辑源代码]

如同上一代游戏,授予永生属性的特质在游戏发布时未出现,但已经编写好了程序,可以轻易被创建。只需要在特质中加入以下参数:immortal = yes

为了让你的永生者看起来永远年轻,你可以设置永生年龄。例如,set_immortal_age = 30

本地化[编辑 | 编辑源代码]

默认情况下,名称键值是trait_<key>,描述键值是trait_<key>_desc。

图标[编辑 | 编辑源代码]

默认的图标路径位于gfx/interface/icons/traits/<trait>.dds

这些可以用动态描述进行覆盖。 例如:

name = some_loc_key

或者

name = {
	first_valid = { ... }
}

参数是:name,desc,icon

Root作用域是该角色。注意,某些情况下可能没有Root,所以如果你在添加动态名称、描述和图标,确保你的第一个检查是“NOT = { exists = this }”作为 fallback回退。 举例:

icon = {
	first_valid = {
		triggered_desc = {
			trigger = { NOT = { exists = this } }
			desc = "gfx/interface/icons/traits/diligent.dds"
		}
		
		triggered_desc = {
			trigger = { gold > 1000 }
			desc = "gfx/interface/icons/traits/diligent.dds"
		}
		
		desc = "gfx/interface/icons/traits/deceitful.dds"
	}
}