Minecraft Wiki

除另有声明,转载时均必须注明出处若簡繁轉換出錯,請以遊戲內為準请勇于扩充与修正内容有兴趣逛逛我们的微博沟通交流,欢迎到社区专页需要协助,请在告示板留言

了解更多

Minecraft Wiki
Advertisement
Clock JE3 BE3.gif
此条目需要更新。

条目中某些信息已经不符合当前版本情况。

一张记分板的截图。

记分板(Scoreboard)系统是一套通过命令操纵的复杂游戏机制。主要为地图作者与服务器运营者准备,记分板可用多种形式追踪、设置并列出玩家及实体的分数。

记分项[]

常见的译名分歧
原文 游戏内译名 游戏曾用译名 社区常见译名
Objective 记分项 对象、目标 变量
Criteria 准则 - 判据
Trigger 触发器 - -
(Display) Slot (显示)位置 - 显示区
scoreboard
需要的权限等级

2[仅Java版]
1[仅基岩版]

限制条件

启用作弊

每一个记分项都含有名称、显示名称、准则。记分板可以跟踪实体的分数(points),范围为-2,147,483,648至2,147,483,647,且只取整数,因为这几个变量的数据类型是整型。

记分项的名称(name)在命令、目标选择器以及文件格式中使用。这一变量区分大小写并且只能为一个单词,不能超过16个字符,在Java版中,允许用于名称的字符有所有的大小写字母、数字、下划线、点、减号和加号。在基岩版中,可以是任何字符。

显示名称(display name)是一串JSON文本,用于在不同场合进行显示。多个记分项可以有相同的显示名称。

记分项的准则(criterion,复数为criteria)决定了其行为,也就是要跟踪什么。下方的表格列举了所有的准则。

玩家任何记分项的分数(score)都可以通过命令进行修改,只读型除外。可以增加或减少特定的值,也可以直接设置成某一特定值。对于基于统计与成就的记分项,其数值可用命令修改,但真实的统计不会改变。记分项在统计改变后将继续更新。

分数持有者(score holder)是在记分项中有分数的玩家的名字或者实体的UUID。非玩家实体的分数只能通过命令修改,而不能通过游戏时间修改。和玩家不同,非玩家实体死亡后,其分数被删除。

命令可以通过目标选择器的scores参数来检查任何实体的任何记分项,语法为scores={名称=最小值..最大值}

比如,在命令方块中输入/execute if entity @a[scores={deaths=1..5}]会让比较器或条件制约的命令方块在有玩家的死亡次数在1至5之间时提供输出(假设deaths使用deathCount准则)[仅Java版]

准则[]

Java版[]

单一准则[]

这些准则的名称由单一字母字符串组成。

准则名称 描述 能否被修改
dummy
虚拟型
只能通过命令修改分数,诸如死亡等游戏行为并不能修改分数。这可以被用来模拟事件标记、状态映射和货币等。
trigger
触发器
只能通过命令修改分数,诸如死亡等游戏行为并不能修改分数。/trigger能够用于设置/增减使用trigger作准则的记分项。如果以trigger为准则的记分项没有对玩家启用,则该玩家使用该/trigger命令会失败。成功使用过一次/trigger成功之后,该玩家的该命令将重新被关闭。注意/trigger可以在不允许作弊的情况下被非管理员的普通玩家使用。这可以比较方便地通过/tellraw界面来实现玩家输入。
deathCount
死亡次数
当玩家死亡时,分数会自动增加。
playerKillCount
杀死玩家总量
当玩家杀死其他玩家时分数会自动增加。
totalKillCount
杀死生物总量
当玩家杀死其他生物时分数会自动增加。
health
生命值
普通玩家会在0~20之间。代表玩家拥有红心数量的两倍。在玩家第一次改变血量前会显示为0。额外的血或者伤害吸收的血也会计算在血量中,也就是说当获得了属性或者修饰器,或者伤害吸收生命提升的效果后生命值可以超过20。
xp
经验值
对应玩家拥有的经验值。
level
等级
对应玩家当前的经验等级。
food
饱和度
在0~20之间,代表玩家拥有的饱和度。在玩家第一次改变饱和度前会显示为0。
air
空气值
在0~300之间;代表潜水的玩家剩余的空气,对应玩家的空气NBT标签。
armor
盔甲值
在0~20之间;代表玩家拥有的盔甲值。在玩家第一次更换盔甲前会显示为0。
复合准则[]

