该编辑可以被撤销。 请检查下面的对比以核实您想要撤销的内容,然后发布下面的更改以完成撤销。
最后版本 | 您的文本 | ||
第5行: | 第5行: | ||
==位置== | ==位置== | ||
事件 | 事件 属于 位于[[模组结构#Mod文件夹|Mod文件夹]]中的<code>Events</code>目录中的.txt文件。每个文件可以容纳任意多个事件。<code>events</code>目录 也 可以 有包含自己事件文件的 子文件夹 (如果愿意的话) 。 | ||
== 结构 == | == 结构 == | ||
整体结构与[[ck2:事件模组制作|CK2的事件]]相似,语法进行了一些调整,并添加了大量的额外功能,其中许多是可选的。以下是最基本的事件(其中每个元素会在后面的小节中 | 整体结构与[[ck2:事件模组制作|CK2的事件]]相似,语法进行了一些调整,并添加了大量的额外功能,其中许多是可选的。以下是最基本的事件(其中每个元素会在后面的小节中 提到 ): | ||
<syntaxhighlight lang="coffeescript"> | <syntaxhighlight lang="coffeescript"> | ||
namespace = example | namespace = example | ||
第21行: | 第21行: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
好了!将这段代码添加到你的模组中,在游戏内控制台输入"event example.1"来触发它,你就会得到一个可用的事件!这就是一个最基本的事件 | 好了!将这段代码添加到你的模组中,在游戏内控制台输入"event example.1"来触发它,你就会得到一个可用的事件!这就是一个最基本的事件结构,其他的内容都是可选的,但是 它们在完善 事件时是必 须 的。以下是一个更为详细的 活动 示例(仅包含基础内容): | ||
<syntaxhighlight lang="coffeescript"> | <syntaxhighlight lang="coffeescript"> | ||
第28行: | 第28行: | ||
type = character_event | type = character_event | ||
title = "A Modding Example Worthy of Kings" # 专业提示:在编写时,你可以使用字符串,稍后再用本地化替换它。 | title = "A Modding Example Worthy of Kings" # 专业提示:在编写时,你可以使用字符串,稍后再用本地化替换它。 | ||
desc = birth.1003.b # 对于Sublime用户而言,有一个非常出色的功能,即“在文件中查找”,非常适用于 | desc = birth.1003.b # 对于Sublime用户而言,有一个非常出色的功能,即“在文件中查找”,非常适用于 查找代码 。 | ||
theme = mental_break | theme = mental_break | ||
第40行: | 第40行: | ||
=== ID 和命名空间 === | === ID 和命名空间 === | ||
命名空间(Namespaces)可以是任何由字母和数字组成的字符串(不包含'.'字符), | 命名空间(Namespaces)可以是任何由字母和数字组成的字符串(不包含'.'字符), 并且 用作前缀,形式为 <code><namespace>.<id></code> 。<br> | ||
ID 是对于一个事件的唯一标识。<br> | |||
如果一个事件文件使用一个命名空间,那么它必须在文件开头声明 <code>namespace = <namespace></code> 。对每个使用该命名空间的文件都需要进行声明。 | 如果一个事件文件使用一个命名空间,那么它必须在文件开头声明 <code>namespace = <namespace></code> 。对每个使用该命名空间的文件都需要进行声明。 | ||
=== | === 旗帜 === | ||
旗帜(Flags)是决定你的事件种类和外观的顶级变量。它们有一组有限的取值。 | |||
{| class="wikitable" | {| class="wikitable" | ||
第52行: | 第52行: | ||
|- | |- | ||
| type | | type | ||
|| 事件的类型决定了根(root)的 | || 事件的类型决定了根(root)的 范围(scope)。 | ||
|| | || | ||
* character_event | * character_event | ||
* letter_event | * letter_event | ||
* none (当一个事件完全不使用作用域时) | |||
* none (当一个事件完全不使用 | * empty (一个无角色事件 必须的 触发 器 。注意:这意味着输入 type = empty ) | ||
* empty ( | |||
|- | |- | ||
| hidden | | hidden | ||
第66行: | 第65行: | ||
== 人物肖像 == | == 人物肖像 == | ||
在《十字军之王3》中,人物肖像是3D的,而且 | 在《十字军之王3》中,人物肖像是3D的,而且 还有 动 画 啦! 肖像由 不同的 肖像位置 列表 和动画 列表 决定。 | ||
=== 人物肖像定位 === | === 人物肖像定位 === | ||
第82行: | 第81行: | ||
| lower_left_portrait || 在事件框的左下方显示肖像。 | | lower_left_portrait || 在事件框的左下方显示肖像。 | ||
|- | |- | ||
| lower_center_portrait || 在事件框的下方 | | lower_center_portrait || 在事件框的 正 下方显示肖像。 | ||
|- | |- | ||
| lower_right_portrait || 在事件框的右下方显示肖像。 | | lower_right_portrait || 在事件框的右下方显示肖像。 | ||
|} | |} | ||
这是一个同时使用所有人物肖像位置的示例,效果截 | 这是一个同时使用所有人物肖像位置的示例, 附 效果截图: | ||
<pre> | <pre> | ||
example_event.1001 = { | example_event.1001 = { | ||
left_portrait = { | left_portrait = { | ||
character = ROOT # | character = ROOT # Whoever this is scoped to will show up in this event window position, exhibiting the chosen animation. | ||
animation = fear # | animation = fear # Take note that characters with SOME genetic traits (for example, gigantism, dwarfism) that change their character models have different animations, and if you assign one of THOSE animations to a character that does not have that model, crashes may occur. | ||
} | } | ||
right_portrait = { | right_portrait = { | ||
第127行: | 第126行: | ||
| triggered_outfit|| 设置事件中使用的服装 ||<pre>triggered_outfit = { | | triggered_outfit|| 设置事件中使用的服装 ||<pre>triggered_outfit = { | ||
trigger = {} | trigger = {} | ||
outfit_tags = no_clothes | outfit_tags = no_clothes (also accepts multiple tags, in the format outfit_tags = { tag1 tag2 } | ||
remove_default_outfit = yes/no | remove_default_outfit = yes/no | ||
}</pre> | }</pre> | ||
|- | |- | ||
| hide_info|| 避免显示人物的任何信息 (提示文字 | | hide_info|| 避免显示人物的任何信息 (提示文字, 盾徽, clicks 等). 只 会 显示人物肖像 ||<code>hide_info = yes/no</code> | ||
|} | |} | ||
第137行: | 第136行: | ||
{|class="wikitable" | {|class="wikitable" | ||
|- | |- | ||
!colspan="6"| | !colspan="6"|Animation | ||
|- | |||
| admiration | |||
| aggressive_axe | |||
| aggressive_dagger | |||
| aggressive_hammer | |||
| aggressive_mace | |||
| aggressive_spear | |||
|- | |- | ||
| | | aggressive_sword | ||
| | | anger | ||
| | | assassin | ||
| | | beg | ||
| | | boredom | ||
| celebrate_axe | |||
|- | |||
| celebrate_dagger | |||
| celebrate_hammer | |||
| celebrate_mace | |||
| celebrate_sword | |||
| celebrate_spear | |||
| chaplain | | chaplain | ||
|- | |- | ||
| | | chancellor | ||
| | | chess_certain_win | ||
| chess_cocky | |||
| disapproval | | disapproval | ||
| disbelief | | disbelief | ||
| disgust | | disgust | ||
|- | |- | ||
| | | dismissal | ||
| | | drink | ||
| | | drink_goblet | ||
| | | eavesdrop | ||
| | | ecstasy | ||
| | | eyeroll | ||
|- | |- | ||
| | | fear | ||
| flirtation | | flirtation | ||
| flirtation_left | | flirtation_left | ||
| | | frontend_center_idle | ||
| | | frontend_left_idle | ||
| frontend_right_idle | |||
|- | |- | ||
| | | grief | ||
| happiness | | happiness | ||
| | | idle | ||
| | | lantern | ||
| | | laugh | ||
| loss_1 | | loss_1 | ||
|- | |- | ||
| | | love | ||
| | | lunatic | ||
| | | marshal | ||
| newborn | | newborn | ||
| | | pain | ||
| | | paranoia | ||
|- | |- | ||
| personality_honorable | | personality_honorable | ||
| personality_bold | | personality_bold | ||
| personality_callous | |||
| personality_compassionate | |||
| personality_content | |||
| personality_coward | | personality_coward | ||
|- | |- | ||
| personality_cynical | |||
| personality_dishonorable | |||
| personality_forgiving | |||
| personality_greedy | | personality_greedy | ||
| | | personality_irrational | ||
| personality_rational | | personality_rational | ||
|- | |- | ||
| | | personality_vengeful | ||
| personality_zealous | | personality_zealous | ||
| | | poison | ||
| | | pregnant | ||
| | | prisondungeon | ||
| prisonhouse | |||
|- | |||
| rage | |||
| sadness | |||
| schadenfreude | |||
| scheme | |||
| severelywounded | |||
| sick | |||
|- | |||
| shame | |||
| shock | |||
| spymaster | |||
| steward | |||
| stress | |||
| test_case_1 | |||
|- | |- | ||
| | | throne_room_applaud_1 | ||
| throne_room_bow_1 | |||
| throne_room_bow_2 | |||
| throne_room_bow_3 | |||
| throne_room_chancellor | | throne_room_chancellor | ||
| | | throne_room_cheer_1 | ||
|- | |- | ||
| | | throne_room_cheer_2 | ||
| throne_room_conversation_1 | | throne_room_conversation_1 | ||
| throne_room_conversation_2 | | throne_room_conversation_2 | ||
| throne_room_conversation_3 | | throne_room_conversation_3 | ||
| throne_room_conversation_4 | | throne_room_conversation_4 | ||
| throne_room_curtsey_1 | |||
|- | |- | ||
| | | throne_room_kneel_1 | ||
| | | throne_room_kneel_2 | ||
| | | throne_room_messenger_1 | ||
| | | throne_room_messenger_2 | ||
| | | throne_room_messenger_3 | ||
| | | throne_room_one_handed_passive_1 | ||
|- | |- | ||
| throne_room_one_handed_passive_2 | | throne_room_one_handed_passive_2 | ||
| throne_room_ruler | |||
| throne_room_two_handed_passive_1 | | throne_room_two_handed_passive_1 | ||
| throne_room_writer | | throne_room_writer | ||
| | | toast | ||
| | | toast_goblet | ||
|- | |||
| war_attacker | |||
| war_defender | |||
| war_over_loss | |||
| war_over_tie | |||
| war_over_win | |||
| worry | |||
|} | |} | ||
第535行: | 第534行: | ||
== 触发器 == | == 触发器 == | ||
这是 | 这是一个事件 达成所需要 的 额外 要求。 | ||
<pre> | <pre> | ||
trigger = { # | trigger = { # 这 是为了使 这个事件 成为 可 能所需的一系列要求 (对于事件本身而言,这是一个巨大的IF语句)。 | ||
culture = { | culture = { | ||
has_innovation = innovation_guilds # 检查你的文化是否已解锁 | has_innovation = innovation_guilds # 检查你的文化是否已解锁 公 会。 | ||
} | } | ||
} | } | ||
</pre> | </pre> | ||
还可以使用 <code>trigger_if</code> 将某些要求锁定在自己的触发器后面。只有在 <code>limit</code> 为真时,才会 | 还可以使用 <code>trigger_if</code> 将某些要求锁定在自己的触发器后面。<br> | ||
只有在 <code>limit</code> 为真时,才会 执行 <code>trigger_if</code> 中的要求。如果 <code>trigger_if</code> 为假,可以选择添加 <code>trigger_else</code> 来执行备选要求 。 | |||
<pre> | <pre> | ||
trigger = { | trigger = { | ||
any_held_county = { # | any_held_county = { # We check that we have a blacksmith | ||
any_county_province = { | any_county_province = { | ||
has_building_or_higher = blacksmiths_01 | has_building_or_higher = blacksmiths_01 | ||
第567行: | 第567行: | ||
=== 触发失败 === | === 触发失败 === | ||
on_trigger_fail | {{需要完善}} | ||
on_trigger_fail 在触发器无法触发 时运行 | |||
== 描述 == | == 描述 == | ||
第574行: | 第575行: | ||
== 立即执行 == | == 立即执行 == | ||
这是一个效果脚本块:当事件被触发时,它将立即运行,甚至在标题、描述和肖像被 | '''Immediate''' 这是一个效果脚本块:当事件被触发时,它将立即运行,甚至在标题、描述和肖像被 评估或 渲染之前。这个脚本块 适 用 于 设置变量和保存作用域,以便在 您的 文本或肖像中使用; 或者用于希望在 玩家 没有任何 控制 的情况下 发生的功能性效果。<br> | ||
"has happened" 提示 。 | |||
<pre> | <pre> | ||
immediate = { # 无论选择哪个选项,当事件出现在屏幕上时,它都会起作用。 | immediate = { # 无论选择哪个选项,当事件出现在屏幕上时,它都会起作用。 | ||
add_gold = 50 # | add_gold = 50 # adds 50 gold to the player | ||
} | } | ||
</pre> | </pre> | ||
== 选项 == | == 选项 == | ||
用户可以 | 在事件中, 用户可以 按下 选项。每个事件可以有任意数量的选项,包括没有选项(一个常见的例子是隐藏事件)。每个选项在 主 事件块中定义,如下所示: | ||
<pre> | <pre> | ||
example.1 = { | example.1 = { | ||
第592行: | 第593行: | ||
option = { | option = { | ||
# | # option info | ||
} | } | ||
第600行: | 第601行: | ||
</pre> | </pre> | ||
以下是一个更复杂的 | 以下是一个更复杂的 选项 :[[修正列表|修正]] | ||
<pre> | <pre> | ||
第606行: | 第607行: | ||
name = stewardship_domain_special.1424.a | name = stewardship_domain_special.1424.a | ||
trigger_event = { # 让另一个事件发生 | trigger_event = { # 让另一个事件发生 | ||
id = yearly.1012 # 事件ID是访问级别最高的内容(因此,只要 | id = yearly.1012 # 事件ID是访问级别最高的内容(因此 ,事件stewardship_domain.6017是有效的 ,只要 它 存在, 任何其他事件也 是有效的(valid) )。 | ||
days = { 7 14 } # 获取两个值之间的随机数(无法确定是否包括两个边界值),任何接受 "= {X Y}" 格式的内容 | days = { 7 14 } # 获取两个值之间的随机数(无法确定是否包括两个边界值),任何接受 "= {X Y}" 格式的内容 也 可以 简化为 "= X"。 | ||
} | } | ||
hidden_effect = { # 隐藏选项提示中的内容 | hidden_effect = { # 隐藏选项 工具 提示中的内容 | ||
scope:county = { # 获取存储在作用域 "county" 中的 | scope:county = { # 获取存储在作用域 "county" 中的 内容 。 | ||
add_county_modifier = { # 添加修正(奖励或惩罚) | add_county_modifier = { # 添加修正(奖励或惩罚) | ||
modifier = governance_land_cleared_for_settlement_modifier | modifier = governance_land_cleared_for_settlement_modifier | ||
# 确保使用的修正 | # 确保使用 正确 的修正(在本例中为 国家 )。 | ||
days = 3650 # 效果的持续时间,也可以用 days = {X Y} | days = 3650 # 效果的持续时间,也可以用 days = {X Y} | ||
} | } | ||
第622行: | 第623行: | ||
ai_chance = { | ai_chance = { | ||
base = 50 # 选择这个选项相比其他选项的机会有多大?(不必是0到100,可以是任何数值) | base = 50 # 选择这个选项相比其他选项的机会有多大?(不必是0到100,可以是任何数值) | ||
modifier = { # 你可以根据各种因素来改变这个值, | modifier = { # 你可以根据各种因素来改变这个值, 而在这种情况下,它是AI 角色的特质。 | ||
add = 15 | add = 15 | ||
has_trait = sadistic # 特 | has_trait = sadistic # 特 征 可以在 ..\game\common\traits\00_traits.txt 中找到 | ||
} | } | ||
modifier = { | modifier = { | ||
add = -40 # | add = -40 # 要移除只需 加 上一个 负数(5 + -10 = -5)。 | ||
has_trait = compassionate | has_trait = compassionate | ||
} | } | ||
第636行: | 第637行: | ||
{| class="wikitable" | {| class="wikitable" | ||
! Key | ! Key | ||
! 必 | ! 必 须 | ||
! 描述 | ! 描述 | ||
! 例子 | ! 例子 | ||
第655行: | 第656行: | ||
| trigger | | trigger | ||
| 否 | | 否 | ||
| 定义了一个必须满足的[[触发器]],以使选项有效并对用户可用。请注意,这与[[#触发器|事件 | | 定义了一个必须满足的[[触发器]],以使选项有效并对用户可用。请注意,这与[[#触发器| 主要 事件触发器]]不同。 | ||
| | | | ||
<pre> | <pre> | ||
第666行: | 第667行: | ||
| show_as_unavailable | | show_as_unavailable | ||
| 否 | | 否 | ||
| 如果选项无效,但 | | 如果选项无效,但触发器有效,则选项将显示但被禁用。此行为还受EVENT_OPTIONS_SHOWN_HIDE_UNAVAILABLE定义的影响。 | ||
| | | | ||
<pre> | <pre> | ||
第677行: | 第678行: | ||
| trait | | trait | ||
| 否 | | 否 | ||
| 如果玩家具有指定的特质,则在 | | 如果玩家具有指定的特质,则在选项的左侧显示它。将鼠标悬停在上面时,会显示该选项可用的原因是由于该特质。这仅仅是为了增加趣味性,实际上并不影响选项的功能性。 | ||
| | | | ||
trait = honest | trait = honest | ||
第685行: | 第686行: | ||
| skill | | skill | ||
| 否 | | 否 | ||
| 在选项的左侧显示 | | 在选项的左侧显示 所选 技能。将鼠标悬停在其上会显示选项可用,因为你的技能水平较高。这只是为了增加趣味性,实际上并不影响选项的功能。 | ||
| | | | ||
skill = prowess | skill = prowess | ||
第693行: | 第694行: | ||
| add_internal_flag | | add_internal_flag | ||
| 否 | | 否 | ||
| 可以取值为 | | 可以取值为" 特殊(special)" 或" 危险(dangerous)" 。 键 值" 特殊"将选项以黄色突出显示," 危险"则以红色突出显示。这只是 提供一种风格 ,实际上并不影响选项的功能。 | ||
| | | | ||
add_internal_flag = special | add_internal_flag = special | ||
第701行: | 第702行: | ||
| highlight_portrait | | highlight_portrait | ||
| 否 | | 否 | ||
| 当将光标悬停在此选项上时, | | 当将光标悬停在此选项上时, 突出 显示该角色的 事件 肖像。 这是在悬停在具有 影响角色肖像 效果的事件选项上时自动 高亮显示的 附加功能 。 | ||
| highlight_portrait = scope:custom | | highlight_portrait = scope:custom | ||
第707行: | 第708行: | ||
| fallback | | fallback | ||
| 否 | | 否 | ||
| | | 等于 是(yes)的时候:如果 没有 其他选项满足其触发器,即使此选项的触发 条件 也未满足,它也将显示出来。你可以将此选项与 <code>trigger = { always = no }</code> 结合使用,以创建一个只作为最后手段显示的选项。 | ||
| fallback = yes | | fallback = yes | ||
第713行: | 第714行: | ||
| exclusive | | exclusive | ||
| 否 | | 否 | ||
| 如果选项标记为exclusive = yes并且 | | 如果选项标记为exclusive = yes并且 符合其 触发条件,它将是唯一显示的选项。如果多个选项标记为exclusive = yes并且每个选项都 符合其 触发条件,那么 每个选项 都会被显示。 | ||
| exclusive = yes | | exclusive = yes | ||
第719行: | 第720行: | ||
| flavor | | flavor | ||
| 否 | | 否 | ||
| 在选项的提示中显示的风味文本。风味可以是本地化键(loc key)或具有first_valid的动态描述。 | | 在选项的 工具 提示中显示的风味文本。风味可以是本地化键(loc key)或具有first_valid 等 的动态描述。 | ||
| flavor = my_events.1001.a.flavor | | flavor = my_events.1001.a.flavor | ||
|} | |} |