北大侠客行MUD论坛

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

Paotin++ 关于BotStep的应用于类似华山巡山任务场景的说明

[复制链接]
发表于 2024-6-3 13:26:59 | 显示全部楼层 |阅读模式
本帖最后由 teleck 于 2024-6-3 01:34 PM 编辑

# 前言

BotStep 是一个API,它允许你插入一个机器人行走步骤。具体在使用Paotin++进入xkx MUD后中输入:
  1. HELP path.BotStep
复制代码
即可看到如下解释信息:
  1. ## 别名 path.BotStep <机器人名称> [<机器人参数> ...]
  2.     插入一个机器人行走步骤。
  3.     接到本指令时,PaoTin++ 会进行如下处理:
  4.       - 1: 暂停路径录制;
  5.       - 2: 在路径中插入一个机器人步骤;
  6.       - 3: 自动调用机器人行走;
  7.       - 4: 机器人行走完成后,自动恢复录制。
  8.     按照约定,符合本规范的机器人必须发射以下事件之一:
  9.       - map/walk/continue: 代表机器人成功结束运行,通过该区域
  10.       - map/walk/failed:   代表机器人遇到了无法逾越的障碍,放弃行走
  11.     本命令会监听以上事件并做相应处理。
复制代码


# 应用示例
下方代码,是具体在北侠mud里,主要依赖BotStep实现的华山巡山任务的一个机器片段:
  1. #var job-xunshan {true};
  2. #alias {map.XunShan} {
  3.     #local cmd {%1};
  4.     $cmd;
  5.     #if { @isTrue{$job-xunshan} } {
  6.         #action {^你在%*巡弋,尚未发现敌踪。}{
  7.             
  8.             #delay {2} {event.Emit map/walk/continue map.XunShan;
  9.             okLog 该继续了。;};
  10.         };

  11.         #action {^你的动作还没有完成,不能移动。}{
  12.             okLog %1 没动。;
  13.             #delay {5} {busy.Wait {okLog %1 没走成,再来。;%1}};  
  14.         };
  15.     };
  16.     #else {
  17.         event.Emit map/walk/continue map.XunShan;
  18.     };
  19. };

  20. #alias {bs} {path.BotStep XunShan};
复制代码


这段代码,定义了两个别名bs和map.XunShan。
就这个两个别名分别说明如下:
1. bs 是为了在录制路径时候使用方便而使用的,根据上文“解释”,XunShan是机器人的名称。
2. map.XunShan 是BotStep需要的别名,必须以“map.”开头,并在其中通过:
  1.    event.Emit map/walk/continue map.XunShan
复制代码

   或者:
  1.    event.Emit map/walk/failed map.XunShan
复制代码


来实现具体机器人的完成动作。

假设,代码是按照paotin的玩家自定义模块要求,在一个var/plugins/XunShan.tin的文件里。
使用这个机器的时候,按如下步奏:
1. LM XunShan
2. 在华山你想要的位置开始,点击屏幕录制路径或者用“path.Trace"指令开始路径录制;
3. 在命令行中输入”bs“,会出现如下交互信息:
  1.    已经暂停路径录制,将会在机器人运行结束后自动继续。 取消录制请使用 {path.Cancel},完成录制请使用 {path.Finish}。
复制代码


4. 游戏里出现“你在xxx巡弋,尚未发现敌踪”这样的信息后,触发机器人行走完成事件“map/walk/continue”,并出现相应的提示。
5. 在不需要机器人行走的时候,输入正常的"n s e w"方向即可,路径会正常录制。
6. 第3步、第5步循环使用,直至路径录制完成(path.Finsih,或者点击屏幕上的相应位置)。

   录制完的路径,会保存在“var/data/map-path.tin"文件中,内容如:
  1.    {华山的客厅-华山的华山脚下} {XunShan/n;XunShan/n;略...}
复制代码


7. 使用的话,执行:
  1. path.Walk 华山的客厅-华山的华山脚下
复制代码

8. 补充说明:具体做机器的时候还需要再加入泼皮拦路之类的因素和相关处理,这里就不展开写了。


北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2024-6-5 18:04:53 | 显示全部楼层
感谢萝卜兄分享,学习了
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-23 08:48 PM , Processed in 0.009717 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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