计分板(游戏《Minecraft》中的一种指令和特殊功能)_百度百科
收藏
0有用+1
0

计分板

游戏《Minecraft》中的一种指令和特殊功能
展开2个同名词条
计分板,又称记分板,是游戏《Minecraft》中的一种指令,指令单词为scoreboard。计分板系统是一套通过命令操纵的复杂游戏机制。主要为地图作者与服务器运营者准备,可用多种形式追踪、设置并列出玩家及实体的分数。 [1]这些命令管理记分板的目标、玩家和队伍。 [1]
中文名
计分板
外文名
scoreboard [1]
别    名
记分板
权限限制
操作员

基本信息

播报
编辑

PC

PC的计分板有三个分支,分别是objectives、players和teams。 [2]
原文
游戏内译名
分支
作用
objectives
计分项/记分项
列出已创建的计分项(记分项)
add
增加一个计分项(记分项)
remove
删除一个计分项(记分项)
setdisplay
修改计分项(记分项)显示位置
players
玩家
set
设置玩家某计分项的分数
add
增加玩家的某个计分项的分数
remove
减少玩家的某个计分项的分数
list
列出某个玩家所有计分项的分数
reset
重置玩家某计分项的分数
test
检测某位玩家的计分板分数
tag
给某位玩家加标签
teams
队伍
list
列出所有队伍
add
创建一个队伍
remove
删除一个队伍
empty
清除某队的人
join
将玩家加入某队伍
leave
将玩家退出某队伍
option
设置某个队伍
表格信息来源 [2]
一张计分板的截图
objectives
objectives在游戏中的意思是“计分项”,作用为控制计分板的计分项目。该分支又分为分为add、remove、list和setdisplay。 [3]
  • add的作用是增加一个计分项目。在创建时,需要填入“名称”和“类型”,还有一个“显示的名称”(格式见下一个一级目录)。名称是计分项目的名称。类型准确的说是准则,是指该计分项目是如何获得分数的。类型有好几种,具体见以下表格:
准则
版本限制
描述
可否编辑
dummy
虚拟型
只能通过命令修改分数,诸如死亡等游戏行为并不能修改分数。这可以被用来制作事件的标记、映射和通货。
trigger
触发器
仅Java版
只能通过命令修改分数,诸如死亡等游戏行为并不能修改分数。/trigger能够用于设置/增减使用trigger作准则的记分项。如果以trigger为准则的记分项没有对玩家启用,则该玩家使用该/trigger命令会失败。成功使用过一次/trigger成功之后,该玩家的该命令将重新被关闭。注意/trigger可以在不允许作弊的情况下被非管理员的普通玩家使用。这可以比较方便地通过/tellraw来制作功能面板。
deathCount
死亡次数
仅Java版
当玩家死亡时,分数会自动增加。
playerKillCount
杀人数量
仅Java版
当玩家杀死其他玩家时分数会自动增加。
totalKillCount
杀怪数量
仅Java版
当玩家杀死其他生物时分数会自动增加。
health
生命值
仅Java版
普通玩家会在0~20之间。代表玩家拥有红心数量的两倍。在玩家第一次改变血量前会显示为0。额外的血或者伤害吸收的血也会计算在血量中,也就是说当获得了伤害吸收或者生命提升的信标效果后生命值可以超过20。
xp
经验值
仅Java版
对应玩家拥有的经验值。
level
等级
仅Java版
对应玩家当前的经验等级。
food
饱和度
仅Java版
在0~20之间,代表玩家拥有的饱和度。在玩家第一次改变饱和度前会显示为0。
air
空气值
仅Java版
在0~300之间;代表潜水的玩家所存余的空气,对应玩家的空气NBT标签。
armor
盔甲值
仅Java版
在0~20之间;代表玩家拥有的盔甲值。在玩家第一次更换盔甲前会显示为0。
表格信息来源 [1]
“显示的名称”指这个计分项目对外显示的名称。
  • remove的作用是删除一个计分项目。删除时,只需要填上计分项目的名称即可(格式见下一个一级目录)。
  • list的作用是列出已创建的计分项目,包括显示的名字。
  • setdisplay的作用是设置一个计分项目显示的位置。显示的位置有三种,分别是belowName、sidebar和list。belowname是在玩家的名称牌之下,在他们的头之上,于记分项的显示名称(display name)后面显示分数。在10个方块后面、玩家潜行时隐藏。在单人游戏中不可见。;sidebar是在屏幕的右侧显示。在列表的最上方显示记分项的显示名称(display name),并显示玩家的高分榜。值得注意的是,即使玩家离线,如果在该记分项下存在一定分数也会在"侧边栏"中进行显示,并且没有痕迹的玩家也不会被显示。除此之外,以#开头的伪造的玩家名称在任何情况下都不会在侧边栏可见。;list是显示在玩家列表中以黄色文字在玩家名称后显示分数信息(默认为 Tab 键),并不会显示记分项名称。注意,每个位置只能放一个计分板。 [1]
