将文本存储在变量中以实现玩家代词选择

0 点赞
RPG Maker MZ
转载

在这份《RPG制作大师MZ》官方指南中,我们将探讨如何通过存储玩家角色的代词来将文本存入变量,以便在显示消息命令中轻松引用。 简介

尼克·帕尔默的官方指南 现代角色扮演游戏(RPG)的一个常见主题是让玩家自行决定其角色的设定。包括选择角色的体型、眼睛颜色、发型,甚至是使用的代词。 要以标准方式实现这一点,有些人会在任何包含玩家代词的消息之前设置一个条件分支,引用一个变量,然后为所使用的每个代词集重写文本行。 这种方法是可行的。但如果我告诉你还有一种更简单的方法,它依赖于一个小秘密:你几乎可以将任何内容存储到变量中,而不仅仅是数字。那么,让我们来学习如何操作吧!代词选择与英语代词形式 首先,你需要设置一个非常基础的显示文本框来提出问题,并使用选择框让玩家选择他们想要使用的代词。我选择了“他/她/他们”这几种形式。当然,你也可以根据自己的游戏需求添加更多代词选项。

接下来我们需要做的是识别所有不同词性的代词变体。英语使用5种:主格、宾格、形容词性物主代词、名词性物主代词和反身代词。 对于我所选择的3组,匹配的代词分别是:he/him/his/his/himself、she/her/her/hers/herself以及they/them/their/theirs/themself。 我们希望将每一组代词存储在变量中,以便能在消息框中使用V[n]来调用它们。 但是……还有一件事需要考虑。如果代词用在句首,其首字母需要大写。这意味着我们这里需要10个变量。在我的项目中,我将使用11-15来表示主格/宾格/所有格/所有格代词/反身代词的大写形式,16-20用于小写形式。 在变量中存储文本的两种方法 那么我们该如何存储这些文本呢?有两种方法可以实现。第一种方法是使用控制变量事件命令的脚本部分,并选择脚本选项来输入文本。要将文本放入变量中,确保在要输入的文本前后加上“”。例如,要将“They”放入变量11中,可以按以下方式操作:

不过,虽然你可以用那种方法逐个输入,但使用脚本事件指令能让我们同时输入全部十种变体。接下来,进入事件指令的第3个标签页,选择“脚本”。要通过脚本事件指令将文本存入变量,我们会用到这个简单的脚本调用: $gameVariables.setValue([变量],[值]) 你只需将[变量]替换为你想要设置的变量编号,将[值]替换为你想要设置的内容。另外,如果你要存储文本,需要在值的前后加上双引号。例如,要将“They”存入变量11,你可以使用脚本调用: $gameVariables.在单个脚本调用中,你可以输入所需的全部十种变体,因此只需进行一些复制粘贴和替换操作,就能快速完成所有They变体的设置。你的脚本命令应如下所示:

然后你可以轻松复制此内容,并为“显示选择”中的“他”和“她”部分进行修改,这样就能得到一个如下所示的事件:

在显示消息中使用文本变量 现在,每当你需要在玩家角色的台词中使用代词时,无需为每种变化创建全新的消息分支,只需匹配词性以及是否需要大写,然后代入变量即可! 例如:

变为:

这就是你所需要的全部内容!现在你可以为玩家提供更多选项,并且让这些选项的实现过程更加轻松! 额外用途及将角色名称存储到变量中 但这并非存储文本到变量的唯一用法。你还可以将其用于任何需要玩家进行选择并在文本中显示该选择的场景。实际上,你甚至可以让角色自己命名某些事物,方法是使用额外的角色、输入名称命令,然后在控制变量事件命令的脚本部分使用“Script: $gameActors.actor(n).name()”,并将其中的n替换为角色编号。

例如,在使用角色5的名称输入指令让角色为飞船命名后,你可以使用上述控制变量指令将名称存储到变量中。(注意:从技术上讲,你可以不将其存入变量,直接在文本框中使用替换角色名称的指令,但将数据移至变量意味着你可以将该角色重复用于游戏中所有必要的文本输入(如密码等),而不会占用数据库中的角色标签。)现在你已经知道如何将文本存储到变量中了!