角色模组制作:修订间差异

本页面所适用的版本可能已经过时,最后更新于1.1
第46行: 第46行:
 如果你遇到任何问题,请检查游戏的error.log,查看任何特定的错误信息,并相应地修改你的脚本。
 如果你遇到任何问题,请检查游戏的error.log,查看任何特定的错误信息,并相应地修改你的脚本。


== Adding new characters or changing existing ==
== 添加新角色或改变现有角色 ==
For some mods, for example total conversions, new characters are needed. In Crusader Kings 3 this kind of character modding is pretty easy.
对于一些mod,例如总的转换,需要新的角色。在《十字军之王3》中,制作角色mod非常简单。
After creating your mod (which is explained in a corresponding article), you have to edit an existing or create a new txt.-file in the folder {{cite file|example-mod/history/characters}}.
在创建你的mod后(在相应的文章中会有解释),你必须在{{cite file|example-mod/history/characters}} 文件夹中编辑一个现有的或创建一个新的txt.-文件。
In our example the file will be named {{cite file|example.txt}}. An example character will look like this:
在我们的例子中,这个文件将被命名为{{cite file|example.txt}} 。一个角色的例子会是这样的。
<pre>
<pre>
999001 = {
999001 = {
第80行: 第80行:
}
}
</pre>
</pre>
* First of all, a character ID is assigned. The ID needs to be unique; going for 900000 and further should be safe. This ID is used to refer to the character within the game files.
* 首先,分配一个角色ID。这个ID必须是唯一的;用900000或更多的ID应该是安全的。这个ID在游戏文件中用来指代这个角色。
* The first name of the character can be set via the use of <code>name = "NAME"</code>. Note that in-game names may change based on culture (see [[culture modding]]).
* 角色的第一个名字可以通过使用<code>name = "NAME"</code> 来设置。请注意,游戏中的名字可能会根据文化而改变(参见[[ 文化修改]] )。
* In the dna-line the path for a specific dna can be inserted. An existing dna from the {{cite file|00_dna.txt}} in {{cite file|common/dna_data}} can be used or an new created by using the portrait editor.
* dna-line 中,可以插入特定 dna 的路径。可以使用{{cite file|common/dna_data}} 文件夹中的{{cite file|00_dna.txt}} 中现有的dna,也可以使用肖像编辑器创建一个新的dna。
* To set the character's gender to female, use <code>female = yes</code>.
* 要将角色的性别设置为女性,使用<code>female = yes</code>
* A character can be added to an existing or a new dynasty. Use <code>dynasty = DYNASTY_ID</code> for dynasties without houses, or <code>dynasty_house = HOUSE_ID</code> otherwise. The dynasty ID and house ID can be found in {{cite file|common/dynasties}} and {{cite file|common\dynasty_houses}}, respectively. See [[dynasties modding]].
* 一个角色可以被添加到一个现有的或新的宗族。Use <code>dynasty = DYNASTY_ID</code> for dynasties without houses, or <code>dynasty_house = HOUSE_ID</code> otherwise. The dynasty ID and house ID can be found in {{cite file|common/dynasties}} and {{cite file|common\dynasty_houses}}, respectively. See [[dynasties modding]].
* Culture and faith must be assigned with <code>culture = CULTURE_ID</code> and <code>religion = FAITH_ID</code>, respectively. The right names can be found by searching in the corresponding folders {{cite file|common/culture}} and {{cite file|common/religion}}.
* 文化和信仰必须分别用<code>culture = CULTURE_ID</code> <code>religion = FAITH_ID</code> 来分配。正确的名称可以在相应的文件夹{{cite file|common/culture}} {{cite file|common/religion}} 中搜索找到。
* Attributes can be set freely. Their value caps at 100. If they are not assigned, the game will generate random values. Note that this only adds to the character's ''base'' attribute values, so the final value may be smaller or larger depending on traits and other factors. The attributes are as follows:
* 属性可以自由设置,其值上限为100。它们的值上限为100。如果它们没有被分配,游戏将随机生成数值。请注意,这只是在角色的'' 基础'' 属性值基础上增加,所以最终的数值可能会根据特性和其他因素而变小或变大。属性如下
:* <code>martial</code>
:* <code>martial</code>
:* <code>prowess</code>
:* <code>prowess</code>
第93行: 第93行:
:* <code>stewardship</code>
:* <code>stewardship</code>
:* <code>learning</code>
:* <code>learning</code>
* Traits can be added through the use of <code>trait = TRAIT_ID</code>. Replace <code>TRAIT_ID</code> with the appropriate [[trait ID]]. An unlimited amount of traits may be added; unless assigned or specified otherwise, the game will generate random traits. To ensure that traits are not changed at the start of the game, use <code>disallow_random_traits = yes</code>.
* 可通过使用<code>trait = TRAIT_ID</code> 添加特质。用适当的[[特质ID]]替换<code>TRAIT_ID</code> 。可以添加无限量的特质;除非分配或指定,否则游戏将随机生成特质。为了确保在游戏开始时特质不会被改变,使用<code>disallow_random_traits = yes</code>
* Parents may be optionally assigned by using <code>father = CHARACTER_ID</code> and <code>mother = CHARACTER_ID</code>. Ensure that one uses the target character's ID, as opposed to their name. This can be useful in creating families.
* 父母可以通过使用<code>father = CHARACTER_ID</code> <code>mother = CHARACTER_ID</code> 来选择分配。确保使用目标人物的ID,而不是他们的名字。这在创建家族时很有用。
* Sexuality can be set through <code>sexuality = SEXUALITY_ID</code>. The following can be used:
* 性取向可以通过<code>sexuality = SEXUALITY_ID</code> 来设置。可以使用以下
:* <code>asexual</code>
:* <code>asexual</code>
:* <code>heterosexual</code>
:* <code>heterosexual</code>
:* <code>homosexual</code>
:* <code>homosexual</code>
:* <code>bisexual</code>
:* <code>bisexual</code>
* Set the character's base health through <code>health = HEALTH_VALUE</code>, and fertility with <code>fertility = FERTILITY_VALUE</code>.
* 通过<code>health = HEALTH_VALUE</code> 设置角色的基本健康状况,通过<code>fertility = FERTILITY_VALUE</code> 设置生育能力。


