北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 7011|回复: 10

今天起,改行task

[复制链接]
发表于 2009-9-11 12:26:23 | 显示全部楼层 |阅读模式
昨天做hyd被杀了,万恶的dbr上来就kill,然后又是缠,又是英雄,瞎了眼还在busy,然后就挂了。
很郁闷,还没做到250次,还不能发daoying。

想来想去,xf不好做robot,hyd危险,还是task好一点。
但是task太考验robot了,没有好的robot支持,做起来太累,所以,打算做一个半自动的task robot,至少要做到的就是,一locate xxx,就自动显示出task物品所在的地点。然后,再照搬一下糖果的遍历机器人,就差不多了。

那么如何完成locate的时候,就自动显示task物品所在的地点呢?
思来想去,想用zmud721里的db功能,偏偏zmud721没有中文说明,看英文help又看不懂,最后还跑到zmud的官方论坛上搜了半天,终于搞懂了%find和%db怎么用。

首先要自己新建一个db,db的字段(field)可以自己起名,但是建议,至少要有2项。1项是房间的描述,我起名叫place,另1项是房间的名字,我起名叫name。基本思路就是把locate时候截取的两个地点的两字描述,在db的place列里查找,如果找到了,就把该项的name显示出来。
举个例子吧,先点zmud工具栏里的db,选new database,no template,指定好要存储db的文件名和db名,然后field里点add,新增两项field,一项叫place,一项叫name,type都选成text。然后点上面的list,就可以新增db项了。
可以先把一出来客店和客店w的北大街的描述增加到db里,做个实验。两个房间的描述分别添加到db前两项的place字段里,name字段可以自己起名,比如分别叫“扬州客店”和"扬州北1大街"。
接下来是试一下db的%find函数
zmud的help里的说用法是:Syntax: %find(s[,view,col]))
第一项s是要搜到字符串,后面两项可选,我没搞懂view是指定什么的,不过看zmud论坛上说只要把db窗口打开,这一项留空,就是在当前db窗口的db里搜寻,col肯定是db里的某field没错。
可以先把你的db窗口打开,然后试一下命令
#showdb %find("小二",,place)
%find("小二",,place)会在当前db的place字段里搜寻小二,#showdb会把结果按照db的格式显示出来。
比如,在我的窗口里就会显示:
Num: 1aa
name: 客店
place: 这是一家价钱低廉的客栈,生意非常兴隆。外地游客多选择这里落脚,你可以在这里打听到各地的风土人情。店小二里里外外忙得团团转,接待着南腔北调的客人。客店的主人从不露面,他究竟是谁,有各种各样的猜测。墙上挂着一个牌子(paizi)。
如果%find没有找到,就什么都不会显示出来。
基本思路已经清晰了,但是,如果搜需出来的db的记录多于1项怎么办?
%find如果搜到的结果多于1项,会返回一个list类型的变量
用一个诸如task_place1的list变量来保存这个返回结果,然后用%item来读取这个变量的每一项,依次打印出来。
我现在的做法是,做了trigger来取task名字,搜索字段,然后做了几个状态条来显示当前task的名字,两个搜索的字段,然后下面两行,分别显示字段一找到的3个结果的name字段,以及字段二找到的3个结果的name字段,只要看一下哪个地点在这两行重复出现,就知道具体位置了。
图有空了慢慢上。

但是,现在问题来了,北侠有几百个房间,一个房间一个房间的把描述添加到db里实在是一项艰苦的工作,我昨天手动弄了好长时间,才弄完了扬州城的西面和北面,谁有好办法能很快把所有房间的描述和名字都弄到一个db里的?
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2009-9-11 13:52:20 | 显示全部楼层
精神上绝对支持你!!!
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2009-9-11 13:53:57 | 显示全部楼层
原帖由 yxh 于 2009-9-11 01:52 PM 发表
精神上绝对支持你!!!

等我做完了robot,我要登个新人叫ytoa,然后争取赶超某人
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2009-9-11 13:56:40 | 显示全部楼层
我可以提供技术支持, 哈哈~~~
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2009-9-11 14:02:39 | 显示全部楼层
地图名字跟描述
这个论坛上貌似已经有了
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2009-9-11 14:41:44 | 显示全部楼层
想做task还是用mush吧,zmud不适合locate,当你辛辛苦苦建好了db,然后发现怎么有那么多乱码,效率这么低,会失望的。
提供个思路:先用zmud画地图,然后把地图文件用access打开研究一下,再用mush调用这个文件,你会发现一切是那么简单;
再把论坛上一个hell的机器人研究一下,你会有新的惊喜;
如果一切顺利,你会得到一个这样的task机器人:locate----得到房间编码----自动到达该房间----杀人越货---交还task物品----开始遍历----杀tasknpc----循环。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2009-9-11 14:55:04 | 显示全部楼层
做好了记得给我传一个哦
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2009-9-11 14:59:11 | 显示全部楼层
就是作也别用zmud,你会哭的。
zmud数据库对以下字符不支持,房,丝,口。。。。。。。。
你想想吧。
如果不想学mush用cmud作吧。
虽然乱码,但cmud对这些字符是支持的。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2009-9-11 15:57:54 | 显示全部楼层
原帖由 liangyijian 于 2009-9-11 12:26 PM 发表
昨天做hyd被杀了,万恶的dbr上来就kill,然后又是缠,又是英雄,瞎了眼还在busy,然后就挂了。
很郁闷,还没做到250次,还不能发daoying。

想来想去,xf不好做robot,hyd危险,还是task好一点。
但是task太考验 ...


你这个很早的机器人就实现了,你去论坛找找
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2009-9-11 16:32:00 | 显示全部楼层
搜了搜,都是mush的,打死也不用mush

先试试zmud吧,不行了再说
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-11-24 07:31 PM , Processed in 0.011523 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表