Mud 版 (精华区)
发信人: Mice (浮云往事), 信区: Mud
标 题: 我的机器人----(4)
发信站: 紫 丁 香 (Fri Mar 6 15:54:17 1998), 转信
3.如何从中文名字得到英文 ID
从手工得角度可以知道,我们可以通过 who -l 或 finger 来找到目标的英文 ID,而对
于同一地方的人,我们可以用命令“id here”看到当前在场的人或物的中文名称和对应
ID,如:
> id
here
在这个房间中, 生物及物品的(英文)名称如下 :
南城客栈留言板 = board
千里眼 = bigeye, youchai, chai
店小二 = xiao er, xiaoer, xiao, waiter, er
对于机器人而言,它们都是在模拟人的行为,我们这里要用的方法也不例外。首先我们先
为 ID 本身定义一个变量 WH_IdName,过程和前面一样,不再重复。现在接着说,已经明
白的是,我们可以用某个具体的名字用 trigger 来抓他相应的英文 ID, 如我们用
以下内容可以得到云的 ID:
pattern: 云(%s)= (%x)
command: WH_IdName=%2
这样我们就可以用 "tell @WH_IdName hello!" 来对目标问候了。但是,面临的问题没有
这么简单,因为事先你并不知道你的对象是谁,而是随机的任何一个人。所以我们需要用
到 zMUD 提供的更高级的 triggers 功能:Variable triggers,即变量triggers,
顾名思义,我们通过该功能可以动态改变我们的triggers。这正是我们所需要的!
如果动态地改变上面“云”这一名字,就万事大吉了。
我们先把上面的 pattern/command 改为:
pattern:
(@WH_ChineseName)(%s)= (%x)
command:
WH_IdName=%3;tell @WH_IdName hello! Welcome
然后,还需要修改前面我们的简单问候trigger(前面第2点)为:
pattern:
(%x)连线进入这个世界。
command:
WH_ChineseName=%1;id here
注意,这两个 triggers 都归于同一个“问候”类中,这样到此为止,我们只须激活该类
(Enable Class),我们的完整的自动问候就会开始工作了。
4.总结
举一反三,通过这个例子,我们学会一种基本的和一种高级的获取屏幕信息的方法。只要
我们能从屏幕上获得需要的信息,就可以设计出更多,更复杂的机器人,同时提高加强我
们的思维和解决问题的能力,不再简单地整天打来打去。
--
※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: 202.118.226.92]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.210毫秒