/scoreboard

/scoreboard

原文:Commands/scoreboard;源修订:3640891。

管理并显示各种记分板记分项的分数。Java 版所需权限等级为 2;基岩版为 1,且需要开启作弊。

记分项命令

语法

列出所有现有记分项,包括显示名称和准则:

scoreboard objectives list

创建记分项,指定内部名称、准则及可选显示名称。Java 版:

scoreboard objectives add <objective> <criteria> [<displayName>]

基岩版:

scoreboard objectives add <objective: string> dummy [displayName: string]

从记分板系统删除指定记分项。记分项列表及记分持有者的相关分数数据一并删除;若该项正在某个显示位置显示,也会停止显示。Java 版和基岩版分别为:

scoreboard objectives remove <objective>
scoreboard objectives remove <objective: string>

在指定位置显示记分项。记分项参数可省略,省略时清空该显示位置,使其恢复默认状态。Java 版:

scoreboard objectives setdisplay <slot> [<objective>]

基岩版中,list 和 sidebar 还可指定升序或降序:

scoreboard objectives setdisplay <list|sidebar> [objective: string] [ascending|descending]
scoreboard objectives setdisplay belowname [objective: string]

以下修改命令仅适用于 Java 版:

scoreboard objectives modify <objective> displayautoupdate <value>
scoreboard objectives modify <objective> displayname <displayName>
scoreboard objectives modify <objective> numberformat
scoreboard objectives modify <objective> numberformat blank
scoreboard objectives modify <objective> numberformat fixed <component>
scoreboard objectives modify <objective> numberformat styled <style>
scoreboard objectives modify <objective> rendertype (hearts|integer)
  • displayautoupdate:设置是否在每次分数更新时自动更新显示名称。
  • displayname:修改记分板在显示位置中的显示名称。
  • numberformat(无后续参数):重置在显示位置及分数文本组件中使用的默认数字格式。
  • numberformat blank:将默认数字格式设为空白,不显示分数。
  • numberformat fixed:将默认数字格式设为固定文本,以指定文本组件替代分数。
  • numberformat styled:将默认数字格式设为带样式,以指定样式显示分数。
  • rendertype:修改 Tab 玩家列表中的分数显示格式。

参数

  • objective(Java 版,objective)/ objective: string(基岩版,basic_string):内部记分项名称。引用已有记分项时该项须存在;基岩版须为基础字符串,含空格时用双引号。
  • criteria(Java 版,objective_criteria):新记分项的准则,须为有效的记分项准则。基岩版当前仅支持 dummy。
  • displayName(Java 版,component)/ displayName: string(基岩版,basic_string):显示名称,省略时与内部名称相同。Java 版须为有效的文本组件。基岩版须为一个不属于数字的单词(可用 -、:、.、_、A-Z、a-z、0-9),或双引号包围的字符串。
  • slot(Java 版,scoreboard_slot):显示位置,详见显示位置。包括 list、sidebar、below_name 及不同队伍颜色的侧栏位置。基岩版可用 list、sidebar 或 belowname。
  • ascending|descending(基岩版):排序顺序,分别为升序、降序。
  • value(Java 版,bool):是否自动更新显示名称,须为 true 或 false。
  • displayName(Java 版 modify,component):新的显示名称,须为有效文本组件。
  • component(Java 版,component):替代分数显示的文字,须为有效文本组件。
  • style(Java 版,style):显示样式,须为有效的文本样式对象。
  • hearts|integer(Java 版):分别以心形或整数显示。

结果

条件 Java 版 基岩版
参数指定不正确 无法解析 无法解析
list 时没有记分项 成功 失败
add 时同名记分项已存在 失败 失败
remove、setdisplay 或 modify 引用的记分项不存在 失败 失败(modify 不适用)
setdisplay <slot> <objective> 的该记分项已在指定位置显示 失败 成功
setdisplay <slot> 要清空的位置已经为空 失败 成功
其他情况 成功 成功

输出

Java 版成功时,成功次数和成功值均为 1。list 的结果值为系统中记分项数量;add、remove 的结果值为执行后的记分项数量;其余命令结果值为 0。

基岩版成功时,成功次数为系统中的记分项数量。

记分持有者命令

语法

