ZMUD变量入门
想要较好地把zMUD使用起来,事实上的确需要一定的编程基础,不过要求不高,一般的Basic概念即可。最重要的,是我们能对用计算机模拟我们思考解决问题的方法有一个简单的认识。在下面只是把变量的简单道理讲一下,方便更多zMUD的新手。为了更加易懂快速上手,文章中的理论概念基本上我都使用实际的例子解释,即使道理一时想不通,也不怕,知道怎么去做就行了。
1. 为什么要使用变量
变量的引入,是因为我们在MUD中接触到的信息基本上都是不断在变化的,为了实时处理这些信息,我们通过变量的应用,可以把很多编程的概念溶入mud play中,使我们能够通过简单的界面操作从而自动、精确地完成 MUD 中一些复杂、繁琐的动作。
例如,前面“自动卖花”的设计中,我们使用了一个变量WH_ChineseName来存储对方的中文姓名,这样在后面我们才能再通过WH_ChineseName进一步获得买花对象的英文ID, 并存储到变量WH_IdName中,最后才可能最终使用give命令把花递到对方的手上。如果没有变量的引入,这个过程是完成不了的。
2. 怎么定义变量
变量包括两个组成部分: 变量名和变量值。一个变量的使用必须首先定义过变量名才行。变量名可以随便自己取,通过zMUD顶部按钮“Variable”来定义是简单的方法。例如我们前面文章中定义的WH_ChineseName,WH_IdName,WH_Class等等, 其名称上都是自己随意定的。定义一个新的变量时,我们一定要明确定义该变量的目的:即用它来做什么? 例如我们很明确WH_ChineseName是用来存储对方中文名字的,而WH_IdName是用来存储对方英文ID的等等。
变量使用的一个忠告是:尽量能从变量名上反映出该变量的含义。如果我们把WH_ChineseName改为abcd,可想而知我们无法从abcd看出它用来做什么用,而WH_ChineseName却一目了然。
变量使用的另一个忠告是:尽量把变量从变量名上分类。因为可能我们会用到很多变量,最后混杂在一起时,只会给自己找麻烦。就象WH_ChineseName和WH_IdName一样,字面上我们已经知道他们是用于WH(问候)的,编写其他类设计时,就不会搞混它们。
3. 怎么给变量赋值
zMUD中,变量可以直接赋值,并且变量不分字串、数字变量等概念,你给它们什么它们就是什么。
例如: WH_ChineseName=东方英雄,WH_IdName=hero,WH_Class=1。
在从triggers中获取信息时,变量可以参数形式赋值。
例如: 屏幕上显示“东方英雄想向你购买「flower」”时,如果定义:
pattern: (%x)想向你购买「(%x)」。
command: WH_ChineseName=%1;WH_Object=%2
则表示把pattern中抓取的第一个参数赋值给WH_ChineseName,把第二个参数赋给WH_Object。这样“东方英雄”字串便自动放到了变量WH_ChineseName中,“flower”字串则放到了变量WH_Object中。这里pattern中的第一个(%x)表示抓取字串“想向你购买”前面的任意字符串作为第一个参数,而第二个(%x)表示抓取字串“想向你购买”后面的任意字符串作为第二个参数。command 中的%1表示拿出第一个参数,同样%2,%3……则顺序表示拿出第二、第三……个参数。
对于有关%x,%1……等以及其他更多参数符的说明,请自己参考zMUD的help,这里不多讲。
4. 怎么把变量使用起来
在“自动卖花”的设计中有下面一个 triggers:
pattern: (@WH_ChineseName)(%s)= (%x)
command: #if (@WH_Class=1) {WH_IdName=%3;say 10 silver 一朵。;thank @WH_IDName} {WH_IdName=%3;give flower to @WH_IDName;gongxi @WH_IDName}
我们可以看到,变量使用的时候,只要不是赋值,变量名前面就应该加上符号“@”,这样,zMUD就会自动使用变量对应的值了。
5. 总结
到这里,应该可以明白,利用基本的编程思想,基于zMUD为我们提供的Variable和Triggers功能,我们的确可以在zMUD中针对mud play的具体要求来编写一些小程序,而这些程序的编写并不象想象中那样复杂,只是需要我们更多地了解zMUD到底为我们提供了什么手段来实现,我们要做的其实只是把编程思想溶入到这些手段中即可。