背景:
阅读文章

利用数据库制作全自动解谜机器人

第一章 制作全自动解谜机器人的途径

[日期:2010-05-23] 来源:西游奇旅  作者:八级风 [字体: ]

在XYJ里,如何快速增长道行,是一个困扰许多玩家的大问题,
PK、NK、打花、解谜……PK要甘冒天下之大不韪;NK到了后期很难找到合适的NPC对象;
打花的确是个好方法,我曾经8小时打了430多年,不过很多站点被cut了,
:(。只有解迷,成了一个最可靠的方法。无论去哪个站点,
只要能熟练掌握解谜方法和技巧,都能较快的成长。
然而,解谜的繁琐和辛苦程度令很多玩家望而却步。解谜手册的熟记,


解谜物品的准备,问谜,解谜,清谜,再问谜,再解谜,精神 高度集中,
键盘敲个不停,就象一只陀螺,疲惫地转个不休。一个全自动的解谜机器人,
无疑是所有痴迷XYJ的玩家的梦想。把解谜变成一件轻松的事情,
留下更多时间享受聊天乐趣,让全自动机器人的梦想成真,就是这篇文章的目的。

据我了解与尝试,在现有的条件下,制作全自动解谜机器人大致
可以走以下几条路:
1、把所有任务列入Trigger中,根据问谜的结果触发,完成解谜任务;
2、利用Zmud本身提供的DDE(Dynamic Data Exchange,动态数据交换)
函数来开发一个外部程序,通过外部程序来控制Zmud的运行,实现自动解谜功能;
3、利用Zmud V5.55及其更高版本提供的Zmudapi.dll来开发一个控制Zmud运行的外部程序。
4、利用Zmud V5.x及其更高版本提供的数据库模块构建解谜数据库,配合Trigger来控制解谜。

下面我们来分析一下各种方法的利弊与可行性。
1、现有的很多所谓自动解谜机器人就是这种类型的。有些是专门做
一种解谜任务的,有些更全一点,最好的好象可以做四种任务。
说到底,这样的机器人不过是简单的触发堆积,Trigger庞大的要命,把机器拖的半死,
完成解谜任务又相当刻板,对于XYJ2000的解谜系统根本不适合的。我认为,
这样的Trigger只能拿来给新手做解谜的辅助与提示,没有更大的实际意义。
2、DDE的支持从Zmud很早的版本就开始了,当然DDE本身也是个老古董了。
对于大家常用的4.62版本来说,是除了方法1之外的唯一途径了。
当年浙大西游记的郭大路(henry)曾经用Delphi开发了一个自动解谜的外部控制程序的雏形。
他之所以选用Delphi开发,理由是:
Zmud是用delphi编写的,所以用Delphi最好,VC太复杂,VB的DDE控件不行,
只有Delphi的DDE控件与它联系起来最方便。
雏形出世的时候我还没有开始玩XYJ,同时这个雏形也没有引起太多人的注意。
所以henry的计划随着他去清华读博夭折了。
用DDE开发自动解谜机器人,无疑比方法1迈进了很大一步,
但是,在开发上的难度是相当大的。
3、从Zmud V5.55开始,ZuggSoft公司提供了一个叫Zmudapi.dll的动态链接库。
这个DLL本来是提供给Zmud用户来开发各种插件(Plugin)的。
我在连到ZuggSoft站点下载Zmud 5.55的时候注意到了它的介绍。
(在Zmud 5.55中还附带了Zmudapi.hlp,这个帮助文件简单介绍了该
DLL的功能与用途。在更高版本里不提供这个帮助文件。)
它提供了对Zmud的命令控制、数据传送(单向)以及其他一些功能的函数。
当时我就决定通过调用这个DLL来替代DDE实现外部控制程序,
可惜,我用VC无论如何也无法正常调用DLL提供的函数。这也促使我转向寻找其他方法。
不过,会用Delphi的朋友可以去试一下,Zuggsoft是推荐用Delphi开发的。
4、我的目光焦点是最后转向这个方法的。从Zmud 5.x开始,提供数据库功能,
而这个数据库对于庞大的解谜系统无疑是十分适合的。
解谜的任务如果不包括玩家送物和玩家拜贤,数目接近2000个,用现成的数
据库来处理要比自己编写专门的数据处理程序要便捷的多,处理速度上也有优势。
虽然Zmud提供的数据库功能并不强大,但对于我们编写自动解谜数据库而言足矣,


控制解谜的其他部分可以用少量的Trigger来实现。

在多次尝试之后,我最终选择了第四种方法。在下一章,我会从开发
解谜机器人的实际过程开始,按我所经历的实践思路跟大家探讨:

【内容导航】
第1页:第一章 制作全自动解谜机器人的途径 第2页:第二章 建立解谜数据库
第3页:第三章 任务选择机制的实现 第4页:第四章 解谜技巧的应用
第5页:第五章 完善与展望(结束篇)
收藏 推荐 打印 | 录入:sbso | 阅读:
相关内容       机器人 
本文评论   [发表评论]   全部评论 (0)
内容推送
52mud提供
一起回忆泥巴游戏QQ群68186072
52mud官方微信公众平台
热门评论