列出所有被记分板系统以某种方式跟踪的记分持有者;可选参数用于列出指定持有者的分数。Java 版和基岩版分别为:

scoreboard players list [<target>]
scoreboard players list [playername: target]

返回指定分数,仅 Java 版。可与 /execute 配合,例如 execute store result ... run scoreboard players get ...:

scoreboard players get <target> <objective>

设置目标在指定记分项中的分数,覆盖原值。Java 版和基岩版分别为:

scoreboard players set <targets> <objective> <score>
scoreboard players set <player: target> <objective: string> <count: int>

增加分数;基岩版中负数表示减分。Java 版和基岩版分别为:

scoreboard players add <targets> <objective> <score>
scoreboard players add <player: target> <objective: string> <count: int>

减少分数;基岩版中负数表示加分。Java 版和基岩版分别为:

scoreboard players remove <targets> <objective> <score>
scoreboard players remove <player: target> <objective: string> <count: int>

将分数设为 min 至 max 间的随机整数,含两个端点,仅基岩版:

scoreboard players random <player: target> <objective: string> <min: int> <max: int>

删除目标的指定分数或所有分数。指定记分项时仅清除该项,否则清除所有记分项。Java 版和基岩版分别为:

scoreboard players reset <targets> [<objective>]
scoreboard players reset <player: target> [objective: string]

这并非简单地将分数设为 0,而是从记分板系统或指定记分项中彻底移除目标。Java 版中,这还会禁用目标玩家在相应记分项上使用 /trigger 的能力。Java 版执行 scoreboard players reset * 会重置所有玩家分数,而 scoreboard players reset @a 仅重置在线玩家。

测试目标分数是否在最小值和最大值之间,最大值默认为 MAX_INT,即 2147483647,仅基岩版:

scoreboard players test <player: target> <objective: string> <min: wildcard int> [<max: wildcard int>]

允许目标在指定记分项上使用 /trigger,仅 Java 版:

scoreboard players enable <targets> <objective>

该命令接受非玩家实体,但只有玩家实际能够使用 /trigger。未执行 enable 前,玩家不能触发该记分项;使用 /trigger 后会再次禁用。若某个目标此前没有该记分项的分数,此命令会将其设为 0。

使用来源记分项的来源分数执行算术操作,修改目标记分项中的目标分数。Java 版和基岩版分别为:

scoreboard players operation <targets> <targetObjective> <operation> <source> <sourceObjective>
scoreboard players operation <player: target> <targetObjective: string> <operation: operator> <selector: target> <objective: string>

以下显示命令仅适用于 Java 版:

scoreboard players display name <targets> <objective>
scoreboard players display name <targets> <objective> <text>
scoreboard players display numberformat <targets> <objective>
scoreboard players display numberformat <targets> <objective> blank
scoreboard players display numberformat <targets> <objective> fixed <contents>
scoreboard players display numberformat <targets> <objective> styled <style>
  • 不带 text 的 display name:重置目标分数的显示名称。
  • 带 text 的 display name:修改目标分数的显示名称。
  • 不带格式的 display numberformat:重置目标分数的数字格式。
  • blank:不显示分数。
  • fixed:以指定文本组件替代分数。
  • styled:以指定样式显示分数。