[1]有些准则使用了统计和成就系统来组成复合准则。[2]不同于上面的简单准则,复合准则有多个部分,使用点号来分隔(.)。例如 “minecraft.killed_by:minecraft.zombie”是一种复合准则,当玩家被僵尸杀死的时候才会增加。[3]

任何统计都可用作复合准则,其名称为其命名空间ID

除此之外,还有以下复合准则:

准则基础名称 描述 次级准则数
teamkill.

次级准则是队伍的颜色。玩家杀死特定颜色的队伍成员时增加。

这些准则符合以下完整格式:teamkill.<team>,其中<team>是以下列表中的颜色:

16
killedByTeam. 次级准则包括队伍的颜色。玩家被特定颜色队伍的成员杀死时增加。

这些准则符合以下完整格式:killedByTeam.<team>,其中<team>是以下列表中的颜色:

16
minecraft.custom 次级准则包括多个目标。这些准则符合以下完整格式:minecraft.custom:<objective>,其中<objective>是列表中的一个目标。
minecraft.picked_up 次级准则包括所有物品的所有命名空间ID,其中冒号替换为点号。玩家捡起掉落的物品时分数增加。

这些准则符合以下完整格式:minecraft.picked_up:<item>,其中<item>是列表中的一个物品。

minecraft.dropped 次级准则包括所有物品的所有命名空间ID,其中冒号替换为点号。玩家丢弃指定的物品时分数增加。

这些准则符合以下完整格式:minecraft.dropped:<item>,其中<item>是列表中的一个物品。

minecraft.used 次级准则包括所有物品的所有命名空间ID,其中冒号替换为点号。玩家使用指定的物品时分数增加。

这些准则符合以下完整格式:minecraft.used:<item>,其中<item>是列表中的一个物品。

minecraft.broken 次级准则包括所有物品的所有命名空间ID,其中冒号替换为点号。玩家破坏(break)指定的物品时分数增加。

这些准则符合以下完整格式:minecraft.broken:<item>,其中<item>是列表中的一个物品。

minecraft.crafted 次级准则包括所有物品的所有命名空间ID,其中冒号替换为点号。玩家合成指定的物品时分数增加。

这些准则符合以下完整格式:minecraft.crafted:<item>,其中<item>是列表中的一个物品。

minecraft.mined 次级准则包括所有方块的所有命名空间ID,其中冒号替换为点号。玩家挖掘(mine)指定的方块时分数增加。

这些准则符合以下完整格式:minecraft.mined:<block>,其中<block>是列表中的一个方块。

minecraft.killed 次级准则包括所有实体的所有命名空间ID,其中冒号替换为点号。玩家杀死指定的实体时分数增加。

这些准则符合以下完整格式:minecraft.killed:<entity>,其中<entity>是列表中的一个实体。

minecraft.killed_by 次级准则包括所有实体的所有命名空间ID,其中冒号替换为点号。玩家被指定的实体杀死时分数增加。

这些准则符合以下完整格式:minecraft.killed_by:<entity>,其中<entity>是列表中的一个实体。

基于复合准则的所有分数都可以通过命令修改。

基岩版[]

目前只支持dummy准则,因此分数仅能由命令修改。

以"列表"形式显示的某一玩家在这一记分项下获得了2点分数,同时在"侧边栏"模式中则为某一显示名称为“Quest Points”的记分项,其中该玩家没有获得分数。

显示位置[]

通过/scoreboard objectives setdisplay命令(参见记分板命令),玩家具体记分项中的分数能在游戏中以某些“形式”显示出来。 每个“显示位置(Display Slot)”可以依次显示一个记分项,并且多个显示位置可以被用于相同或不同的记分项。

显示位置 描述
list
列表
在玩家列表中以黄色文字在玩家名称后显示分数信息(默认为Tab键),并不会显示记分项名称。[仅Java版]
在暂停页面的玩家列表显示分数信息。[仅基岩版]
sidebar
侧边栏
在屏幕的右侧显示。在列表的最上方显示记分项的显示名称(display name),并显示玩家的高分榜。值得注意的是,即使玩家离线,如果在该记分项下存在一定分数也会在"侧边栏"中进行显示,并且没有痕迹的玩家也不会被显示。除此之外,以#开头的伪造的玩家名称在任何情况下都不会在侧边栏可见。
sidebar.team.<color>
侧边栏.队伍.<颜色>[仅Java版]
有16个的具体队伍的侧边栏显示形式。它们和标准的侧边栏同样操作,但只有指定颜色的队伍中的玩家可以看见(例如"sidebar.team.green"绿色队伍中的玩家可以看见)。有效的颜色是:"black", "dark_blue", "dark_green", "dark_aqua", "dark_red", "dark_purple", "gold", "gray", "dark_gray", "blue", "green", "aqua", "red", "light_purple", "yellow", 和 "white"。
belowName
名称下方
在玩家的名称牌之下,在他们的头之上,于记分项的显示名称(display name)后面显示分数。在10个方块以外、玩家潜行时隐藏。这一显示位置在单人游戏中不可见。

