|
本帖最后由 teleck 于 2024-6-3 01:34 PM 编辑
# 前言
BotStep 是一个API,它允许你插入一个机器人行走步骤。具体在使用Paotin++进入xkx MUD后中输入:
即可看到如下解释信息:- ## 别名 path.BotStep <机器人名称> [<机器人参数> ...]
- 插入一个机器人行走步骤。
- 接到本指令时,PaoTin++ 会进行如下处理:
- - 1: 暂停路径录制;
- - 2: 在路径中插入一个机器人步骤;
- - 3: 自动调用机器人行走;
- - 4: 机器人行走完成后,自动恢复录制。
- 按照约定,符合本规范的机器人必须发射以下事件之一:
- - map/walk/continue: 代表机器人成功结束运行,通过该区域
- - map/walk/failed: 代表机器人遇到了无法逾越的障碍,放弃行走
- 本命令会监听以上事件并做相应处理。
复制代码
# 应用示例
下方代码,是具体在北侠mud里,主要依赖BotStep实现的华山巡山任务的一个机器片段:- #var job-xunshan {true};
- #alias {map.XunShan} {
- #local cmd {%1};
- $cmd;
- #if { @isTrue{$job-xunshan} } {
- #action {^你在%*巡弋,尚未发现敌踪。}{
-
- #delay {2} {event.Emit map/walk/continue map.XunShan;
- okLog 该继续了。;};
- };
- #action {^你的动作还没有完成,不能移动。}{
- okLog %1 没动。;
- #delay {5} {busy.Wait {okLog %1 没走成,再来。;%1}};
- };
- };
- #else {
- event.Emit map/walk/continue map.XunShan;
- };
- };
- #alias {bs} {path.BotStep XunShan};
复制代码
这段代码,定义了两个别名bs和map.XunShan。
就这个两个别名分别说明如下:
1. bs 是为了在录制路径时候使用方便而使用的,根据上文“解释”,XunShan是机器人的名称。
2. map.XunShan 是BotStep需要的别名,必须以“map.”开头,并在其中通过:
- event.Emit map/walk/continue map.XunShan
复制代码
或者:
- event.Emit map/walk/failed map.XunShan
复制代码
来实现具体机器人的完成动作。
假设,代码是按照paotin的玩家自定义模块要求,在一个var/plugins/XunShan.tin的文件里。
使用这个机器的时候,按如下步奏:
1. LM XunShan
2. 在华山你想要的位置开始,点击屏幕录制路径或者用“path.Trace"指令开始路径录制;
3. 在命令行中输入”bs“,会出现如下交互信息:
- 已经暂停路径录制,将会在机器人运行结束后自动继续。 取消录制请使用 {path.Cancel},完成录制请使用 {path.Finish}。
复制代码
4. 游戏里出现“你在xxx巡弋,尚未发现敌踪”这样的信息后,触发机器人行走完成事件“map/walk/continue”,并出现相应的提示。
5. 在不需要机器人行走的时候,输入正常的"n s e w"方向即可,路径会正常录制。
6. 第3步、第5步循环使用,直至路径录制完成(path.Finsih,或者点击屏幕上的相应位置)。
录制完的路径,会保存在“var/data/map-path.tin"文件中,内容如:
- {华山的客厅-华山的华山脚下} {XunShan/n;XunShan/n;略...}
复制代码
7. 使用的话,执行:
8. 补充说明:具体做机器的时候还需要再加入泼皮拦路之类的因素和相关处理,这里就不展开写了。
|
|