跳转至内容
  • 欢迎
  • 版块
  • 最新
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
品牌标识

Hellclient 社区

  1. 主页
  2. Script脚本
  3. 深入浅出制作全自动Mud机器人-遍历

深入浅出制作全自动Mud机器人-遍历

已定时 已固定 已锁定 已移动 Script脚本
mud机器人全自动
1 帖子 1 发布者 11 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • jarlyynJ 离线
    jarlyynJ 离线
    jarlyyn
    编写于 最后由 编辑
    #1

    在Mud机器人中遍历其实有两种含义。

    第一,依次经过所有给到的房间。

    第二,依次经过给到的路径,在需要停止时暂停。

    这里主要讨论第二种。

    之前说过,每个移动是一堆和移动相关的判断函数的集合。

    这里就是要实现继续移动或中止的判断。

    参考我的core/zone.js,遍历而实现代码是

        App.Zone.Finder = function (move, map) {
            wanted = App.Zone.Wanted
            move.Option.MultipleStep = wanted.SingleStep != true
            move.OnRoom = function (move, map, step) {
                let item = wanted.Checker(wanted)
                if (item) {
                    wanted.Name = item.GetData().Name
                    wanted.ID = item.IDLower
                    if (map.Room.ID) {
                        wanted.Loc = App.Map.Room.ID
                        Note(wanted.Target + " @ " + wanted.Loc)
                    }
                }
            }
            move.OnArrive = function (move, map) {
                if (wanted.Loc) {
                    App.Map.FinishMove()
                    return
                }
                wanted.Next(map, move, wanted)
            }
        }
    

    很明显,这个Finder是用App.Zone.Wanted作为选项,对move进行了初始化。

    这里覆盖了两个方法

    • move.OnRoom 经过房间(房间信息结束)的触发
    • move.OnArrive 移动结束的触发。

    主要是因为可以多步移动。

    代码使用 App.Zone.Wanted.Checker来判断房间中是否有遍历目标。

    如果找到目标,则遍历结束(App.Map.FinishMove)。

    是一个很标准的任务遍历模型。

    1 条回复 最后回复
    • jarlyynJ jarlyyn 被引用 于这个主题
    回复
    • 在新帖中回复
    登录后回复
    • 从旧到新
    • 从新到旧
    • 最多赞同


    • 登录

    • 没有帐号? 注册

    • 登录或注册以进行搜索。
    Powered by Herbrhythm.
    • 第一个帖子
      最后一个帖子
    0
    • 欢迎
    • 版块
    • 最新
    • 标签
    • 热门
    • 用户
    • 群组