百里_飞柳 发表于 2018-7-25 21:37 其实写一个脚本把事件编辑器里的指令数组导出来也很容易的,我做的时候就写了一个,要不然搞不清楚它是怎么实现的。但是并不是很赞同把数据分开保存在事件编辑器和剧情文本文件里。 一开始确实想着,外挂的文本只是动态替代事件页中的一部分。事件在生成@list时,原有的内容保持不变,外挂的文本所占的位置被替换插入到@list中,如此可做到最大兼容。 做了一点后,觉得这里其实是不需要考虑兼容性的。事件指令都比较简单,复杂的部分主要是循环和分歧。实际操作的时候: 1. 循环和分歧用到的时候比较少,尤其是循环 2. 有时候,循环和分歧不是“最优解”,而是rm事件页这个框架下的无奈之举 3. 利用标签和跳转可以完全替代循环和分歧,但管理混乱+事件页太长 所以未必一定要坚持照着rm的事件框架去写,把常用的几种命令和rm事件框架恰当的结合更好。所以我选择了标签跳转。 全部的内容写到外挂文本里还有一个好处是内容统一管理,工程里放一点,外挂文本里放一点不太好。 我还提供了一个方案是随意书写指令,仍然限定了indent = 0:
用的eval执行后面的中括号的内容生成参数数组。 |
本帖最后由 七重 于 2018-7-26 09:36 编辑 不过说到这样类似的需求。我是觉得如果有个更加易用的事件编辑器就好了。 比如自己用rm的时候,有时候就会出现变量的编号定好了之后,后面才发现又要加新的,最后东++,西++,结果越来越混乱。。又不能排列整理。 因为编号是固定的,如果要改又要把事件里面的引用修正。 tes算是把事件写在了外面,要调用的时候直接调用相关名字。 如果楼主是做的话,能再做个在外部安排开关与变量就好了。 追记: 过了一会之后。。我才忽然发现这个问题可以靠自力解决。。 |
本帖最后由 guoxiaomi 于 2018-7-26 01:26 编辑 百里_飞柳 发表于 2018-7-25 21:37 把事件转化成markdown指令也是可行的,但是格式如果不是按照约定好的话,会有很多麻烦。我这里的设定是markdown里的每一个小节都是以标签开始,以中断事件结束。这是为了结构简单,故意做成小节之间无嵌套关系,但是选择项就不好实现。我这里只好是选项默认跟一个同名的标签跳转。 其实主要还是看个人的约定了~ 关于取消,在选项后面还是可以添加内容的,如果取消就执行这之后的内容。也可以在这之后跳转到别的标签。类似下面这样~
|
之前就一直觉得在编辑器里定义事件真的蜜汁心累,尤其是移动路径(虽然之后接入了一个自动寻路+等待结束偷懒) 而且默认的事件编辑器对于文本的翻译也非常不友好 不过这一套Markdown类似语法的编辑,其实有时候也有点容易懵……? 如果支持把事件页再导出成Markdown就更好了(做梦.jpg) 对于那个显示选项并跳转标签,之后就直接事件中断了?? 大概可以改成在每个选项后加一个跳转到所有选项分歧结束的地方? 可以加个特定 0. 序号用于处理所有选项的结束位置?不过还一个取消时的默认分支没办法啊 |
本帖最后由 guoxiaomi 于 2018-7-26 01:40 编辑 剧本系统 把游戏的剧情文本写在游戏外部,方便后续的更改。可能增加一些新功能,比如,特定剧情的出现条件等。 剧本系统尽量使用markdown的语法,会读取#开头的段落并将后续的文本导入到一个hash里缓存。目前有以下功能:
选项出现的条件 如下所示,多个条件的话必须全部满足。
商店格式 商店格式,可以支持多个物品。
设置移动路线的格式如下:[Move]: -1 "w2 X1":
解析用代码: RUBY 代码复制
|
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2024-11-21 22:26
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.