本帖最后由 Eterstars 于 2021-2-17 11:17 编辑 
一. 效果和简介
玩过一些服务器的朋友一定知道AFK机制吧
即挂机一段时间就会把该玩家踢出服务器或者把该玩家传送到挂机池
那最近我研究出了等效的命令
一起来看看吧
(部分灵感来自我的另一个作品https://www.mcbbs.net/thread-1163058-1-1.html)
二.原理
检测挂机的机制就是给没有移动的玩家扣积分
一旦移动便还原积分
当积分归零时,即说明玩家正在挂机
三.指令(我设置的是50s定为挂机时间)1.创建部分
聊天区 /scoreboard objectives add AFK dummy
(该计分板后台运行即可,无需显示)
2.执行部分(为方便说明,将挂机池位置定为0,4,0)(x)在下方图示中有意义
(1)重复 无条件 保持开启 /execute @a ~~~ execute @s[rm=0.01] ~~~ scoreboard players set @s AFK 50
以上指令解释:利用execute嵌套确定@s rm=0.01即行动中 后面通过设置延迟使50变成50s 给移动中的人重置积分为50
(2) 重复 无条件 保持开启 /scoreboard players remove @a AFK 1 (延迟设置为20(即1秒))
(3) 重复 无条件 保持开启 /tp @a[scores={AFK=0}] 0 4 0 (延迟设置为20(即1秒))
链 有条件 保持开启 /say @a[scores={AFK=0}] 暂时离开了
这就是AFK机制了
如果各位对此有什么看法和建议
欢迎在下方回帖
感谢各位支持
最近没有啥点子了。。。
如果各位有什么想看的话,请给我提一些点子吧
水怪席:
@Eterstars @凌久�_Chang @jason_sun @焕昭君 @振翮高飞 @北极仙光 @LeoPro
一. 效果和简介
玩过一些服务器的朋友一定知道AFK机制吧
即挂机一段时间就会把该玩家踢出服务器或者把该玩家传送到挂机池
那最近我研究出了等效的命令
一起来看看吧
(部分灵感来自我的另一个作品https://www.mcbbs.net/thread-1163058-1-1.html)
二.原理
检测挂机的机制就是给没有移动的玩家扣积分
一旦移动便还原积分
当积分归零时,即说明玩家正在挂机
三.指令(我设置的是50s定为挂机时间)1.创建部分
聊天区 /scoreboard objectives add AFK dummy
(该计分板后台运行即可,无需显示)
2.执行部分(为方便说明,将挂机池位置定为0,4,0)(x)在下方图示中有意义
(1)重复 无条件 保持开启 /execute @a ~~~ execute @s[rm=0.01] ~~~ scoreboard players set @s AFK 50
以上指令解释:利用execute嵌套确定@s rm=0.01即行动中 后面通过设置延迟使50变成50s 给移动中的人重置积分为50
(2) 重复 无条件 保持开启 /scoreboard players remove @a AFK 1 (延迟设置为20(即1秒))
(3) 重复 无条件 保持开启 /tp @a[scores={AFK=0}] 0 4 0 (延迟设置为20(即1秒))
链 有条件 保持开启 /say @a[scores={AFK=0}] 暂时离开了
这就是AFK机制了
如果各位对此有什么看法和建议
欢迎在下方回帖
感谢各位支持
最近没有啥点子了。。。
如果各位有什么想看的话,请给我提一些点子吧
水怪席:
@Eterstars @凌久�_Chang @jason_sun @焕昭君 @振翮高飞 @北极仙光 @LeoPro
 本帖最后由 洞穴夜莺 于 2021-2-17 12:18 编辑 
请标注游戏版本
最新版,那没事了
最新版,那没事了
欢迎各位提出新点子。。。我不知道下一周该做什么了
Eterstars 发表于 2021-2-20 15:19
我觉得可以,等会构思一下
一看就是挂与停老玩家了
这东西绝对出现的比**早
那如果用流动水或者矿车做了个过山车呢?那不也是在移动吗
Arrosin 发表于 2021-2-20 16:09
那如果用流动水或者矿车做了个过山车呢?那不也是在移动吗
一般的AFK机制都无法检测出你说的这种挂机方式
一些服务器也正是利用这种特性来做成挂机池
如果非要把你说的这种挂机方式也算上的话,那肯定要检测按键的
那样的话,就已经不是指令的范畴了
什么是AFK啊
可以设置当玩家afk的时候传送到某地方吗
whatfilmae 发表于 2021-3-19 23:43
可以设置当玩家afk的时候传送到某地方吗
(为方便说明,将挂机池位置定为0,4,0)
(3) 重复 无条件 保持开启 /tp @a[scores={AFK=0}] 0 4 0 (延迟设置为20(即1秒))
已经有这个操作了啊……
