十字军之王3
ParaWikis
最新百科
都市天际线2百科
英雄无敌3百科
维多利亚3百科
奇妙探险队2百科
罪恶帝国百科
英白拉多:罗马百科
热门百科
群星百科
欧陆风云4百科
十字军之王2百科
十字军之王3百科
钢铁雄心4百科
维多利亚2百科
ParaWikis
申请建站
ParaWikis
ParaCommons
最近更改
随机页面
加入QQ群
工具
链入页面
相关更改
特殊页面
页面信息
页面值
帮助
译名手册
字词转换
编辑指南
编辑规范
练手沙盒
资助我们
×
欢迎访问十字军之王3百科!
注册一个账号
,一起参与编写吧!这里是
当前的工程
。
全站已采用新UI,任何使用上的问题请点击
这里
。欢迎所有对百科感兴趣的同学加入QQ群:
497888338
。
阅读
编辑
编辑源代码
查看历史
讨论
编辑“
触发器
”(章节)
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
== Trigger blocks == Triggers are used in trigger script blocks. Those usually are either explicitly named so, like an event's <code>trigger = { }</code> block, or their name are questions which can be answered by yes or no, like a decision's <code>is_shown = { }</code> and <code>is_valid = { }</code>. In some cases, triggers are used in hybrid script blocks that accept triggers amongst other things. Ex: [[weight modifier]] <pre>modifier = { is_ai = yes factor = 0 }</pre> In this block, <code>is_ai = no</code> is a trigger, but <code>factor = 0</code> is an operator. === Early out === Unless they are being tooltipped, trigger blocks operate on the so-called "early out" principle. For a trigger block to be true, all triggers within must be true. "early out" means that as soon as a trigger in the block is evaluated as false, the rest of the triggers in that block are not evaluated. This is useful to avoid errors. Ex: the following trigger block checks that the current character scope's primary spouse has the same culture as them. To avoid errors, it first checks that the character `has` a spouse to begin with. <pre>trigger = { exists = primary_spouse culture = primary_spouse.culture }</pre> If <code>exists = primary_spouse</code> is false, the second trigger is not evaluated. It is also useful for performance optimization. In a trigger block containing multiple triggers, putting the ones most likely to fail first can significantly reduce the number of triggers checked overall. Ex: this trigger block checks that the current character scope is a player and an independent ruler. <pre>trigger = { is_ai = no is_independent_ruler = yes }</pre> If this trigger block is evaluated once a year for each character in the game, since most characters in the game are not players, <code>is_ai = no</code> will almost always be false, and the 2nd trigger will almost never be evaluated at all. === Logic blocks === Trigger blocks can contain several triggers. By default, if all of them are true, the trigger block as a whole is true, but some logic blocks can manipulate that logic. ==== AND ==== <pre>AND = { is_ai = no is_independent_ruler = yes }</pre> The <code>AND</code> block is true if the current character both is a player and an independent ruler. ==== OR ==== <pre>OR = { is_ai = no is_independent_ruler = yes }</pre> The <code>OR</code> block is true if the current character scope is either a player `or` an independent ruler. ==== NOT/NOR/NAND ==== <pre>NOT = { has_title = title:k_france }</pre> The <code>NOT</code> block is true if the current character scope does not hold the Kingdom of France. To avoid ambiguity, <code>NOT</code> should only contain a single trigger. For multiple triggers, using <code>NOR</code> or <code>NAND</code> makes the intent clear. <pre>NAND = { has_title = title:k_france has_title = title:k_aquitaine }</pre> The <code>NAND</code> block is true if the current character scope holds either the Kingdom of France or the Kingdom of Aquitaine or neither of the two. It is false if they hold both titles. <pre>NOR = { has_title = title:k_france has_title = title:k_aquitaine }</pre> The <code>NOR</code> block is true if the current character scope holds neither the Kingdom of France nor the Kingdom of Aquitaine. It is false if they hold either of the titles. === Limit blocks === The <code>limit</code> block is used for conditional effects and triggers. ==== if/else_if ==== The most common use of the <code>limit</code> block is with the <code>if</code>/<code>else_if</code> effects, to execute effects only if the <code>limit</code> block is true. Ex: this effect adds gold to the current character scope if they are a player. <pre>if = { limit = { is_ai = no } add_gold = 100 }</pre> ==== effect list-builders ==== Limit blocks are also commonly used to restrict effect list builders. Ex: this effect adds gold to the current character scope's children if they are male <pre>every_child = { limit = { is_male = yes } add_gold = 100 }</pre> Note: the <code>any_X</code> list-builder does ''not'' use a <code>limit</code> block. ==== trigger_if/trigger_else_if/trigger_else ==== <code>trigger_if</code> can be used to check a trigger only if the <code>limit</code> block is true. Ex: if the current character scope is not an ai, this trigger checks whether they are an independent ruler <pre>trigger_if = { limit = { is_ai = no } is_independent_ruler = yes }</pre> Conditional triggers are often used in tooltipped trigger blocks both for legibility and to avoid errors, because when tooltipped, early-out does not apply. Ex: this trigger, when tooltipped, would throw an error when <code>primary_spouse</code> does not exist. <pre>trigger = { exists = primary_spouse culture = primary_spouse.culture }</pre> but this would not throw an error, because if the <code>limit</code> block is false, the trigger is not evaluated. <pre>trigger_if = { limit = { exists = primary_spouse } culture = primary_spouse.culture }</pre>
摘要:
请注意您对十字军之王3百科的所有贡献都被认为是在知识共享署名-非商业性使用-相同方式共享下发布,请查看在
十字军之王3百科:版权
的细节。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源。
未经许可,请勿提交受版权保护的作品!
为防止机器编辑,请完成下方验证
取消
编辑帮助
(在新窗口中打开)
×
登录
密码
记住登录
加入十字军之王3百科
忘记密码?
其他方式登录