欢迎光临散文网 会员登陆 & 注册

【指令】我的世界原版检测上线玩家2cb

2023-02-12 15:01 作者:冇2103  | 我要投稿


有视频看呦~


#循环,无条件,保持开启

#为[标签所记录的所有玩家]移除标签onlineplayers


#连锁,无条件,保持开启

#为[服务器在线玩家]增加标签onlineplayers


#原理:

          #我们知道,命令执行至少需要一个执行体和一条执行命令。

在我们这个体系中


       我们可以想到,执行体为玩家,但又不能是所有在线玩家,所以,我们需要筛选出我们想要的玩家。


       那用什么筛选呢?

       显然易见,标签,计分板就是不错的选择,为使command_block数量达到最少,我选择标签筛选。


       那如何筛选出在线玩家呢?

       我们首先移除所有玩家(*)的标签(如onlineplayers)(此前并没有设置标签)(tag * remove onlineplayers),再给在线玩家增加(如tag @a add onlineplayers)标签,这样以来,在线玩家在命令块执行后都为有标签。


        那如何筛选出刚进入游戏的玩家呢?

        我们又知道,命令块执行命令需要时间,这个时间叫做游戏刻,而刚上线的玩家正好有一个游戏刻的时间,命令方块没能赋予其标签,在一个游戏刻之后,则会被增加标签,根据此特性,我们可以将其划分为已在线玩家(有onlineplayers标签),没有标签的玩家视为未上线玩家和刚进入游戏(无onlineplayers标签)。

        故而我们区分出了刚进入游戏玩家和已在线玩家。


执行命令:



        筛选出玩家之后,我们只需要将选择器@a[tag=onlineplayers]([注]在线玩家)@a[tag=!onlineplayers]([注]刚进入游戏玩家)。例子如下

execute @a[tag=!onlineplayers] ~~~ tellraw @a {"textraw":[{"text":"<"},{"selector":"@s"},{"text":"> §l§4水视频真快乐,233"}]}

#循环,无条件,保持开启

tag * remove onlineplayers

#连锁,无条件,保持开启

tag @a add onlineplayers

#连锁,无条件,保持开启

在此补充:*表示该选择器所追踪的所有玩家,包括下线玩家,@a只选择上线玩家

执行效果:       



最后,该命令执行效果为,每一位刚进入游戏的玩家都会向聊天栏发送  水专辑真快乐,233假设进入的玩家叫 唱、跳、rap 就会显示

     <唱、跳、rap> 水专辑真快乐,233(看不见我看不见我,哈哈哈)


【指令】我的世界原版检测上线玩家2cb的评论 (共 条)

分享到微博请遵守国家法律