AFK检测器
AFK检测器动画控制器
了解更多关于动画控制器的内容以下是一个可用于追踪挂机玩家的示例。
BP/animation_controllers/afk.ac.json
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 我现在挂机了"],
"animations": ["afk_animation"],
"transitions": [
{
"default": "q.is_moving"
}
],
"on_exit": ["/tag @s remove AFK", "/say 我不再挂机了"]
}
}
}
}
}- "controller.animation.player.afk" 是该控制器的标识符。
- 如果 Molang 查询
!q.is_moving返回 false(玩家没有移动),状态会切换到 "stand_still" 状态。 - "stand_still" 状态会检查玩家是否在30秒内没有移动,如果是则切换到 "afk" 状态,否则返回 "default" 状态。
- 当进入 "afk" 状态时,"on_entry" 会被触发,执行以下斜杠命令。
- "animations" 包含了在该状态激活期间持续播放的行为动画简称,与 资源动画控制器 中的用法相同。
- 如果玩家再次移动,状态会切换回 "default" 状态,并执行 "on_exit" 中的命令。




