博客#{blogCount}:{title}

上周,我决定将电子表格作为作者,并且我正在在线工作,以便我们都可以对其进行编辑,并且都可以访问该文档的最新版本。 为此,我必须转移对技术方面所做的所有更改。 当我意识到必须重新完成编辑才能在游戏中使用时,我才完成了传输的一半。 我花了星期一的大部分时间来整理所有最后的错误并同步变量分配。

之后,我决定更新为C#6.0。 更新任何东西会使我半死,但是我认为更新C#不会太危险-如果有的话,功能将被弃用而不是被删除。 但是,如果需要,我将-并且最肯定地必须满足需求。 我需要使用字符串插值作为函数的一部分,该函数允许将游戏中的变量输入到对话中。 我计划为此进行一些自定义编码的复杂实现,但是我的兄弟提到了javascript中的字符串插值,并建议我尝试查找等效的C#。 我按照这些说明进行了C#更新,因此我可以处理对话中的自定义变量。

第二天,我意识到更新是一种浪费,因为毕竟,字符串插值仅适用于字符串文字,而且我的数据存储在从JSON提取的变量中。 幸运的是,有一种解决方法-我不得不依赖string.format-但这还是C#先前版本中存在的功能。 唉! 现在我们都更新了。 可悲的是,随着更新,某些字符已被三角形中的问号替换(大概是“未知字符”字符)。 我还不确定如何解决这个问题,但是暂时来说,测试人员将只需要运用他们的想象力来填补空白!

“说{sinCount}冰雹玛丽斯。”

我对这个项目的研究越深入,发现从长远来看,向脚本添加复杂的功能可以节省很多工作。 在几乎所有对话中,您的祖先是否在您身边都会对您所说的内容产生一定的影响。 没有字符会承认您的小阴影是很奇怪的,但是只需要为中间引用Matt的一小段一次性线创建完全独立的对话键,就可以做很多额外的工作,并给json脚本增加膨胀。 使作者的生活更轻松,我减少了根据特定变量在风味上进行小的细微变化的烦琐工作,例如商人根据您当前的结局用不同的开瓶器向您打招呼的方式。 这些越多,体验越沉浸。

“掏腰包。[haveMatt:是的:这个男孩也是。]”

如果玩家拖了马特(Matt),则匪徒头目将抢夺男孩的钱以及安(Ann)。 否则,安是唯一遭受抢劫的人。

“杀死[haveMatt:true:them:her]!”

我什至在其中添加了一些额外的三元运算符-如果您有Matt,他说“杀死他们!”,否则他说“杀死她!”。 这将必须由两个背对背的条件语句浓缩为一个易于阅读的功能。 另外,这实际上增加了一些额外的功能,因为它允许我进行!=条件检查。 并非我的所有陈述都是对还是错(例如,您正在播放的时间轴有9种可能性),因此我可能想知道是否不在某个时间轴上而不必写8个背对背条件。 毛。

我需要确保跳过所有由于未满足条件而完全空白的行,以避免跳过空白的对话行。 如果结果是整行都是空白,它将完全跳过并移至下一行。 重复此过程,直到对话结束或找到包含某些内容的行。 实际上,我是从我已经建立的心理对话系统中借用的,非心理的Ann必须跳过所有的思维方式。 不幸的是,由于我已经改变了条件语句的编写方式,因此我现在需要重新导入所有的心理对话。 我想我可以一口气做到这一切,但我还没有得到全面的解决。 (上帝保佑找到并替换。)

一旦这些都加入,我就添加了添加多个条件的可能性。 万一有多个变量需要一次检查。

牧师雷梅迪奥(Remedio)现在就完成了,现在该专注于亚历山大了。 每次进入图书馆时,亚历山大都会热情地招呼您-他的访客不多,因此您走进门后的第二个声音就让您耳目一新。 为了使其正常工作,我不得不重新审视在您进入触发区域时开始的“偶然对话”。 幸运的是,我已经编写的代码非常适合这种情况,所以我只是为Alexander定制了这些交互代码。 这就是重要的教会角色!

我以为我已经弄清楚了我所有可交互的预制件。 当您进行互动时,我遇到的人物会面对您,但互动对象(例如家具和装饰品)却保持不​​变,但是我还没有物品拾取。 作为图书馆员追求的一部分,您必须为亚历山大(Alexander)拿一些书,包括从客栈老板那里拿来的一本书。 在生气和编码新的拾音器预制件之前,我想知道那是值得的。 原来,我有几本书,一顶王冠和一瓶需要遵循相同规则的药水,而且总是有可能我忘记了其他一些物品,因此我认为这值得我花时间。 拾取后,物理对象将从世界中删除,并出现在库存中。

在其他新闻中,所有结尾的插图均已完成! 我对这项工作感到非常满意,迫不及待想要将它们与故事一起正确编码到游戏中。