命令列表[]

记分项命令[]

命令 描述 结果
scoreboard objectives list 列出所有存在的记分项、显示名称与准则。 Java版中,总是成功。在基岩版中,如果没有记分项则失败。
scoreboard objectives add <记分项> <准则> [<显示名称>][仅Java版]
scoreboard objectives add <记分项:字符串> dummy [显示名称:字符串][仅基岩版]
创建一个具有给定的名称、准则、可选的显示名称的记分项。<记分项>必须是小于16个字符的纯文本;在基岩版中,还可以被引号包围。<准则>必须是有效的准则类型。<显示名称>必须是原始JSON文本,如果未指定,默认为<objective>;在基岩版中,它还可以是非数字的纯文本。所有的参数均区分大小写。在基岩版中,,dummy是当前唯一支持的额准则。参考上面的段落以参考这些参数的更多信息 如果<记分项>已存在则失败。
scoreboard objectives remove <记分项>[仅Java版]
scoreboard objectives remove <记分项:字符串>[仅基岩版]
删除记分板系统中该记分项的所有有关内容。记分项、玩家分数的数据都会被删除,且如果记分项在显示位置上,该显示位置将会被清空。 如果记分项不存在则失败。
scoreboard objectives setdisplay <位置> [<记分项>]][仅Java版]
scoreboard objectives setdisplay <list |sidebar> [记分项:字符串] [ascending|descending][仅基岩版]
scoreboard objectives setdisplay belowname [记分项:字符串][仅基岩版]
在指定位置显示指定记分项的分数信息。合法的位置已在显示位置里列出并描述。在基岩版中,,如果位置是listsidebar,则还有可选的参数ascending|descending来指定排序顺序。注意记分项参数是可选的,如果不提供,则该显示位置会被清空(回到其默认状态)。 如果指定了<记分项>但它存在则失败。注意清空位置也算成功。
scoreboard objectives modify <准则> displayname <名称> 更改显示未知中记分板的显示名称。 被指定的准则必须存在。名称必须是JSON文本组件
scoreboard objectives modify <记分项> rendertype (hearts|integer) 在列表将记分项<记分项>的数值以爱心(hearts)或数字(integer)显示。 被指定的记分项必须存在。

玩家命令[]

