记分板 您所在的位置:网站首页 玩家的名称 记分板

记分板

2024-07-18 03:23| 来源: 网络整理| 查看: 265

  本条目介绍的是记分板的具体特性。关于管理记分板的命令,请见“命令/scoreboard”。   “分数”重定向至此。关于死亡界面中显示的分数,请见“经验 § 分数”。 一张记分板的截图

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

目录 1 记分项 1.1 准则 1.1.1 Java版 1.1.1.1 单一准则 1.1.1.2 复合准则 1.1.2 基岩版 2 显示位置 3 NBT格式 4 历史 5 参考 记分项[编辑 | 编辑源代码] 常见的译名分歧 原文 游戏内译名 游戏曾用译名 社区常见译名 Objective 记分项 对象、目标 变量 Criteria 准则 - 判据 Trigger 触发器 - - (Display) Slot (显示)位置 - 显示区

记分项(Objective)主要由三部分组成:名称、显示名称、准则。记分项可追踪或监听游戏内的某些物体或事件,并将该物体或事件的部分属性转化为可存储于实体内的分数。在游戏内部,记分板分数为一个32位整型数字,故不能为小数,取值范围为-2,147,483,648至2,147,483,647(闭区间)。

记分项名称(Name):记分项的唯一标识名,用于在命令、目标选择器参数以及某些文件格式内部引用记分项。记分项名称区分大小写,在Java版中,名称可以包含所有的大小写字母、数字、下划线、点、减号和加号。在基岩版中,可以是任何字符。

显示名称(Display Name):为一个文本组件,用于在不同场合显示记分项。允许不同记分项拥有相同的显示名称。

