wendaokoujin 发表于 2025-5-4 22:17:32

北大侠客行Vscode版-js机器人示例讲解-自动记录路径

本帖最后由 wendaokoujin 于 2025-5-4 10:18 PM 编辑

提一个场景,比如慕容任务,比如去 泉州-山路 找慕容贼人
1. 逍遥游从苏州-泉州中心
2. 查看地图 lm 山路
3. 手动走到山路和山路附近找到贼人,然后开打
4. 打完收工手动走路到泉州中心
5. 逍遥游从泉州中心-苏州交任务

现在实现一个机器人脚本,在第3步实现启动录制路径,也就从泉州中心去找贼人的所有路径都记录下来,然后杀完后再通过反转路径自动返回到泉州中心,
这样是可以实现4,5步骤的全自动。当然要实现自动还需要一些辅助的代码。
以下分享的只是记录路径的一个类。
这个机器人可以用于很多地方。
class Recordmap {
    //动态记录地图机器人
    constructor(api, sys) {
      this.api = api;
      this.sys = sys;
      this.init();
    }
    allDirections = [
      's', 'south', 'n', 'north', 'w', 'west', 'e', 'east',
      'sw', 'southwest', 'se', 'southeast', 'nw', 'northwest',
      'ne', 'northeast', 'sd', 'southdown', 'su', 'southup',
      'nd', 'northdown', 'nu', 'northup', 'wd', 'westdown',
      'wu', 'westup', 'ed', 'eastdown', 'eu', 'eastup',
      'd', 'down', 'u', 'up', 'out', 'enter'
    ]
    init() {
      let self = this;
      //假如其它地方已经定义了,那就需要把一个回调函数赋值给onSend
      this.api.onSend = function (cmd) {
            self.api.echo('记录地图路径:' + cmd);
            if (self.vars.start) {
                if (self.allDirections.includes(cmd)) {
                  self.vars.path.push(cmd);
                  self.api.echo('记录地图路径:' + self.getPath());
                }
            }
      }
    }
    vars = {
      start: false,
      path: []
    }
    start() {
      this.vars.path = [];
      this.vars.start = true;
      this.api.echo('开始记录地图路径');
    }
    end() {
      this.vars.start = false;
      this.api.echo('结束记录地图路径');
    }
    getPath() {
      return this.vars.path.join(';');
    }
    getPathReverse() {
      return this.sys.reversePath(this.getPath());
    }
}

module.exports = Recordmap;实现的基本原理是:
1. 通过onSend 监控所有输入的指令
2. 有一个方向的指令数组,里面包含了东南西北等全指令
3. 如果输入的指令是在这个方向数组里的一个指令,就把指令记录到一个path数组
4. 到了特定的地方后利用 reversePath 函数把路径反转,再走一遍就回到起点了


lockwell 发表于 2025-5-4 22:19:21

强悍,支持

kumarajivar 发表于 2025-5-5 08:53:09

那返程不是会多走很多路?

wendaokoujin 发表于 2025-5-5 09:31:14

kumarajivar 发表于 2025-5-5 08:53 AM
那返程不是会多走很多路?

会,但是不影响,从中心出发到找到再多也多不了多少
页: [1]
查看完整版本: 北大侠客行Vscode版-js机器人示例讲解-自动记录路径