流量控制

if 声明

除了存储信息之外,变量对于控制向玩家显示的内容也很有用。为此,您使用 if 声明。

一个 if 语句允许您控制是否显示内容集合。当你写一个 if 语句,您提供一个_表达式_,该表达式将被检查;如果该表达式的计算结果为“真”值,则介于 <<if>><<endif>> 语句已运行。

例如,考虑以下代码:

<<set $gold_amount to 5>>
 
Player: I'd like to buy a pie!
 
<<if $gold_amount < 10>>
    Baker: Well, you can't afford one!
<<endif>>
 

这个例子将设置一个变量, $gold_amount,到 5。然后它会显示“我想买一个馅饼!”,在继续之前,它会检查是否 $gold_amount 小于 10。如果是这种情况\(确实如此!\),就会出现“好吧,你买不起!”这一行。会运行。

elseifelse

您可以使用 elseifelse 语句来处理不同的情况 if 陈述。

一个 elseif 语句有一个表达式,如果 if 声明或任何先前的 elseif 声明,不要运行。

一个 else 语句没有表达式,如果满足则运行 if 和任何 elseif 别跑。

例如:

Player: I'd like to buy a pie!
 
<<if $gold_amount < 10>>
    Baker: Well, you can't afford one!
<<elseif $gold_amount < 15>>
    Baker: You can almost afford one!
<<else>>
    Baker: Here you go!
<<endif>>

该脚本将根据以下值显示不同的行 $gold_amount。检查是从上到下进行的,这意味着为了 elseif 或者 else 要运行,上面的所有检查都必须失败。

  • 如果少于 10 个,则会显示“好吧,你买不起!”会运行。
  • 否则,如果少于 15 个,则会显示“你几乎买得起!”会运行。
  • 否则,就会出现“Here you go!”这句话。会运行。

[!信息] 中使用的表达式 ifelseif 语句必须产生一个布尔值(即 true 或 false。)例如,<<if 1>> 不允许,但是 <<if 1 == 1>> 是。

有条件期权

当向玩家呈现选项时,您可能希望使某些选项不可用。您可以通过向选项添加_条件_来做到这一点。

例如,如果您有一个跟踪玩家“声誉点”的变量,称为 $reputation,您可能希望仅在以下值时才使某些选项可用 $reputation 足够高了。

选项的条件是通过添加 if 声明到选项末尾。它们看起来像这样:

Guard: You're not allowed in!
 
-> Sure I am! The boss knows me! <<if $reputation > 10>>
-> Please?

当 Yarn Spinner 运行这个选项集合时,它将检查里面的表达式 if 陈述。如果表达式是 false,那么该选项将被标记为 unavailable.

[!信息] Yarn Spinner 总是向游戏提供选项组中的_every_选项;由游戏决定如何处理标记为不可用的选项。

例如,可能会向用户显示不可用的选项,但不可选择,以便用户可以看到,如果情况不同,他们_可以_能够说出这一点。

现在您知道如何与 节点, 线, 选项变量,还有 Yarn 语言的最后一部分需要学习:命令