当前位置:梁山文学城 网络泥巴中文文字mud综合门户网站 泥潭帮助 网络泥巴中文文字mud综合门户网站 zMud帮助 网络泥巴中文文字mud综合门户网站

 zMUD中函数和变量的应用四(中级玩家适用)

zMUD中函数和变量的应用四(中级玩家适用)

精彩泥巴推荐

标题 作者 内容

作者:不易    更新时间:2004-11-01   阅读次数: 2011 次  

相关评论:1 篇   暂时无人对本文评分! 关键字:zmud

来源:水泊梁山之天下泥潭http://www.aolai.org(来源有误请尽快联系本站管理员

zMUD中函数和变量的应用四(中级玩家适用) 

作者:不易 http://buyi.yeah.net/ 

 

  

 

  这最后一篇文章,我酝酿了一月有余。我做了zili的trigger,以实验各种函数和变量的应用。在

这一月中,我还多次拜访了东方英雄的主页(http://www.nease.net/~jjwk),仔细学习了如何使用zM

UD中提供的automapper来制作mud地图,而且,我在river的主页“zMUD从入门到精通”中看到了

zMUD4.62帮助文件的全中文翻译,深感佩服。我不得不承认,前人的研究远胜于己。在MUD中练

功无止无休,zMUD的研究也是永无止境,即使已经熟悉了各种变量函数,仍可以求简化、求精深。 

  忽然想起这样一个小问题,有的朋友曾问我,当同时fight10个同名的npc时,如何只打后面5个,

放过前面5个不打。我们可以用#loop语句轻松完成,如例: 

 

#loop {5,10} kill snake %i 

 

  这个例子中的5和10可以换成变量来操作,配合抓蛇的trigger,可以几个人在一起练功不互相干

扰,比如#loop {@a,@a+5} kill snake %i。还有朋友曾问起我如何制作自动打招呼的trigger,关键

是如何获取player的英文id,这是有一定难度,我将zili trigger部分公布,下面进行讲解。 

 

1、Class --- come (enable) 

   Pattern:(%1)走了过来。 

   Commands:#t- come;#t+ come1;#var cname %remove(> ,%1);id here 

 

  此trigger中关键是用id here来将玩家的中文名字转换成英文id,因为在mud中顶头经常出现“>

“,%1”,这样才能准确获得玩家的中文名字,以便准确激活下面的trigger。 

 

2、Class --- come1 (disable) 

   Pattern:@cname (%s) = %1 

   Commands:#var ename %1;l @ename;#t+ come2 

 

不一,需要用%s来替代,而在“=”后面的英文id就不需要考虑空格的问题了。 

  另外,我在这里介绍另一个函数%trim(@a),这个变量可以消去变量a两旁的空格,用%trimleft(

@a)是去掉左边的空格,%trimright(@a)是去掉右边的,这个函数在某些因空格数不一定的trigger中

能起到非常好的作用。 

 

3、Class --- come2 (disable) 

   Pattern:他看起来约(%x)多岁。 

   Commands:#var sex male;#var cage %1 

 

  此句取来者年龄性别。 

 

4、Class --- come2 (disable) 

   Pattern:她看起来约(%x)多岁。 

   Commands:#var sex female;#var cage %1 

 

  性别本来应该可以做了变量取下来用#if {%1=~"他"} {#var sex nan} {#var sex female}来判断

识别,可我在trigger中反复调试竟然不成,这是我一直没有解决的问题,哪位高手知道希望能不吝赐

教。似乎问题在于=~" "引号里面的内容不能是汉字,是英文就可以,搞不懂怎么回事。 

 

5、Class --- come2 (disable) 

   Pattern:武功(%1) 

   Commands:#var wugong %1;#if {@sex=~"female"} {#case %random {xixi @ename;#wa 3000

;say @cname妹妹,你刚@cage几岁,武功都练到@wugong啦!} {pat @ename;#wa 3000;say @cname,

@cname2都等了你好久啦,怎么才来!;#var @cname2 @cname} {kiss @ename;#wa 3000;say 大功告成

,亲个嘴儿!}} {#case %random {pig @ename;#wa 3000;say @cname,你的武功怎么还是@wugong呀

,@cage多年真是白活了!} {jump;#wa 3000;say @cname大哥来啦,@cname2呢,快给上茶!;#var @

cname2 @cname} {heng @ename;#wa 3000;say @cname,你还有脸来见我,快自己了断了吧!}} 

 

  这句比较长,请大家仔细看清楚语法结构。主要用了#case和%random函数,在cake的文章中已经

有比较详细的论述,我这里不再多说了。主要用#case可以使打招呼的话变各种花样,把player的id,

中文名字,性别,武功等级都取下来做在trigger中,显得更生动有趣,还可以把player的容貌、身体

状况和穿戴也取下来,我这里也不多讲了。 

 

  本想写一篇关于如何制作回答审判官(judge)问题的文章,我自己也苦心制作了trigger,可我看

了一个朋友给我的trigger后,无论怎样也无法超越前人的杰作了。并且,我也并不赞成judge trige

r的推广,因为如果那样的话,巫师也许会制作更难缠的judge来抓玩家,或者将指令数限制的更严。

不过,我在此也要多说一句,黄土大道是天龙八部的一个败笔,重复的路无形中增加了玩家的指令输

入量,而且平淡无味,只觉烦人,连接大城的路怎能做成这样?在许多MUD中,大城到了晚上就会

关闭城门,无法进出,这种设计很真实,虽然等城门开时有点无聊,但不能不说也是一种不错的思路

。 

 

  下面我再讲讲zili trigger中一个有趣的设计,就是做一个玩家描述的文本档案,当别人ask zi

li about id时,zili会说出与所问id有关的一段话。我的trigger是仿照西游记中对诗的trigger制作

成的。有兴趣的朋友可以对照看看。 

 

1、Class --- ask 

   Pattern --- 向你打听有关‘%1’的消息。 

   Commands:#if {%1=@askname} {#math dask @dask+1} {#var dask 0};#if {@dask>6} {heng

;say 你别老问个不停好不好?不理你了!;#t- ask;#wa 60000;#t+ ask;say 好吧,再跟你们聊一会

儿吧,别老问个不停呦。} {#t+ ask1;askname=%1;#if {%len(@askname)<3} {shake;say 你听说过有

人叫@askname么?} {#sh %grep(1,"@askname");#var aass %grep(1,"@askname");#if {@aass=~""}

 {#case %random {shake;say 不太清楚...} {?;say 天龙有这号人么?我怎么不知道?} {heng;say

 我不想谈他,换个话题吧...} {sigh;say 我脑子里也记不住这么多人呀!} {blink;say sorry,我不

知道,不过,你可以tell我“记录  <描述>”,我就可以记住啦,try!}}}} 

 

  这个trigger比较复杂,前面部分在于防止有人连续ask捣乱,让你跑到judge那里,所以如果同一

