自定义 ChoiceScript 的属性界面
https://www.choiceofgames.com/make-your-own-games/customizing-the-choicescript-stats-screen/
我们的游戏设有一个“显示属性 (Show Stats)”按钮,用于展示适用于您角色的部分状态数据。

本文档将介绍如何在您使用 ChoiceScript 编写的游戏中构建状态界面。
初学者请不要直接从这里开始学习!
在阅读这份高级进阶文档之前,请务必先阅读我们的基础 ChoiceScript 介绍页面。
创建属性图表
太长不看版:请尝试对“choicescript_stats.txt”文件进行实验。
属性界面的核心是“属性图表”,您可以使用 *stat_chart 指令创建。该图表可显示任意数量的 ChoiceScript 变量值;若变量值为 1 到 100 之间的数字,则可将其显示为图表上的条形图。
假设您有三个变量:
包含玩家姓名的“name”变量(例如“Dan”)
包含 1-100 之间领导力数值的“leadership”变量
包含 1-100 之间力量数值的“strength”变量
您可以像这样使用 *stat_chart命令:
这将显示一个如下的属性图表:

请注意,当我们想要以文本形式显示变量的值时,我们在变量前写上 text;当我们想要以百分比条形式显示变量时,我们在变量前写上 percent。
如果你不喜欢百分比条,你可以对所有内容都使用文本,在这种情况下,我们将以数字形式显示数值:

“显示属性”按钮
你可以在任何 ChoiceScript 场景中使用 *stat_chart 命令;它就像其他指令一样。例如,在游戏结束时显示状态图表就很好,能让玩家感受到结局的圆满与成就感。
但使用 *stat_chart 最有趣的地方,是在一个名为 choicescript_stats.txt 的特殊文件中。
choicescript_stats.txt 是一个 ChoiceScript 场景文件,就像 startup.txt 或你创建的任何其他文件一样。当玩家点击“显示状态”按钮时,我们会暂停当前的 ChoiceScript 场景,转而显示 choicescript_stats.txt 场景;当你完成该场景后,我们会恢复之前正在进行的场景。
大多数情况下,choicescript_stats.txt 文件除了 *stat_chart 外几乎不包含其他内容,但你完全可以尝试在该文件中加入其他文本,特别是如果你想包含一些不应出现在数据图表中的角色信息。
诗意化标注状态值
在前一示例中,图表显示的“name”、“leadership”和“strength”均为小写形式;通常此类数值应采用“首字母大写格式”(类似新闻标题的书写规范)。
您可以根据喜好自由设定变量名称的大小写格式,例如:

这是因为在 ChoiceScript 中,变量不区分大小写,因此“strength”与“sTrEnGtH”具有完全相同的含义。
但你也可以为变量赋予不同的名称。也许你想使用更具诗意的标签,比如将“力量”改为“筋骨之力”;将“领导力”改为“蛇之舌”;将“姓名”改为“战斗代号”。你可以这样编写:

在图表上显示对立配对
在我们的一些游戏中,我们会说两个变量是“对立的”;例如,残暴与灵巧对立,狡诈与荣誉对立,轻蔑与警觉对立。
然而,在我们的 ChoiceScript 代码中,实际上只有三个变量:“残暴 (Brutality)”、“狡诈 (Cunning)”和“轻蔑 (Disdain)”。当我们说“荣誉增加”时,实际上只是减少狡诈值。
我们可以利用这些变量在图表上显示对立配对,如下所示:

再次注意,"Finesse"、"Honor"和"Vigilance"在 ChoiceScript 中并非真实存在的变量,因此我们可以在此处随意命名。例如,我们本可以将 Vigilance 命名为"龙之眼"。
然而,如果你需要为图表左侧使用诗意的标签,你需要稍微调整图表的编写方式:

在这种情况下,第一个缩进行是左侧标签,第二个缩进行是右侧标签。如果只有一个缩进行,那么我们默认它是右侧标签。
让某些变量与其他非对立数值并存是完全可行的。例如,在《龙》中,"恶名 (Infamy)"没有任何对立项,因此我们可以这样编写图表:

使用临时变量处理特殊数值
在《龙之抉择》中,我们使用 0-4 的简单数字记录伤势,但会将其显示为文本,例如:
伤势=0:未受伤
伤势=1:战痕累累
伤势=2:永久性受伤
伤势=3:永久性虚弱
伤势=4:濒临死亡
我们通过创建一个临时变量来保存描述你伤势的文本,就像这样:
变量状态标题
通常,您使用状态图表来显示变量值;状态的标题(例如“力量 (Strength)”)通常是固定的。但您也可以让状态的标题成为变量,如下所示:
如果 poetic (诗意)变量为真,状态图表将显示“筋骨之力:50%”。否则,状态图表将显示“力量:50%”。
您可以使用此功能隐藏状态名称,直到玩家稍后发现它们。例如,您可以显示一个状态“未知:50%”,然后在玩家了解魔法后,将状态名称更改为“魔法:50%”。
Frequently Asked Question: How Do I Hide Stats?
常见问题:如何隐藏状态?
状态图表只会显示你想要展示的内容。如果你 *create 创建了一百个变量,但只在 *stat_chart 中提及其中两个变量,那么其他 98 个变量将永久隐藏。
如果你只想暂时隐藏某个状态,你需要将 *stat_chart命令包裹在 *if 语句中,就像这样:
你可以将 *stat_chart 拆分为多个较小的 *stat_chart 命令,并使用 *if 语句来仅隐藏部分图表。
多个状态界面
你可以在一个文件中使用多个 *stat_chart 命令。例如,你可以创建具有独立标题的多个独立部分。
您也可以在 choicescript_stats.txt 文件中使用 *page_break 命令分隔各个部分,或使用 *choice 命令让玩家选择查看哪个状态界面。
请注意,在构建多屏的 choicescript_stats.txt 文件时,您无需提供退出状态界面的 *choice 选项。屏幕顶部始终有一个按钮,用于退出状态界面并返回游戏。
打造美观的状态界面
以下是一些确保您的状态界面在所有尺寸屏幕上(从 iPhone 到电视)都显示美观的提示。
保持标题简洁。“力量”优于“你有多强壮?”。
确保你的“文本”行至少有五个字符长度。在带有进度条的属性图表中,如果出现像“7”这样的单个字符数,会显得很不协调。如果你的属性范围是 1-3,请为每个数字设置一个简短名称,例如“基础”、“中级”和“高级”。
某些文本属性在图表外显示效果更佳。对于可能长达一两句话的较长数值尤其如此;试图将这些内容塞进带有百分比进度条的表格中会显得非常难看。(请记住,你可以在
choicescript_stats文件中放入任何内容,而不仅仅是*stat_chart。)尽量在每个图表中只使用一种数据类型。你可以在单个文件中使用多个
*stat_chart命令。考虑为你的非对抗性百分比变量创建一个*stat_chart,为对抗性变量创建另一个*stat_chart,再为文本变量创建第三个*stat_chart。
示例
以下是一些示例 choicescript_stats.txt 文件:
最后更新于