![]() |
![]() |
#1 |
高级会员
![]() ![]() ![]() ![]() ![]() 注册: 08年02月04日
来自: 长安
帖子: 119
声望力: 19
声望:
25
![]() 现金:363两梁山币
资产:601两梁山币
致谢数: 2
获感谢文章数:2
获会员感谢数:2 |
解谜机器人的制作方法(抛砖引玉)
用全自动灭妖机器杀怪,杀到1M wx,我们可以进入另一个阶段了。 现在需要的是 全自动杀怪机器+7quests自动解谜机器了。 在这里我只是讲讲思路吧,看看大家能否做出来。 首先要用的数据库,zmud5.55提供数据库,可以把所有的谜导入到数据库中 有什么字段先不忙说。 这个机器由于是常年累月一直挂的,其中对效率的要求是第一位的, 所以对于每个谜要求能够最短的路径走过去,如果其中没有拦路的NPC和NPC的位置是固定的, 最好是一次输入一串命令,可以直接做掉这个quests,其他情况还是用path的方式一步一步走, 当直接走路的任务遇到那些会拦路的妖怪,能够自动转换为用path的方式重走一边,确保可以走到目的地。 由于这个机器在 1M wx 时就开始挂,而一些谜对ID的要求比较高,所以每个谜应该设定等级,当ID没有达到等级时, 就直接认为任务不可做。 对于所有quests,都可以归纳为如下动作:ask,去商店买,到十字街头的pen里面fetch,get,give,kill,找自己大米要或到自己收集好物品的地方去拿,去当铺买,杀NPC后get from corpse,用金刚琢去拿兵器或用犁头砸兵器。 我们可以针对每个动作做一些 triger ,判断是否成功的做了任务。 经过以上分析可以知道了数据库的字段该有些什么了: qName (quests的名称) qID (quests的ID) path (做任务需要的最短path) act (做任务会用到的动作) do (任务的目标,ask就是内容,give就是要给的物品ID,杀NPC得到物品就该是NPC的ID) mode (走路的方式,是直接走过去还是用path的方式 #sl 过去) level (该任务的等级,就按100sk一个等级算吧,最大是3) 实际做了下,一共有 1600 个quests 这里提供一些访问数据库必要的命令: rec=%query(&qName=@find & &act=kill) rec=%find(@find) #dbget @rec findID=%rec.qID q_path=%rec.path 如果想直接走一个path,那么 #exe .@q_path 如果要用path的方式走,那么 #sl @q_path 做这个机器需要用到zmud5.55的另一个特性,同一个名字的 alias ,可以归到不同的 Class 里面 每个解谜动作可以用相同名字的 alias 比如 q_do, #ALIAS q_do {get @findID} {a_get} #ALIAS q_do {buy @q_do} {a_buy} 这样当解谜的时候,可以打开解谜动作Class,走到目的地,q_do, 就可以开始解谜了。 做这个机器,会遇到很多细节需要考虑,但是如果你能完成这个机器, 恭喜你,使用zmud5.55可以做任何机器了。 |
![]() ![]() |
![]() |
![]() |
#2 |
中级会员
![]() ![]() ![]() 注册: 11年10月14日
来自: 长安城
帖子: 60
声望力: 14
声望:
20
![]() 现金:88两梁山币
资产:88两梁山币
致谢数: 1
获感谢文章数:0
获会员感谢数:0 |
回复: 解谜机器人的制作方法(抛砖引玉)
从天上徐徐飘下几页天书,落入白衣卿相的怀中。
|
![]() ![]() |
![]() |