players
players在游戏中的翻译为玩家,作用是控制玩家的分数。该分支又分为list、add、remove、set和reset。
  • list是列出某个玩家的所有计分板他所拥有的分数。
  • add是增加某个玩家的某项计分板的分数,在后面有一个NBT标签,用于根据玩家身上的NBT标签加分,比如当目标手持某物品时加分 [3]
  • remove是减少某位玩家的某个计分板的分数,在后面也有一个NBT标签,也可以根据玩家身上的NBT标签减分,比如当目标手持某物品时减分 [3]
  • set是设置玩家某计分项的分数,需要填入玩家ID、要设置的计分项目名称和设置的分数。在后面还有一个NBT标签,还是可以根据玩家身上的NBT标签设置分数,比如当目标手持某物品时设置为多少分。
  • reset是重置某个玩家的计分板,后面的“项目名字”可填可不填。填了就是只重置该项计分板玩家所拥有的分数,不填就是重置所有的计分板玩家所拥有的分数。
  • operation是将某两个的某计分板项目的分数进行计算,可以使用+(相加)、-(相减)、*(相乘)、/(相除)和=(复制)。
  • test是检测某位或多位玩家的某个计分项目的分数是否在指定范围内,如果是,则成功,反之,失败。
teams
teams在游戏中的翻译为队伍,有分为list、add、remove、empty、join、leave和option。
  • list是列出所有已创建的队伍及显示的名称。
  • add是创建一个队伍,需要填入“队名”和“显示的名字”(跟创建一个计分项目差不多)。
  • remove是删除一个队伍,需要填入“队名”。
  • join是加入一个队伍,需要填入要加入的队伍名和加入的玩家(不填即为自己)。
  • leave是退出队伍,需要填入退出的玩家ID(不填即为自己)。
  • empty是将某队的所有玩家退出该队伍,需要填入队名。
  • option是设置一个队伍,分为friendlyfire、color和seeFriendlyInvisibles。在设置时,需要先填入队名。friendlyfire翻译是误伤的意思,数值有true和false,意思是开和关。color是设置队伍的颜色,可以按Tab键选择颜色。seeFriendlylnvisibles是设置是否可以看到自己队伍的人隐身,它的数值有true和false,true则是可见,false则是关闭可见。
信息来源 [3]

PE

PE的计分板功能相对于PC来说,比较少。PE的计分板(scoreboard)分为objectives和players。除了比java版少了大部分准则,其他的基本一样。

格式

播报
编辑
objectives分支格式
list:/scoreboard objectives list
remove:/scoreboard objectives remove <计分项目名称>
add:/scoreboard objectives add <计分项目名称> <计分项目类型> [显示的名称]
setdisplay:
PC版 /scoreboard objectives setdisplay <显示位置> [显示的计分项目名称] [排序方法]
如果不打名称,会删除在那个位置显示的计分项目。
(注:“<>”是必须要填,“[]”是可以不用填)
players分支格式
set:/scoreboard players set <玩家名称> <要设置分数的计分项目名称> <设置的分数> [NBT标签]
add:/scoreboard players add <玩家名称> <要增加分数的计分项目名称> <增加的分数> [NBT标签]
remove:/scoreboard players remove <玩家名称> <要减去分数的计分项目名称> <减去的分数> [NBT标签]
reset:/scoreboard players reset <玩家名称> [要重置的项目名称]
list:/scoreboard players list <玩家名称>
test:/scoreboard players test <玩家名称> <要检测的计分项目名称> <最小值> <最大值>
operation:/scoreboard players operation <玩家1名称> <要计算的计分项目> <计算方式> <玩家2名称> <要计算的计分项目>
random:/scoreboard players random <玩家> <计分项目> <随机数的最小值> <随机数的最大值>
(注:“<>”为必须要写,“[]”为可以不写)
teams分支格式(仅PC版)
list:/scoreboard teams list
add:/scoreboard teams add <队名> [显示的名字]
remove:/scoreboard teams remove <队名>
join:/scoreboard teams join <队名> [玩家ID]
玩家id不写为自己
leave:/scoreboard teams leave [玩家id]
empty:/scoreboard teams empty <队名>
(注:“<>”为必须要写,“[]”为可以不写)
option分分支格式
/scoreboard option <队名> <数值>
下面格式的前半部分重复的(是上面的格式)用“......”来表示。
/...... friendfire <true|false>
/...... color <颜色英文>
/......eeFriendlyInvisibles <true|false>
格式信息来源 [2]