人连续ask6遍以上,就会停止trigger一分钟。中间部分是防止所问id过短(少于3个字母),如果过

短会出现混乱。第三部分#sh %grep(1,"@askname");#var aass %grep(1,"@askname")是关键内容。用

%grep函数来找出与所问id匹配的描述。最后部分是防止所问id为中文或者在文本档案中没有记录的部

分。 

 

2、Class --- ask1 

   Pattern --- (@askname)(%s)(%1) 

   Commands:#t- ask1;askname2=%1;say @askname2 

 

  当找到匹配的描述后,会在屏幕上显示出来,就用这个trigger取下id后面的中文描述,剩下的就

简单了。 

  我知道我讲解的过于简单了,可实际上很多东西是难于在字面上解释清楚的,你自己实际操作一

下,会发现很容易,而且理解的更透。 

  Trigger在练功中可以省去我们很多指令输入,是玩Mud的一个重要帮手,其实能迅速准确的激

发,完成你要达到的目的就可以了。我这篇文章从浅入深谈zMUD的函数与变量,到后面其实已经脱

离了练功trigger的范畴。做一个智能的机器人,用trigger来模仿真人的说话和emote,甚至完成一个

完整的事件,已成为了一些trigger高手的趣向。如果我们再给机器人加上具有个性的言谈和emote,

并且自动寻找出口四处走动,那几乎可以“以假乱真”。 

 

  我们作为真人,竟用机器人来模仿真人,有点可笑,是吧? :-) 

  下载zili trigger,if u like it,send me a mail.thank u! 

 

 

                               (全文完)

【本页链接】http://www.aolai.org/article/2004-10/article-1099263837.htm

返回水泊梁山首页    返回本目录    上一篇: zMUD中函数和变量的应用三(中级玩家适用)    下一篇: 开店篇
   我要评论 姓名:
  内容:  请控制字数少过128个中文字
  天书: 
   我要评分 分数:  介于0.00~5.00之间,满分5分!   
   相关文章:
   1. ZMUD使用入门篇 [点击:5216]
   2. ZMUD的终极讲座 [点击:4059]
   3. ZMUD中的函数和变量 [点击:3501]
   4. 机器人的基本制作 [点击:3425]
   5. ZMUD里的颜色触发 [点击:2108]
   6. 怎样玩“泥巴”? [点击:1351]
   7. 使用zMUD防范PK: [点击:1196]
   8. 如何用好TRIGGERS [点击:1870]
   9. zMUD中函数和变量的应用二(中级玩家适用) [点击:2122]
   10. zMUD中函数和变量的应用一(中级玩家适用) [点击:2406]
   相关评论( 共有 1 条评论)
1 小眼睛 (2003-11-27) 我对会用robot的人向来很崇拜,看了半天,或许我是太笨,没看懂,over yangtz

搜索泥巴妙文

更多泥潭帮助妙文

  我是一个叛徒 [295]
  我的判师 [346]
  判师隆中对 [1346]
  招聘督察 [66]
  关于取经ITEM [1950]
  关于取经NPC的问题 [1399]
  我的夜 [85]
  西游记2000总站取经13-24 [10123]
  西游记2000总站取经1-12 [11989]
  西游记各种技能的介绍 ( [8892]
  西游记 兵器大赏 [3973]
  取经小西天过关纪录 [2004]
  取经通天河过关log [1601]
  二十八关取经之第六关 [2174]
  火焰山过关秘籍 [2432]
  二十八关取经之第一关 [3053]
  痴风梦月的技能最强篇-- [6063]
  杀尽天下唐僧-给spls的新 [2186]