命令 描述 成功条件
scoreboard players list [目标] 显示所有被记分板系统追踪的实体。可选的实体名称参数项可用以显示指定实体的所有分数,且往目标填写*(星号)会显示所有正被记分板跟踪的实体。 如果需要指定,填写的目标必须记有分数。如果不填写目标,至少需要有一个实体正被记分板系统追踪。
scoreboard players get <目标> <记分项>[仅Java版] 显示该实体在记分项上的分数。 目标只能是一个实体,至少需要有一个实体正被记分板系统追踪。
scoreboard players set <目标> <记分项> <分数> 设置实体目标在记分项记分项上的分数为分数,并在已有分数存在时覆盖之。*可以用于目标项以代表所有正在被记分板追踪的实体。 填写的记分项必须存在且不是只读型,分数必须介于-2147483648到 2147483647之间,两个数字包括在内。需要注意目标项的实体或玩家不一定要在线甚至是存在。
scoreboard players add <目标> <记分项> <数量> 往实体目标在记分项记分项上的分数增加数量分。如果没有分数则当作0分修改。*可用以代表所有正在被记分板追踪的实体。 记分项必须存在且不能为只读型,数量必须在1到2147483647之间,两个数字包括在内。需要注意目标项的实体或玩家不一定要在线甚至是存在。
scoreboard players remove <目标> <记分项> <数量> 从实体目标在记分项记分项上的分数扣除数量分。如果没有分数则当作0分修改。*可用以代表所有正在被记分板追踪的实体。
scoreboard players random <目标> <记分项> <最小值> <最大值> [仅基岩版] 把实体目标计分项上的分数设为一个从最小值最大值的随机数,包含最大最小值。 <记分项>和<目标>必须存在, <最小值> 必须小于<最大值>,且<最小值> 和<最大值>都必须在-2147483648到2147483647之间(包含)
scoreboard players reset <目标> [记分项] 清空实体目标的一项或所有分数。如果指定了记分项记分项,只清空对应记分项的分数;否则删除实体所有记分项上的分数。需要注意这不仅仅是设分数为0:实体将会整个从记分板上被移除(或从给定的记分项)。*可用以代表所有正在被记分板追踪的实体。 总会成功,即便实体在该记分项中并没有分数。
scoreboard players test <目标> <记分项> <最小值> <最大值> [仅基岩版] 检测计分项是否在最小值最大值范围内(若不填,默认最大值为整型数最大值2147483647)。最小值最大值可替换为星号(*),以表示整型数范围内的任何值(-2147483648 ~ 2147483647)。 在 <目标>的 <记分项>上的分数在<最小值> 和 [<最大值>]之间时成功.
scoreboard players enable <目标> <触发器> [仅Java版] 使实体目标可以对指定触发型记分项触发器使用命令/trigger。在此操作完成前,实体目标对记分项使用/trigger时将会失败。一旦实体对记分项使用了/trigger,记分项将再次变得不可操作,需要再次使用此命令。*可用以代表所有正在被记分板追踪的实体。 填写的触发器必须是一个准则类型为trigger的记分项。
scoreboard players operation <目标> <目标记分项> <操作> <选择器> <记分项> 使用选择器在记分项记分项上的分数作为输入,进行运算操作后把结果作为记分项实体目标目标记分项上的分数。

运算操作<操作> 可以是:

  • += 求和:目标记分项+记分项,将结果输出至目标计分项并覆盖现有值。
  • -= 求差:目标记分项-记分项,将结果输出至目标计分项并覆盖现有值。
  • *= 求积:目标记分项*记分项,将结果输出至目标计分项并覆盖现有值。
  • /= 求商:目标记分项/记分项,将结果的整数部分输出至目标计分项并覆盖现有值。
  •  %= 求余:目标记分项/记分项,将余数作为结果输出至目标计分项并覆盖现有值。
  • = 赋值:用记分项的分数覆盖目标计分项的现有值。
  • < 取较小值:在记分项和目标记分项中取较小的分数覆盖目标计分项的现有值。
  • > 取较大值:在记分项和目标记分项中取较大的分数覆盖目标计分项的现有值。
  • >< 交换记分项与目标记分项的分数,但是只会在聊天栏中提示目标记分项的改变。

除><外,记分项的分数会保持不变。"*"可代替目标选择器中的一个用以代表所有正在被记分板追踪的实体。

填写的记分项目标记分项 必须存在,目标记分项必须支持修改,且所有被使用的记分项/选择器必须在对应记分项上有分数并且运算操作只有在记分项和选择器都存在时才会成功。需要注意目标实体不一定要存在。


NBT格式[]