准则(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可以在不允许作弊的情况下被非管理员的普通玩家使用。这可配合/tellraw命令实现玩家输入接口。 是 deathCount死亡次数 当玩家死亡时,分数会自动增加。 是 playerKillCount杀死玩家总量 当玩家杀死其他玩家时分数会自动增加。 是 totalKillCount杀死生物总量 当玩家杀死其他生物(包括玩家)时分数会自动增加。 是 health生命值 玩家的生命值和伤害吸收值之和。 否 xp经验值 对应玩家拥有的经验值。 否 level等级 对应玩家当前的经验等级。 否 food饥饿值 代表玩家的饥饿值,取值范围0~20。玩家的foodLevel首次变化前可能会显示为0。 否 air空气值 代表潜水的玩家剩余的空气,取值范围0~300。对应玩家的 Air标签。 否 armor护甲值 代表玩家拥有的护甲值,取值范围0~20。在玩家第一次更换盔甲前可能会显示为0。 否 复合准则[编辑 | 编辑源代码]

[1]有些准则使用了统计和成就系统来组成复合准则。[2]不同于前文的单一准则,复合准则由多个部分构成,各部分间使用点号.来分隔。例如, minecraft.killed_by:minecraft.zombie是一种复合准则,当玩家被僵尸杀死时才会增加分数。[3]

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

任何统计的命名空间ID都可用作复合准则。玩家自身的统计数据的存储与记分板分数的存储相对独立。当这些统计数据更新时,跟踪的记分项也会同步更新。

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

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

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

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

接受的ID名称 black、dark_blue、dark_green、dark_aqua、dark_red、dark_purple、gold、gray、dark_gray、blue、green、aqua、red、light_purple、yellow和white 16 killedByTeam. 次级准则包括队伍的颜色。玩家被特定颜色队伍的成员杀死时增加。

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

接受的ID名称 black、dark_blue、dark_green、dark_aqua、dark_red、dark_purple、gold、gray、dark_gray、blue、green、aqua、red、light_purple、yellow和white 16 基岩版[编辑 | 编辑源代码]

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

以“列表”形式显示的某一玩家在这一记分项下获得了2点分数,同时在“侧边栏”模式中则为某一显示名称为“Quest Points”的记分项,其中该玩家没有获得分数 显示位置[编辑 | 编辑源代码]

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

显示位置 描述 list列表 在玩家列表中以黄色文字在玩家名称后显示分数信息(默认为Tab键),并不会显示记分项名称。[仅Java版]在暂停页面的玩家列表显示分数信息。[仅基岩版] sidebar侧边栏 在屏幕的右侧显示。在列表的最上方显示记分项的显示名称(display name),并显示玩家的高分榜。值得注意的是,即使玩家离线,如果在该记分项下存在一定分数也会在“侧边栏”中进行显示,并且没有痕迹的玩家也不会被显示。除此之外,以#开头的伪造的玩家名称在任何情况下都不会在侧边栏可见。 sidebar.team.侧边栏.队伍.[仅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"。 below_name[仅Java版]belowname[仅基岩版]名称下方 在玩家的名称牌之下,在他们的头之上,于记分项的显示名称(display name)后面显示分数。在10个方块以外、玩家潜行时隐藏。这一显示位置在单人游戏中不可见。 NBT格式[编辑 | 编辑源代码] 本段落所述内容仅适用于Java版。

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

根标签。  data:记分板数据。  DisplaySlots:显示特定记分项的显示位置设置。如果一个位置上没有需要显示的记分项,则对应位置的标签不存在。  list:"list"位置显示的记分项的内部名称。  sidebar:"sidebar"位置显示的记分项的内部名称。  below_name:"below_name"位置显示的记分项的内部名称。  sidebar.team.black:"sidebar.team.black"位置显示的记分项的内部名称。  sidebar.team.dark_blue:"sidebar.team.dark_blue"位置显示的记分项的内部名称。  sidebar.team.dark_green:"sidebar.team.dark_green"位置显示的记分项的内部名称。  sidebar.team.dark_aqua:"sidebar.team.dark_aqua"位置显示的记分项的内部名称。  sidebar.team.dark_red:"sidebar.team.dark_red"位置显示的记分项的内部名称。  sidebar.team.dark_purple:"sidebar.team.dark_purple"位置显示的记分项的内部名称。  sidebar.team.gold:"sidebar.team.gold"位置显示的记分项的内部名称。  sidebar.team.gray:"sidebar.team.gray"位置显示的记分项的内部名称。  sidebar.team.dark_gray:"sidebar.team.dark_gray"位置显示的记分项的内部名称。  sidebar.team.blue:"sidebar.team.blue"位置显示的记分项的内部名称。  sidebar.team.green:"sidebar.team.green"位置显示的记分项的内部名称。  sidebar.team.aqua:"sidebar.team.aqua"位置显示的记分项的内部名称。  sidebar.team.red:"sidebar.team.red"位置显示的记分项的内部名称。  sidebar.team.light_purple:"sidebar.team.light_purple"位置显示的记分项的内部名称。  sidebar.team.yellow:"sidebar.team.yellow"位置显示的记分项的内部名称。  sidebar.team.white:"sidebar.team.white"位置显示的记分项的内部名称。  Objectives:目前所有记分项的列表。 :一个记分项。  format:(可能不存在)记分项的默认数字格式。  type:记分项的默认数字格式类型。 如果type是minecraft:blank: 无其他标签。 如果type是minecraft:fixed:  value:一个将被解析为文本组件的字符串。分数在显示时会被替换为此处指定的文本组件。 如果type是minecraft:styled:  color:(可能不存在)改变分数的渲染颜色。  font:(可能不存在)渲染分数时使用的字体文件的命名空间ID。  bold:(可能不存在)是否将分数渲染为粗体。  italic:(可能不存在)是否将分数渲染为斜体。  underlined:(可能不存在)是否为分数添加下划线。  strikethrough:(可能不存在)是否为分数添加删除线。  obfuscated:(可能不存在)是否将分数渲染为随机字符。  CriteriaName:该记分项的准则。  display_auto_update:记分项中分数持有者名称是否会在分数更新时自动更新为相关的游戏名称(默认为false,若分数持有者代表虚拟实体则无效)。  DisplayName:一个字符串,将被解析为文本组件,表示记分项的显示名称。如果在创建记分项时没有定义,则会为"记分板内部名称"。  Name:记分项的内部名称。  RenderType:玩家列表中的分数显示格式。可以为integer(整型)和hearts(心)。默认为integer。  PlayerScores:在记分板系统中玩家和对应分数的列表。 :拥有分数的玩家及记分项。  format:(可能不存在)该玩家在此记分项中的数字格式。  type:该玩家在此记分项中的数字格式类型。 如果type是minecraft:blank: 无其他标签。 如果type是minecraft:fixed:  value:一个字符串,将被解析为文本组件。在显示分数时会将分数替换为此处指定的文本组件。 如果type是minecraft:styled:  color:(可能不存在)改变分数的渲染颜色。  font:(可能不存在)渲染分数时使用的字体文件的命名空间ID。  bold:(可能不存在)是否将分数渲染为粗体。  italic:(可能不存在)是否将分数渲染为斜体。  underlined:(可能不存在)是否为分数添加下划线。  strikethrough:(可能不存在)是否为分数添加删除线。  obfuscated:(可能不存在)是否将分数渲染为随机字符。  display:(可能不存在)一个字符串,将被解析为文本组件。表示此记分项中玩家的显示名称。  Locked:代表记分项是否处于锁定状态。只有记分项准则为"trigger"(触发器)时有实际用途:在玩家使用/trigger对记分项操作前此值必须为false。  Name:记分项中拥有此分数的玩家名称。  Objective:玩家分数所在记分项的内部名称。  Score:此记分项中玩家的分数。  Teams:所有队伍的列表。 :一个队伍。  AllowFriendlyFire:表示队伍内的玩家是否可以攻击同一个队伍的玩家。  CollisionRule:队伍内的玩家互相碰撞的规则。可以为always(总是进行碰撞)、never(不进行碰撞)、pushOtherTeams(可以与其他队伍碰撞)和pushOwnTeam(只与本队成员碰撞)。  DeathMessageVisibility:队伍内玩家死亡信息的可见性。可以为always(总能看到)、never(不能看到)、hideForOtherTeams(对其他队伍隐藏)和hideForOwnTeam(对自身队伍隐藏)。  DisplayName:一个字符串,将被解析为文本组件。表示队伍的显示名称。如果在创建队伍时没有涉及,则使用下文中的名称标签。  MemberNamePrefix:一个将被解析为文本组件的字符串,表示加在队员的名称前的前缀。  MemberNameSuffix:一个将被解析为文本组件的字符串,表示加在队员的名称后的后缀。  Name:队伍的内部名称。  NameTagVisibility:队伍内玩家名称标签的可见性。可以为always(总能看到)、never(不能看到)、hideForOtherTeams(对其他队伍隐藏)和hideForOwnTeam(对自身队伍隐藏)。  Players:队伍中玩家名字的列表。 :队伍中玩家的名字。  SeeFriendlyInvisibles:表示队伍内的玩家是否可以看到同一队伍的隐身的玩家。  TeamColor:队伍颜色的文本名(black、dark_blue,等等)。未设置颜色时不存在。  DataVersion:数据版本。 历史[编辑 | 编辑源代码] 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.crouchOneCm、​stat.sprintOneCm和stat.timeSinceDeath记分项准则。 14w25a为/scoreboard players operation命令加入了=、​。 14w29a玩家/实体在侧边栏名字的第二顺序依照字母表储存。 14w30a加入了stat.talkedToVillager和stat.tradedWithVillager记分项准则。 ?为/scoreboard players operation加入了>


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有