发展历史

播报
编辑
Java版
1.5
13w04a
加入了计分板
13w05a
加入了队伍相关功能
1.7.2
13w36a
加入了统计相关记分项准则
1.8
14w02a
除了玩家外的实体也能加入队伍并拥有记分项分数了
14w06a
加入了trigger队伍击杀相关记分项准则
加入了/scoreboard players enable
"*" 可以用作玩家名称参数代表所有正被记分板追踪的玩家了
为/scoreboard players reset加入了 "objective"参数
统计记分项准则使用ID名而不使用ID了
加入了achievement.overpowered记分项准则
14w07a
加入了/scoreboard players operation与/scoreboard players test
以"#"开头的虚拟玩家的分数不再显示于侧边栏
加入了指定队伍的侧边栏显示位置
加入了nametagVisibility队伍选项
14w10a
加入了deathMessageVisibility队伍选项
为/scoreboard players set,/scoreboard players add,与/scoreboard players remove加入了dataTag参数
加入了stat.crouchOneCm,stat.sprintOneCm,与stat.timeSinceDeath记分项准则
14w25a
为/scoreboard players operation加入了=,<,与>
14w29a
玩家/实体在侧边栏名字的第二顺序依照字母表储存
14w30a
加入了stat.talkedToVillager与stat.tradedWithVillager记分项准则
?
为/scoreboard players operation加入了><
1.8.2
加入了cauldronFilled,stat.cauldronUsed,stat.armorCleaned等记分项准则
1.9
15w32a
加入了stat.sneakTime记分项准则
15w32b
加入了/scoreboard players tag
加入了xp,food,与air记分项类型
15w33a
加入了stat.pickup与stat.drop记分项准则
加入了 thearmor,level记分项类型
15w36a
加入了collisionRule
1.13
pre7
加入了/scoreboardobjectives modify
1.13.1
18w31a
记分板的计算符号%=从%被更改为Math.floorMod
基岩版
1.7
beta 1.7.0.2
加入了记分板部分功能
加入了dummy准则
网易PE版
2018圣诞节更新
加入了计分板的部分功能
加入了dummy准则
表格信息来源 [1]

实际作用

播报
编辑
作用1:计分板计时器
计分板计时器相对于传统的红石循环计时器占地面积更小,更简单。
例子一:10秒倒计时
主要原理:
红石循环1秒,命令方块就被激活一次,减少(remove)1分数。当到达0分数时,循环命令块检测(test)到,输出信号,重新将该虚拟玩家的分数设置(set)为10,这样循环下去。
例子二:计分板时钟
主要原理:
红石循环1秒,命令方块就被激活一次,给“秒”增(add)加1分数。当到达60分数(test)时,将“秒”设置(set)回0,给“分”增加(add)1分数。当“分”达到60时(test),将“分”设置(set)回0,给“时”增加(add)1分数。当“时”达到24时(test),将“时、分、秒”重新设置(set)回0。
作用2:计分板商店
计分板货商店比clear商店要好的地方在于不会吞币,不会占用背包空间。(仅对于购买而言)
主要原理:
如果玩家需要购买货物,可以首先检测(可依照“/scoreboard test 玩家名 记分板名称 商品价格”这一格式)最近的玩家货币是否达到了单价,如果是,则发送红石信号,激活下一个命令块。然后删除(/scoreboard remove 玩家名 记分板名称 商品价格)最近的玩家商品单价的分数,最后给予(可使用“/give”这一指令)最近的玩家商品。 [4]
相应的,如果玩家需要要卖出自己的东西,也可以使用类似的方式,不过传统的漏斗商店效率低(漏斗每秒只能传输2.5个物品,在货物数量大的时候低效是尤为显著的),此时可以借用部分clear商店的思路:首先建立一个循环型命令方块,以每秒10个的速度清除(可使用“/clear 玩家名 商品名 特殊值 1”这一指令防止吞货物),而后每吞掉一个货物,就为这个玩家加上指定数量的分数(也就是货币,可以用指令“/scoreboard add 玩家名 记分板名称 商品价格),这样只需要2个命令方块便可以实现售卖型商店。但请注意,为防止玩家货物卖光后(即/clear指令无法执行时)仍在为玩家添加货币,一定要把第二个命令方块设置为“有条件的”(即必须前一个命令方块内指令可以成功执行时才执行该命令方块内的指令)