记分板数据存储在地图文件夹里“data”文件夹下的scoreboard.dat文件中,存储形式为GZip的NBT格式

  • 根标签。
    •  data:记分板数据。
      •  Objectives:代表记分项的复合标签列表。
        • 一个记分项。
          •  CriteriaName:该记分项的准则
          •  DisplayName:记分项的JSON格式的显示名称。如果在创建记分项时没有涉及,则会为{"text":"记分板内部名称"}
          •  Name:记分项的内部名称
          •  RenderType:数据储存的类型。默认为integer(整型),其次也可以是hearts。
      •  PlayerScores:在记分板系统中所追踪的分数的复合标签列表。
        • 拥有分数的玩家或记分项。
          •  Score:此记分项中玩家的分数。
          •  Name:记分项中拥有此分数的玩家名称。
          •  Objective:玩家分数所在记分项的内部名称
          •  Locked:1 或 0 (true/false) - 记分项处于"enabled"(可触发)时为false。只有记分项准则为"trigger"(触发器)时有实际用途:在玩家使用/trigger命令对记分项操作前必须为false。
      •  Teams:代表队伍的复合标签列表。
        • 一个队伍。
          •  AllowFriendlyFire:1或0(true/false)—true代表队伍内的玩家可以攻击同一个队伍的玩家。
          •  SeeFriendlyInvisibles:1或0(true/false)—true代表队伍内的玩家可以看到同一队伍的隐身的玩家。
          •  NameTagVisibility:队伍关于nametagVisibility的设定值。
          •  CollisionRule:队伍的碰撞规则选项的值。有效的选项为:总是、仅自己队伍、从不、仅其他队伍。
          •  DeathMessageVisibility:队伍关于deathMessageVisibility的设定值。
          •  DisplayName:队伍的显示名称。如果在创建队伍时没有涉及,则会与下文中名称标签相同。
          •  Name:队伍的内部名称
          •  MemberNamePrefix:加在队员的名称前的前缀。使用 JSON 格式。
          •  MemberNameSuffix:加在队员的名称后的后缀。使用 JSON 格式。
          •  TeamColor:队伍颜色的文本名(black、dark_blue,等等)。未设置颜色时不存在。
          •  Players:队伍中玩家名字的列表。
            • 队伍中玩家的名字。
      •  DisplaySlots:显示特定记分项的显示位置设置。位置为空时不会刷新。
        •  slot_0:"list"位置显示的记分项的内部名称
        •  slot_1:"sidebar"位置显示的记分项的内部名称
        •  slot_2:"belowName"位置显示的记分项的内部名称
        •  slot_3:"sidebar.team.black"位置显示的记分项的内部名称
        •  slot_4:"sidebar.team.dark_blue"位置显示的记分项的内部名称
        •  slot_5:"sidebar.team.dark_green"位置显示的记分项的内部名称
        •  slot_6:"sidebar.team.dark_aqua"位置显示的记分项的内部名称
        •  slot_7:"sidebar.team.dark_red"位置显示的记分项的内部名称
        •  slot_8:"sidebar.team.dark_purple"位置显示的记分项的内部名称
        •  slot_9:"sidebar.team.gold"位置显示的记分项的内部名称
        •  slot_10:"sidebar.team.gray"位置显示的记分项的内部名称
        •  slot_11:"sidebar.team.dark_gray"位置显示的记分项的内部名称
        •  slot_12:"sidebar.team.blue"位置显示的记分项的内部名称
        •  slot_13:"sidebar.team.green"位置显示的记分项的内部名称
        •  slot_14:"sidebar.team.aqua"位置显示的记分项的内部名称
        •  slot_15:"sidebar.team.red"位置显示的记分项的内部名称
        •  slot_16:"sidebar.team.light_purple"位置显示的记分项的内部名称
        •  slot_17:"sidebar.team.yellow"位置显示的记分项的内部名称
        •  slot_18:"sidebar.team.white"位置显示的记分项的内部名称


历史[]

Java版
1.513w04a加入了记分板。
13w05a加入了队伍相关功能。
1.7.213w36a加入了统计相关记分项准则。
1.814w02a除了玩家外的实体也能加入队伍并拥有记分项分数了。
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.crouchOneCmstat.sprintOneCm,与stat.timeSinceDeath记分项准则。
14w25a/scoreboard players operation加入了=<,与>
14w29a玩家/实体在侧边栏名字的第二顺序依照字母表储存。
14w30a加入了stat.talkedToVillagerstat.tradedWithVillager记分项准则。
?/scoreboard players operation加入了><
1.8.2加入了cauldronFilled, stat.cauldronUsed, stat.armorCleaned, stat.bannerCleaned, stat.brewingstandInteraction, stat.beaconInteraction, stat.dropperInspected, stat.hopperInspected, stat.dispenserInspected, stat.noteblockPlayed, stat.noteblockTuned, stat.flowerPotted, stat.trappedChestTriggered, stat.enderchestOpened, stat.itemEnchanted, stat.recordPlayed, stat.furnaceInteraction, stat.craftingTableInteraction, stat.chestOpened 记分项准则。
1.915w32a加入了stat.sneakTime记分项准则。
15w32b加入了/scoreboard players tag
加入了xp, food,与air记分项类型。
15w33a加入了stat.pickupstat.drop记分项准则。
加入了 the armor, level记分项类型。
15w36a加入了collisionRule
1.13pre7加入了/scoreboard objectives modify
1.13.118w31a记分板的计算符号%=%被更改为Math.floorMod
基岩版
1.7.01.7.0.2加入了记分板部分功能。
加入了dummy准则。

漏洞[]

关于“记分板”的漏洞由漏洞追踪器维护,请在此汇报漏洞。

参考[]

Advertisement