Paotin++ 关于BotStep的应用于类似华山巡山任务场景的说明
本帖最后由 teleck 于 2024-6-3 01:34 PM 编辑# 前言
BotStep 是一个API,它允许你插入一个机器人行走步骤。具体在使用Paotin++进入xkx MUD后中输入:
HELP path.BotStep即可看到如下解释信息:## 别名 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. 使用的话,执行:
path.Walk 华山的客厅-华山的华山脚下
8. 补充说明:具体做机器的时候还需要再加入泼皮拦路之类的因素和相关处理,这里就不展开写了。
感谢萝卜兄分享,学习了
页:
[1]