计分板:自动追踪与显示槽位
大多数计分板教程只讲了“dummy”。其实内置的判据可以自动追踪玩家死亡、方块挖掘和自定义统计数据,无需任何指令——本文将全面介绍。
dummy 是大家最先学会的判据,但它本身并不会做任何事。 真正有趣的是那些会自动更新的判据。
创建目标
/scoreboard objectives add Deaths deathCount "Times died"
deathCount 是判据。引号中的部分是显示名称,它是可选的。
自动追踪的判据
| 判据 | 递增条件 |
|---|---|
deathCount | 玩家:死亡 |
playerKillCount | 玩家击杀另一名玩家时 |
totalKillCount | 玩家击杀任何生物时 |
health | 持续递增 — 0 到 20 |
food, air, armor, xp, level | 持续递增 |
dummy | 永不 — 仅通过 /scoreboard players set |
trigger | 永不,但玩家可以通过 /trigger 更改 |
trigger 对菜单很有用:普通玩家无法运行 /scoreboard players set, but they can run /trigger,这允许你构建无需管理员权限即可操作的可点击菜单。
统计判据是深层宝藏
/scoreboard objectives add Mined minecraft.mined:minecraft.diamond_ore
/scoreboard objectives add Walked minecraft.custom:minecraft.walk_one_cm
/scoreboard objectives add Jumps minecraft.custom:minecraft.jump
游戏已经追踪的任何统计数据都可以驱动一个目标,无需任何计时函数。 统计数据家族包括 minecraft.mined, minecraft.crafted, minecraft.used, minecraft.broken, minecraft.picked_up, minecraft.dropped, minecraft.killed, minecraft.killed_by 和 minecraft.custom。
请注意,距离统计数据以厘米为单位 — walk_one_cm 除以 100 才是方块数。
显示槽位
/scoreboard objectives setdisplay sidebar Deaths
/scoreboard objectives setdisplay list Deaths
/scoreboard objectives setdisplay below_name Deaths
sidebar— 右侧面板,显示前 15 个条目list— 在 Tab 列表中的玩家名称旁边below_name— 浮动在玩家名牌下方
侧边栏还可以添加队伍颜色后缀 — sidebar.team.red — 仅向该队伍的玩家显示该目标。 这就是某些服务器向不同队伍显示不同分数的方式。
将值读入指令
/execute store result score @s Temp run data get entity @s Pos[1]
/execute if score @s Deaths matches 5.. run say five or more
matches 接受一个范围:5, 5.., ..5, 1..10。这是根据分数进行分支的标准方法, 这也是为什么 store result 很重要 — 它是世界数据和计分板运算之间的桥梁。
清理
目标会永久保存在世界文件中。当地图完成后,请务必 /scoreboard objectives remove <name>, 否则一个经过大量迭代的数据包会留下几十个已失效但仍在运行的目标。
所有默认的游戏规则,以及计分板统计数据和游戏事件频率,都列在 参考与计算器 — 第 4 批中。