跳转至

AFK检测器

署名信息

AFK检测器动画控制器

了解更多关于动画控制器的信息

以下是一个可以用来跟踪AFK玩家示例。

BP/animation_controllers/afk.ac.json
{
  "format_version": "1.10.0",
  "animation_controllers": {
    "controller.animation.player.afk": {
      "states": {
        "default": {
          "transitions": [
            {
              "stands_still": "!q.is_moving"
            }
          ]
        },
        "stands_still": {
          "on_entry": ["v.afk = q.life_time;"],
          "transitions": [
            {
              "afk": "(q.life_time - v.afk) >= 30 && !q.is_moving"
            },
            {
              "default": "q.is_moving"
            }
          ]
        },
        "afk": {
          "on_entry": ["/tag @s add AFK", "/say 我现在处于 AFK 状态"],
          "animations": ["afk_animation"],
          "transitions": [
            {
              "default": "q.is_moving"
            }
          ],
          "on_exit": ["/tag @s remove AFK", "/say 我不再 AFK"]
        }
      }
    }
  }
}
  • controller.animation.player.afk当然是标识符。
  • 如果Molang查询!q.is_moving返回false(玩家没有移动),状态将转移到stands_still状态。
  • stands_still状态检查玩家在30秒内是否没有移动,如果没有则转移到afk,否则返回default
  • 当进入afk状态时,on_entry被触发,将运行以下斜杠命令。
  • animations包含在状态激活期间要运行的行为动画的短名称,类似于资源动画控制器
  • 如果玩家再次移动,状态将再次转移到defaulton_exit中的命令将被执行。