* Finally, birth and death of the character have to be defined. Crusader Kings 3 uses <code>yyyy.mm.dd</code> for date formats. Define a date block using <code>DATE = {...}</code>, replacing <code>...</code> with <code>birth = yes</code> or <code>death = yes</code>. Alternatively, replace <code>yes</code> with the date surrounded by speech marks (<code>"</code>). See [[#Advanced use of date blocks|more uses of date blocks]].
* 最后,必须定义角色的出生和死亡。Crusader Kings 3 使用<code>yyyy.mm.dd</code> 作为日期格式。使用<code>DATE = {...}</code> 定义日期块,将<code>...</code> 替换为<code>birth = yes</code> <code>death = yes</code> 。或者,将<code>yes</code> 替换为由语音标记包围的日期(<code>"</code>) 。参见[[# 日期块的高级用法| 日期块的更多用法]]


The same steps work for changing existing characters. Sometimes, like for Charlemagne, there are already most of the possible lines.
同样的步骤也适用于改变现有的角色。有时,像查理曼大帝,已经有大部分的可能行。


=== Advanced use of date blocks ===
=== Advanced use of date blocks ===

2020年11月22日 (日) 12:09的版本

修改角色涉及改变他们的外观、数据和行为。这可以从小的调整,如添加金币或虔诚,到复杂的变化,如脚本新的视觉效果和更多。

通过脚本改变外观

十字军之王3使用DNA系统来定义角色的外观,与《十字军之王2》中使用的系统相比有所改变。这些变化使得外观更加具体和逼真。

你可以通过dna_modifiers改变角色的DNA。在gfx/portraits/portrait_modifiers中创建一个文件,文件名为任何文件名,然后添加这个

dna_change_example_modifier = {
    usage = game
    dna_change_example_modifier = {
        dna_modifiers = {
            accessory = {
                mode = add
                gene = headgear
                template = western_imperial
                value = 1.0
            }
            color = {
                mode = modify
                gene = hair_color
                x = 0.5
                y = -0.5
            }
        }
        weight = {
            base = 0
            modifier = {
                add = 100
                has_character_flag = dna_change_example_modifier
            }
        }
    }
}

这将为任何带有 "dna_change_example_modifier "标志的角色添加西方帝国头饰并改变其头发颜色。你可以用add_character_flag命令为一个角色添加一个标志,就像这样

add_character_flag = {
    flag = dna_change_example_modifier
}

如果你遇到任何问题,请检查游戏的error.log,查看任何特定的错误信息,并相应地修改你的脚本。

添加新角色或改变现有角色

对于一些mod,例如总的转换,需要新的角色。在《十字军之王3》中,制作角色mod非常简单。 在创建你的mod后(在相应的文章中会有解释),你必须在example-mod/history/characters文件夹中编辑一个现有的或创建一个新的txt.-文件。 在我们的例子中,这个文件将被命名为example.txt。一个角色的例子会是这样的。

999001 = {
	name = "Henri"	#Henri de Lyon
	dna = lyon_twin_dna_entry
	dynasty = 2100001 #Lyon
	martial = 14
	diplomacy = 23
	intrigue = 10
	stewardship = 21
	religion = catholic	
	culture = french
	trait = diligent
	trait = education_learning_4
	trait = just
	trait = twin
	trait = physique_good_3
	trait = intellect_good_3
	trait = beauty_good_3
	trait = shrewd
	disallow_random_traits = yes
	father = 999003
	mother = 999004
	846.7.29 = {
		birth = yes
	}
	920.5.25 = {
		death = yes
	}
}
  • 首先,分配一个角色ID。这个ID必须是唯一的;用900000或更多的ID应该是安全的。这个ID在游戏文件中用来指代这个角色。
  • 角色的第一个名字可以通过使用name = "NAME"来设置。请注意,游戏中的名字可能会根据文化而改变(参见文化修改)。
  • 在 dna-line 中,可以插入特定 dna 的路径。可以使用common/dna_data文件夹中的00_dna.txt中现有的dna,也可以使用肖像编辑器创建一个新的dna。
  • 要将角色的性别设置为女性,使用female = yes
  • 一个角色可以被添加到一个现有的或新的宗族。Use dynasty = DYNASTY_ID for dynasties without houses, or dynasty_house = HOUSE_ID otherwise. The dynasty ID and house ID can be found in common/dynasties and common\dynasty_houses, respectively. See dynasties modding.
  • 文化和信仰必须分别用culture = CULTURE_IDreligion = FAITH_ID来分配。正确的名称可以在相应的文件夹common/culturecommon/religion中搜索找到。
  • 属性可以自由设置,其值上限为100。它们的值上限为100。如果它们没有被分配,游戏将随机生成数值。请注意,这只是在角色的基础属性值基础上增加,所以最终的数值可能会根据特性和其他因素而变小或变大。属性如下
  • martial
  • prowess
  • diplomacy
  • intrigue
  • stewardship
  • learning
  • 可通过使用trait = TRAIT_ID添加特质。用适当的特质ID替换TRAIT_ID。可以添加无限量的特质;除非分配或指定,否则游戏将随机生成特质。为了确保在游戏开始时特质不会被改变,使用disallow_random_traits = yes
  • 父母可以通过使用father = CHARACTER_IDmother = CHARACTER_ID来选择分配。确保使用目标人物的ID,而不是他们的名字。这在创建家族时很有用。
  • 性取向可以通过sexuality = SEXUALITY_ID来设置。可以使用以下
  • asexual
  • heterosexual
  • homosexual
  • bisexual
  • 通过health = HEALTH_VALUE设置角色的基本健康状况,通过fertility = FERTILITY_VALUE设置生育能力。
  • 最后,必须定义角色的出生和死亡。Crusader Kings 3使用yyyy.mm.dd作为日期格式。使用DATE = {...}定义日期块,将...替换为birth = yesdeath = yes。或者,将yes替换为由语音标记包围的日期(")。参见日期块的更多用法

同样的步骤也适用于改变现有的角色。有时,像查理曼大帝,已经有大部分的可能行。

Advanced use of date blocks

  • add_spouse = CHARACTER_ID, remove_spouse = CHARACTER_ID to add/remove spouses.
  • give_nickname = NICKNAME_ID to add nicknames. Later uses of give_nickname replace old nicknames. See nickname ID.
  • employer = CHARACTER_ID, similar to set_employer = CHARACTER_ID effect, moves the scoped character to the specified character's court.
  • give_council_position = COUNCILLOR_ID to make the character a councillor. The following are accepted:
  • councillor_marshal
  • councillor_spymaster
  • councillor_chancellor
  • councillor_court_chaplain
  • councillor_steward
  • Assignments defined in the previous section, like trait = TRAIT_ID, may also be used in date blocks.
  • Various other effects can be used that have a character scope, either directly in the date block or in an effect sub-block. See the following example from the game files, used to add a character flag and set character sexuality randomly:[1]
101515 = {
	...
	1019.1.1 = {
		...
		effect = {
			add_character_flag = has_scripted_appearance
			random_list = {
				50 = { set_sexuality = heterosexual }
				50 = { set_sexuality = bisexual }
			}
		}
	}
	...
}

References

  1. game\history\characters\danish.txt, character 101515