关于检测玩家死亡的原理
目标选择器@e无法选择死掉的玩家,而@a可以选择死掉的玩家,所以可以先给全部玩家加一个标签,然后在全部玩家实体上去掉这个标签,留有标签的玩家就是处在死亡状态的玩家。
原理就这么简单,也用不了几个命令方块,在做之前先准备一个记分板
scoreboard objectives add dead dummy
关闭命令方块输出显示
gamerule commandblockoutput false从左下角第一个命令方块开始,先给所有玩家加上一个标签
tag @a add dead
接下来第二个命令方块是去除活着的玩家身上的标签
tag @e[type=player] remove dead
此时身上仍有dead标签的就是死亡状态下的玩家
接下来第三个命令方块是给死亡玩家身上再加一个标签作为死亡玩家的标记,这个deadtag标签将会伴随到玩家复活
tag @a[tag=dead] add deadtag
第四个命令方块是给刚复活的玩家在名为dead的记分板上加一分
scoreboard players add @e[type=player,tag=deadtag] dead 1
第五个命令方块是去掉刚复活玩家身上的dead标签,第六个命令方块是去掉刚复活玩家身上的deadtag标签
tag @e[type=player] remove dead
tag @e[tag=player] remove deadtag
到这里死亡榜单基本做好了,但是这时候有个问题,玩家下线后他的分数仍然会显示在榜单上,并且名字显示为玩家下线,所以要另外准备一个记分板只用来显示在线玩家的死亡次数,原理就是新建一个用来显示死亡榜单的记分板,把在线玩家的分数复制到新的记分板上,通过刷新用来显示的记分板去掉下线玩家分数
从右下角开始,第一个命令方块是删除名为死亡次数的记分板
scoreboard objectives remove 死亡次数
接下来第二个命令方块是建立一个名为死亡次数的记分板
scoreboard objectives add 死亡次数 dummy
接下来第三个命令方块是把储存玩家死亡次数的dead记分板上的数据复制到用来显示的死亡次数记分板上
execute as @a run scoreboard player operation @s 死亡次数 = @s dead
最后一个命令方块,把死亡次数记分板显示到暂停界面上
scoreboard objectives setdisplay list 死亡次数
到这里,死亡榜单就做好了。欢迎各位给出建议
目标选择器@e无法选择死掉的玩家,而@a可以选择死掉的玩家,所以可以先给全部玩家加一个标签,然后在全部玩家实体上去掉这个标签,留有标签的玩家就是处在死亡状态的玩家。
原理就这么简单,也用不了几个命令方块,在做之前先准备一个记分板
scoreboard objectives add dead dummy
关闭命令方块输出显示
gamerule commandblockoutput false从左下角第一个命令方块开始,先给所有玩家加上一个标签
tag @a add dead
接下来第二个命令方块是去除活着的玩家身上的标签
tag @e[type=player] remove dead
此时身上仍有dead标签的就是死亡状态下的玩家
接下来第三个命令方块是给死亡玩家身上再加一个标签作为死亡玩家的标记,这个deadtag标签将会伴随到玩家复活
tag @a[tag=dead] add deadtag
第四个命令方块是给刚复活的玩家在名为dead的记分板上加一分
scoreboard players add @e[type=player,tag=deadtag] dead 1
第五个命令方块是去掉刚复活玩家身上的dead标签,第六个命令方块是去掉刚复活玩家身上的deadtag标签
tag @e[type=player] remove dead
tag @e[tag=player] remove deadtag
到这里死亡榜单基本做好了,但是这时候有个问题,玩家下线后他的分数仍然会显示在榜单上,并且名字显示为玩家下线,所以要另外准备一个记分板只用来显示在线玩家的死亡次数,原理就是新建一个用来显示死亡榜单的记分板,把在线玩家的分数复制到新的记分板上,通过刷新用来显示的记分板去掉下线玩家分数
从右下角开始,第一个命令方块是删除名为死亡次数的记分板
scoreboard objectives remove 死亡次数
接下来第二个命令方块是建立一个名为死亡次数的记分板
scoreboard objectives add 死亡次数 dummy
接下来第三个命令方块是把储存玩家死亡次数的dead记分板上的数据复制到用来显示的死亡次数记分板上
execute as @a run scoreboard player operation @s 死亡次数 = @s dead
最后一个命令方块,把死亡次数记分板显示到暂停界面上
scoreboard objectives setdisplay list 死亡次数
到这里,死亡榜单就做好了。欢迎各位给出建议
附件
最后编辑: