zMUD中函数和变量的应用一(中级玩家适用)
作者:不易 http://buyi.yeah.net/
我是天龙八部的玩家,所以举的例子都源于天龙,别的mud的玩家也可以学着用,但需举一反三,不可拘泥
于程式,另外,mud中变化万千,常出现一些难以解释的意外情况,用函数和变量做trigger本就是高级手法,
所以如果你用我教的方法打npc,如果出了意外,请再仔细研究trigger是否有误。mud到底是玩,也别把生死太
放在心上。 OK,那...咱们从哪儿聊起呢?
先说如果你要同时打许多个同样的npc时,应该怎么办呢?比如,你搬了20只大蟒,你可能要做个#alias
{killsnake} {kill snake 1;kill snake 2;kill snake 3;......kill snake 19;kill snake 20},这是初级
做法,我们只需用#20 kill snake %i 一句就可以完成了。我具体解释一下。
#这个指令很有用,可以重复发相同的指令,比如#20 s就是向南走20步,这我想大家都早会了,%i是用了一个
变量i,大家不要把i替换成别的字母,否则就需要引进其他一些指令了。如果你要打10个xing,5个zuo,6个r
ong,怎么做呢?在mud中输入:
#alias {killall} {#10 kill xing %i;#5 kill zuo %i;#6 kill rong %i} 回车就可以了。然后可以随时调用
killall这个alias。切记举一反三啊!!!
刚才的这个比较easy,下面说点难的,hehe,先引进三个特殊指令:
#VAR 表示赋值,如#VAR a 1或#VAR b 78,意思为设变量a=1或变量b=78;
#MATH表示计算,如#MATH a @a+1意为a=a+1,当然这个a是必须先由#VAR赋值设定过的;
#SHOW 表示显示,如#SHOW @a则显示出变量a的当前值。
大家肯定早已经糊涂了,怎么一会儿a,一会@a的,这是挺烦的。我也不分析什么道理大家多用就自然记住
了。另外,#MATH可以进行加减乘除等运算,我下面举个具体例子:
#VAR a 1 赋值变量a为1
#VAR b 10 赋值变量b为10
#MATH c (@a+99)/@b*2 计算c=(a+99)/b*2
#SHOW @c 显示变量c的值 (结果显示20)
那么,我们学会使用这些变量到底有什么实际用处呢?坦白的说,用处不大,打npc是真刀真枪的战斗,取
不得巧,做个状态条显示气血精神exp增长率什么的,也是闲得无聊的玩意儿,我只能说,凡是可以或需要用到
计算的问题,我们都可以用这些指令解决了。比如,当我们循环后,常会算用400内力可以恢复多少气血,或者
要恢复满600气血需要用多少内力等问题,那么我们可以先算出用20点内力可以恢复多少气血(精神相同),假设
20点内力可以恢复45点气血,那么要恢复600气血需要600*20/45点内力,只要在mud里输入:
#VAR a 45;#VAR b 600;#MATH c @b*20/@a;#SHOW @c就可以了。不过,这看起来也没什么用,
我说的只是一个思路而已。
这些变量的最大用处在于可以放在一些mud指令之后,比如#VAR a 200;exercise @a就表示用200气血打
坐,当然,我们一般用于study book,exercise,meditate,learn等指令后的数字都是一个不常变化的数字,
只有当出现需要经常变化(递增或递减)的情况才派上用场,如传内力就是个运用变量的好时机,随着接受内力
者的内力增加,传功者打坐所需气血也应随之增加,那么这个递增变量就可以用exercise @a;#MATH a @a
+1来完成。
罗嗦了半天,也许大家根本觉得没用,那就跳过那段吧。下面我说说trigger中变量的应用。常有人爱做个
人缘好的dummy放在玩家常连线进来的地方,一出现"谁谁连线进入这个世界"他就打招呼,点头作揖问好,这里
就包含了trigger中套用变量的基本用法。如下例:
#AC {^(%1)连线进入这个世界。} {chat hi,%1,你可来啦,想死我了!}
在这个例子中,%1可以代表为数字或字母,如果你用%a则只能取到数字。如
#AC {经验:%a} {tell buyi 我已经有%1点经验啦,xixi}
对了,忘了说了,#AC是ZMUD里一个特殊指令,其实就是我们常用的trigger,我们一般都用鼠标去
点菜单上的软键,用#AC就可以直接输入做好trigger了。那个buyi是俺的大名,:P
在trigger的Pattern前面加个^号,是表示激活该trigger的话必须顶头出现,很多人都做了读书睡觉的t
rigger,Pattern为"你一觉醒来,觉得身体完全恢复了!"这样,如果有人捣乱用rumor说"你一觉醒来,觉得
身体完全恢复了!",那你的trigger就被激活,乱了套了,trigger多了,自然要保护好,把Pattern做成"^你
一觉醒来,觉得身体完全恢复了!"就不怕了。如果你自己想测试这个trigger,那就用#SA来搞定。在这里必
须提醒一句,mud里常出现">"这个符号,常让trigger不能顶头出现,从而trigger失效,这是个很讨厌的问题
。我的解决方法是把trigger加上颜色,具体方法如下操作:
先用鼠标将要取的Pattern抓下,然后打开trigger,new一个新的,点Options,选中Color Trigger,
然后在pattern里用Ctrl-v复制上去。这样,你的trigger就变成一行你自己都看不懂的乱码了,没关系,zmu
d能看的懂,好了,你的trigger加了颜色,无论谁也无法打乱你的trigger了。 :)
faint..好像说走题了,我们言归正传。
|