*fake_choice

*fake_choice 命令是 *choice 命令的替代选项。对玩家而言,*choice*fake_choice 看起来完全一样。

However, there is one important difference: unlike the standard *choice command, *fake_choice does not actually require the use of any other commands within the body of the #options text, so you can use it simply to prompt interaction with the player and display a textual response for each particular #option.

然而,他们之间有一个重要区别:与标准的 *choice 命令不同,*fake_choice 实际上并不要求在 #options 文本块内使用任何其他指令,因此你可以单纯用它来提示玩家互动,并为每个特定的 #option 显示文本回应。

While it doesn't require any other commands, you can use other commands in combination with a *fake_choice, in the same way as a regular *choice.

Usage

A simple example:

Mike really does make it sound like Jill has been seeing Ben behind your back.

*fake_choice

    #Mike doesn't fool me. He has always been jealous of how much Jill loves me.

      It's fairly obvious to you that Mike is just trying to make you dump Jill.

    #Mike seems to say stuff like that a lot. He just likes to cause trouble.

      You simply ignore Mike's petty mischief, knowing what he's really like.

    #I burst out laughing. The whole idea is ridiculous. I mean . . . Ben?!

      You realize that the whole idea of Jill and Ben together is so ridiculous,
      it's laughable.

Not very surprisingly, Mike seems upset that you don't appear to believe him!

*finish

The above example will display a particular response for each option, depending on the player's choice, and then immediately after — regardless of the option choice — it will display the line beginning "Not very surprisingly..." Note that even the individual option responses are not strictly necessary; if you prefer, it could simply respond with the "Not very surprisingly..." line as the sole response to all three options.

*fake_choice* was originally used for this purpose: to show flavor text or simply break up the story with a choice block rather than a page break. Judicious use of these kinds of *fake_choice* can help to build character, emphasize plot details, aid immersion in the game world, and enhance interaction. It's worth noting that overuse of simplistic or too obviously fake choices ("How do you feel about that?" or similar) can have the opposite effect for an experienced player of ChoiceScript games, and may serve only to spoil that player's enjoyment of your story.

Code Efficiency

However, the fact that *fake_choice* doesn't require each #option body to end with a *goto or *finish (as *choice does) has increasingly made it the default choice command for writers wanting to minimize code. *fake_choice* can do nearly everything else that *choice* can, e.g. using *selectable_if* in options or using *set* in the option block. For choices that don't branch the story (and so would all *goto* the same *label*) many writers have chosen to use *fake_choice*.

Read herearrow-up-right for the official explanation of why the language is designed to encourage non-programmer authors to use *goto*s rather than maximizing use of *fake_choice* or Implicit Control Flowarrow-up-right.

最后更新于