使用MUDCORE框架从零开发LPMUD游戏:表情动作和中文翻译

《使用MUDCORE框架从零开发LPMUD游戏》系列内容,通过教程既能熟悉 MUDCORE 框架的使用,也能学习LPCMUD游戏的开发,版权所有 mud.ren。

表情功能

使用 mudcore 框架,在前面章节我们快速实现了很多基本的功能,包括指令系统和别名,本节我们继续实现和指令相似的功能-表情动作。

在主流的MUD中我们习惯了直接输入 hi 打招呼,或输入 chat* hi 表达动作。mudcore 框架的 CORE_EMOTE_D 也提供了这个功能,我们可以快速实现表情动作系统,同时内置了emote表情管理指令,你可以输入help emote查看指令帮助。

在ES2底层的MUD中,把人称状态分了太多类,在 mudcore 框架把这一切精简为 $ME 和 $YOU 二种,并自动针对不同对象自动改变显示。

我们先编辑一个基本的表情 hi,试试。输入 emote hi,然后输入如下内容:

不指定对象时的表情:$ME热情的和大家打招呼:hi!

指定对象时的表情:$ME热情的和$YOU打招呼:hi~

现在在游戏中输入这个动作表情试试吧。

只要按这个样式补充表情库就能完善你的游戏表情,表情存档文件为/data/emote_d.o一切就这么简单^_^

中文翻译

在上一节中我们的score指令现实玩家职业为存储的数据common,我们想现实中文平民怎么办?这里可以使用中英文翻译。

和表情系统类似的是中文翻译系统,mudcore 提供的 CORE_CHINESE_D 守护进程让这个变得简单,同样框架内置了chinese指令管理翻译,你可以输入help chinese查看指令使用帮助。

通过这个指令,我们可以使用框架提供的 CHINESE_D 守护进程管理游戏中的英文ID和中文翻译,翻译词典文件为/data/e2c_dict.o

只要我们加入翻译,就可以快捷的使用模拟外部函数 chinese 快速获取指定内容的中文翻译。如:

chinese common to 平民

现在在输入指令sc看看自己的职业,是否变成中文了?游戏中有很多内容我们都推荐用词典的方式存储,方便自定义编辑。

file

这是因为score指令中职业代码是chinese(my["vocation"])),这里chinese()是一个mudcore框架的系统函数,作用是自动从翻译词典中读取内容,如果有翻译则自动翻译为中文,否则原样输出。

我们在游戏中很多内容是可以用翻译词典存储的,比如职业技能,代码中只存英文,中文使用词典存储,在需要的地方用chinese()读取显示,这样会更加灵活。

本节内容没有新增代码,只是使用指令后在/data/目录生成了二个存档,这二个存档可以保存到仓库,所以我们需要修改/data/.gitignore内容如下:

*
!.gitignore
!e2c_dict.o
!emote_d.o

最后 commit 我们当前版本:

git add .
git commit -m 'v2.3'

本节代码

附本节版本源码下载地址,如果下载使用,请在项目目录执行 git submodule update

京ICP备13031296号-4