参数

  • target(Java 版,score_holder)/ playername: target(基岩版,WildcardCommandSelector<Actor>):记分持有者。可使用玩家名称、目标选择器或虚构记分持有者名称;Java 版还可使用 UUID。Java 版此单数参数只能指定一个持有者,* 仅在 scoreboard players reset 可用,见 MC-136858。基岩版可指定多个持有者。
  • targets(Java 版,score_holder)/ player: target(基岩版,WildcardCommandSelector<Actor>):一个或多个记分持有者。可使用玩家名、目标选择器、虚构名称,或用 * 指定所有已跟踪持有者;Java 版还可使用 UUID。
  • objective(Java 版,objective)/ objective: string(基岩版,basic_string):内部记分项名称,须引用有效记分项;基岩版含空格时用双引号。
  • score(Java 版,integer)/ count: int(基岩版,int):要设置的新分数,或增加、减少的数值。须为 -2147483648 至 2147483647(含端点)的 32 位整数。
  • min: int、max: int(基岩版 random):随机数范围的最小值和最大值,须为 32 位整数。
  • min: wildcard int、max: wildcard int(基岩版 test):测试范围的最小值和最大值,须为 32 位整数。最小值可用 * 表示 -2147483648,最大值可用 * 表示 2147483647。
  • targetObjective(Java 版,objective)/ targetObjective: string(基岩版,basic_string):目标记分项。
  • source(Java 版,score_holder)/ selector: target(基岩版,WildcardCommandSelector<Actor>):提供输入分数的来源记分持有者,格式与其他记分持有者参数相同。
  • sourceObjective(Java 版,objective)/ objective: string(基岩版 operation,basic_string):来源记分项。
  • operation(Java 版,operation)/ operation: operator(基岩版,CommandOperator):要执行的运算,见下表。
  • text(Java 版,component):显示名称,须为有效文本组件。
  • contents(Java 版,component):替代分数显示的文字,须为有效文本组件。
  • style(Java 版,style):显示样式,须为有效文本样式对象。
运算符 作用
= 赋值:将目标分数设为来源分数
+= 加法:将来源分数加到目标分数
-= 减法:从目标分数减去来源分数
*= 乘法:将目标分数设为目标与来源分数的乘积
/= 向下取整除法:目标分数除以来源分数,结果向下取整
%= 取模:目标分数除以来源分数,以正余数作为目标分数
>< 交换目标与来源分数
< 取较小值:仅当来源分数更小时,将目标设为来源分数
> 取较大值:仅当来源分数更大时,将目标设为来源分数

除 >< 外,对目标执行运算时来源分数均保持不变。若目标或来源尚未被指定记分项跟踪,其分数先设为 0。若指定多个来源,则依次以每个来源分数执行一次运算;若指定多个目标,则逐个对目标执行。

对 /= 和 %=,若来源分数为 0,Java 版命令失败;基岩版成功,但不修改目标分数。

结果

下表保留源修订正文所列条件。参数指定不正确时,两版本均无法解析;未列出的正常情形成功。

命令或条件 Java 版 基岩版
list,没有被系统跟踪的持有者 成功 失败
list <target>,不能解析为单个持有者 失败 失败
列出指定持有者,但其未被任何记分项跟踪 成功 失败
get,记分项不存在、目标不能解析为单个持有者,或该持有者没有指定记分项的分数 失败 不适用
set、add、reset、enable、display,指定记分项不存在 失败 失败(不支持的子命令不适用)
上述修改命令的目标无法解析为一个或多个持有者 失败 失败
上述修改命令的记分项不可写 失败 不适用
random 或 test,记分项不存在或目标无法解析为持有者 不适用 失败
random,max: int 不大于 min: int 不适用 失败
reset <player: target>,全部目标均未被任何记分项跟踪 不适用 失败
test,最大值小于最小值 不适用 失败
enable,记分项准则不是 trigger 失败 不适用
enable,所有目标分数均已启用 失败 不适用
operation,目标或来源无法解析为一个或多个持有者 失败 失败
operation,来源或目标记分项不存在 失败 失败
operation,来源记分项不可写,或使用 >< 时目标记分项不可写(原文表格表述) 失败 不适用
operation,使用 /= 或 %=,来源分数为 0 失败 成功

输出

Java 版成功时,成功次数和成功值均为 1,结果值如下:

命令 结果值
list <target> 跟踪该持有者的记分项数量
get 该分数的值
set 目标数量乘以指定分数
add、remove 执行后各目标在该记分项中分数的总和
reset 目标数量
enable 新启用分数的目标数量
operation 完成运算后各目标在目标记分项中分数的总和
其他命令 0

基岩版成功时的成功次数如下:

命令 成功次数
list,不指定持有者 记分持有者数量
list [playername: target],指定持有者 各持有者被跟踪记分项数量的总和
set、add、remove、random 1
reset 被记分板系统或指定记分项跟踪的目标数量
test 分数处于最小值与最大值之间的指定持有者数量
operation 1

另见

外部链接

Microsoft Learn:/scoreboard 命令(2023 年 10 月 11 日)。

来源为 Minecraft Wiki;本中文翻译/改编按 CC BY-NC-SA 3.0 共享。