文字MUD游戏论坛-天下泥潭群英会-水泊梁山  

返回   文字MUD游戏论坛-天下泥潭群英会-水泊梁山 > 西游之旅 > 『 机器人制作及下载 』

『 机器人制作及下载 』 如何从开始简单的数组、触发,到复杂的路径、地图、数据库等等。如何考虑周全的制作全自动的机器人让它能够24小时不停的帮你练功。

发表新主题 回复
 
LinkBack 主题工具 主题评分 显示模式
旧 2013-05-18   #1
中级会员
级别:1 | 在线时长:14小时 | 升级还需:1小时
 
jnjn 的头像
 
注册: 13年05月08日
来自: 乐山
帖子: 75
声望力: 13
声望: 23 jnjn 初领妙道
现金:17两梁山币
资产:17两梁山币
致谢数: 1
获感谢文章数:0
获会员感谢数:0
自动画地图的机器人,前辈写的东西,有兴趣的可以研究下。

PS:先吐个槽,一直声望不够,什么都下载不了。

作者:江南(River @ BJ)

  在zmud中提供了一个内建的地图编辑器可以帮助我们绘制mud世界的地图,避免在神秘莫测的mud世界中迷途不返。为了绘制一张完整的地图,需要走遍这个世界的每一个角落,这实在是一件费时而且乏味的事情。利用zmud提供的有关命令和函数,我们可以编写一个自动绘制地图的机器人,简单快速的完成这项工作。
一、配置zmud的automappr

  为了使automapper可用,需要针对不同的mud对automapper进行一些简单的配置,以下以《西游记》为例,简要说明配置过程:

打开automapper,选择菜单edit/preferences...;
在strings的look command中填入look;
在full parsing、brief parsing、look parsing三页中的exit pattern中填入“的出口是”,exit types选 whole words,选中exit in prompt;
在brief parsing页中将BRIEF Parsing order 框中的Room description删除;完成上述步骤,即可在《西游记》中使用automapper了,如果需要名副其实的auto,这只是万里长征的第一步。
二、修改speedwalking中的方向代码

  单击 zmud 顶行按钮Paths,选择Directions页,将其中的代码l改为m,别忘了改动与其相对应的代码h中的Reverse code:l。
  之所以需要修改方向代码,是因为在机器人运行时需要用的到这些代码中,l与 mud 命令 look 相同。

三、触发

  在triggers中增加class map,该类中包括以下triggers:

#TRIGGER {的出口是} {#wait 5000;0map} {map} 548
#TRIGGER {^什么} {#gag} {map} 548
#TRIGGER {闲聊} {#gag} {map} 548
#TRIGGER {谣言} {#gag} {map} 548
#TRIGGER {离开} {#gag} {map} 548

  上述triggers中,第一条的延时请根据网络速度自行调整,别名0map在下面会说明。其余几条的功能都是删除有可能对地图数据产生干扰的信息,通常可以用tune all off来避免大多数干扰,其他的干扰信息,例如:

太阳已经高高地挂在东方的天空中
xx走了过来...等等,请自行添加。

四、添加aliases

在zmud的中aliases中添加以下内容:

#ALIAS start {pass=1;#t+ map}
#ALIAS h {nw}
#ALIAS j {ne}
#ALIAS k {sw}
#ALIAS m {se}
#ALIAS 0map {mexit=%numwords(%roomexit(),|);
#if (%null(%roomnote(,))) {%roomnote(,##)} {%roomnote(,%roomnote(,)#)};
#math passn %len(%roomnote(,))/2;
#if (@passn>@mexit) {%roomnote(,);
#math passn @pass+1;
#math pass @pass+1};
#if (@passn>@mexit) {passn=1};
#if (@pass>3) {#t- map;pass=1};
#exec %word(%roomexit(),@passn,|)}

  至此,自动的地图绘制者正式完成,你只需打开地图编辑器,按下edit键,输入start;look就可以了。

五、主意事项

按照%roomexit()函数的输出顺序,最好从地图的西南角开始运行,如果从东南角开始,可使变量passn=mexit-passn+1;
对于较大区域(zone)的地图,本程序通常不能一次性完成整个地图的绘制工作,当程序停止时,你可以移动到地图的边缘,再次start;
当遇到有npc阻拦而无法进入的room时,程序会自动停止,此时需按下automapper的off键,然后重新开始,以免造成混乱;
zmud的automapper不能表示su,nd等方向的room,但用户可以将通过su、nd等方向连接的区域(zone)用automapper提供的teleport功能连接起来,具体做法请参考zmud的帮助文件。
如有任何疑问、意见和建议请与river联系。

帅哥 jnjn 当前离线  
回复时引用此帖

发表新主题 回复

添加到书签


发帖规则
不可以发表主师
不可以回复帖子
不可以上传附件
不可以编辑自己的帖子

论坛启用 vB 代码
论坛启用 表情图标
论坛启用 [IMG] 代码
论坛禁用 HTML 代码
Trackbacks are 启用
Pingbacks are 启用
Refbacks are 启用



所有时间均为格林尼治时间 +9, 现在的时间是 02:42.


Powered by SPLS
版权所有 2001-2023 水泊梁山
皖ICP备05012024号

站长 fengyue

Content Relevant URLs by vBSEO 3.6.1