跳转至内容
  • 欢迎
  • 版块
  • 最新
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 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脚本
全自动机器人
1 帖子 1 发布者 9 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • jarlyynJ 离线
    jarlyynJ 离线
    jarlyyn
    写于 最后由 编辑
    #1

    我觉得,全自动机器人本质是对人在Mud中行为的归纳,也就是常说的抽象。

    抽象出的行为模式可能有很多种。

    对于我而言,比较擅长的是

    信息采集->准备阶段(状态重置)->任务执行
    

    这样一个模型。

    所以,继状态采集后,最重要的就是准备阶段。

    什么是准备阶段?

    准备阶段,粗泛点来说,就是通过不同的准备步骤将角色维护到一个Ready的状态。

    通俗来说,其实就是一次角色状态的慢重启。

    对,就是电脑出问题了先重启那个意思。

    机器人的复杂性很大一部分来自于情况的复杂性。

    所以,如果我们能在任务执行前,先进入一个统一的状态,类似修电脑前先重启一下,就能更容易的用更简单的代码来进行维护。

    因为只要考虑一种初始状况就可以了。

    怎么进行准备阶段。

    对于一般机器的准备阶段,我在主逻辑部分也说了,就是一个if队列

    1. 对角色的某个属性定一个标准,检查是否符合这个标准
    2. 如果不符合这个标准,就执行相应的代码,然后重头开始进行检查。
    3. 如果符合这个标准,则当前标准通过,检查下一个标准
    4. 如果所有的标准都符合了,准备结束,状态已经重置,进入执行阶段。

    所以我们提炼(抽象)一下,就是

    • 我们有几个模块,有先说顺序。
    • 模块有一个Check函数。
    • 模块有一个 执行函数,Check没过就去执行。
    • 对所有的模块可能会有个统一的环境(上下文),作为检查的一些具体细节。

    我在newhelljs里就是设置了一个Proposal(提案)类,核心就是有一个Submit(提交)方法

    https://github.com/hellclient-scripts/newhelljs/blob/main/script/helllibjs/proposals/proposals.js

    所有的准备就是提交一个个的提案,如果提案通过,则返回要执行的方法,去执行。提案每没过,返回一个空,继续执行下一个提案

    怎么组织准备阶段的步骤。

    我在newhelljs里准备了一个全局注册的容器Proposals,把每个Proposal按id注册进行。这样在执行准备时可以通过一个字符串id数组就制定要进行的提案了。

    同时准备了一个提案组的类型,把多个提案绑成一个新提案,比如common,commonwithstudy这样调用和维护都轻松的多。

    怎么验证准备的效果

    整个全自动Mud稳定的基础其实就是准备阶段。准备阶段大部分情况下是整个机器最复杂的部分,机器架构的很重要的一部分就是把复杂性统一放在准备阶段,这样任务部分就很轻很简单了。

    同样,准备是一个很好的测试机器人稳定性的工具。

    我们可以做一个空循环

    信息采集->准备阶段->等一秒
    

    空跑一段时间,就能验证整个机器人底层框架的稳定性,健壮性,以及是否有内存泄漏之类的问题了。

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


    • 登录

    • 没有帐号? 注册

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