如何创建并管理一个计分项呢?这就需要使用\/scoreboard。
\/scoreboard
作用:控制计分板
需要权限等级:java-2,基岩-1
需要作弊:是
格式(本章所涉及):
\/scoreboard objectives ...
java版
... add <计分项名称><准则>[<显示名称:json>]——添加计分项(注:je1.13以下版本“显示名称”参数的值类型为字符串)
... list ——列出当前所有计分项
... modify <计分项名称>...——对指定计分项进行一些更改操作[1.13更新]
...... disyname <显示名称:json>——更改指定计分项的显示名称[1.13更新]
...... rendertype <hearts|integer>——指定显示该计分项数值时是采用爱心(hearts)还是数值(integer)显示[1.13更新]
... remove <计分项名称>——删除计分项
... setdisy <显示位置>[计分项名称]——指定特定的位置显示指定的计分项或取消显示计分项。
基岩版
... add <计分项名称:字符串><准则>[<显示名称:字符串>]——添加计分项
... list ——列出当前所有计分项
... remove <计分项名称:字符串>——删除计分项zuqi.org 葡萄小说网
... setdisy <显示位置>[计分项名称:字符串][排序方法:ascending|descending]——指定特定的位置显示指定的计分项或取消显示计分项。
现在让我们来试一试。首先来尝试添加一个最基本的计分项:
\/scoreboard objectives add coin dummy 金钱——仅以下和基岩版
\/scoreboard objectives add coin dummy “金钱“——仅以上
上面的指令将会添加一个准则为dummy,显示名称为“金钱”,叫做“coin”的计分项。
添加计分项时我们需要特别注意准则的选择。正如上一章所说的“准则决定了记分项具体要跟踪的信息”,一个计分项的作用,很大程度上是由准则决定的。
准则在基岩版只有dummy(虚拟型),在java版有两大类:单一准则和复合准则。
单一准则不可自定义,是mojang已经给你预设好的准则,目前有如下几种:
dummy:虚拟型,最基础的准则,仅可通过\/scoreboard yers指令修改。
trigger:触发器,类似于dummy,但所有玩家均可修改自己的trigger型计分项。具体内容会在第九十八章讲到。
deathcount:玩家死亡次数,当玩家死亡时游戏会自动增加他的分数,可以通过指令修改。(java版的死亡榜就是这么搞的)
yerkillcount:玩家击杀(玩家)数,当玩家击杀其他玩家时游戏会自动增加他的分数,可以通过指令修改。
totalkillcount:玩家击杀(生物)数,当玩家击杀其他任意生物时游戏会自动增加他的分数,可以通过指令修改。
health:玩家生命值,伤害吸收和生命提升的血也会计算在其中。当玩家第一次刷新生命值之前该玩家的分数会为0。不可通过指令修改。
xp:玩家经验值,不可通过指令修改。
level:玩家经验等级(注意和xp准则区分),不可通过指令修改。
food:玩家饱和度,和health准则一样,在玩家第一次刷新饱和度之前该玩家的分数会为0,不可通过指令修改。
air:玩家空气值(就是潜水时显示的那个),不可通过指令修改。
armor:玩家盔甲值,和health准则一样,在玩家第一次刷新盔甲值之前该玩家的分数会为0,不可通过指令修改。
复合准则可以自定义,其格式如下:
<基础准则id:命名空间>:<次级准则>(1.12更新后)
复合准则实际上就是mojang将你菜单界面中的“统计数据”和计分板绑定在一起而已。基础准则具体有:
teamkill.<队伍颜色>——玩家杀死指定颜色的队伍成员便会增加分数
killedbyteam.<队伍颜色>——玩家被指定颜色的队伍成员杀死便会增加分数
:<emmm....不知道怎么描述>——对应的是统计信息菜单中的“通用”一栏信息。比如准则:_game就是跟踪每一名玩家统计菜单中的“游戏退出次数”。具体的每项统计信息所对应的命名空间id就太多了,需要的可以自行到minecraft wiki查看(指明路线:统计信息→命名空间id→统计信息列表)。
_up:<物品id>——玩家捡起指定物品时便会增加分数(对应统计菜单“物品”一栏的“拾起个数”)
:<物品id>——玩家丢弃指定物品时便会增加分数(对应统计菜单“物品”一栏的“丢弃个数”)
:<物品id>——玩家使用指定物品时便会增加分数(对应统计菜单“物品”一栏的“使用次数”)
:<物品id>——玩家消耗指定物品时便会增加分数(对应统计菜单“物品”一栏的“工具消耗数”)
:<物品id>——玩家合成指定物品时便会增加分数(对应统计菜单“物品”一栏的“合成次数”)
:<方块id>——玩家挖掘指定方块时便会增加分数(对应统计菜单“方块”一栏的“开采次数”)
:<实体id>——玩家击杀指定实体时便会增加分数(对应统计菜单“生物”一栏的“你杀死了n只xxx”中的n)
_by:<实体id>——玩家被指定实体击杀时便会增加分数(对应统计菜单“生物”一栏的“xxx杀死了你n次”中的n)
注意:更新中将统计信息中的“方块”并到“物品”一栏。
现在,我们有了一个计分项。但如果你想要修改显示名称该怎么办?
在基岩版和以下版本中,你只能删了重新搞。这时候你就需要使用remove:
\/scoreboard objectives remove coin
这样子就可以删掉叫做coin的计分项。
但如果你忘记了计分项的名称该怎么办?使用list列出所有计分项以查看:
\/scoreboard objectives list
(注意,在以上版本中,如果你的计分项设置了显示名称,那么list只会列出该计分项的显示名称,要查看具体的名称需要将鼠标移到列出的计分项显示名称的上方)
在以上版本中,有一种便捷的方法可以不删除计分项就可以更改显示名称:modify。
举个例子:假设你想要修改我们刚才创建的coin计分项的名称为“软妹币”,你就需要执行:
\/scoreboard objectives modify coin disyname “软妹币“
modify不只是可以修改名称,它还可以修改计分项中玩家分数的值的显示方式。
当然在研究这个值显示方式之前,我们得了解一下setdisy的作用。
上面列格式时就已经提到过setdisy的作用了:显示计分项于某个位置。
具体的这个位置有哪些呢?
list——java版中是在tab玩家列表中显示每名玩家的分数(不显示具体是哪个计分项),基岩版中是在暂停界面显示。
sidebar——在屏幕的右侧显示列表,并在列表的最上方显示该计分项的显示名称
<队伍颜色>——和sidebar作用相同,只是只会给指定颜色的队伍查看[仅java版]
belowname——在玩家的头上面显示该玩家的分数
举个例子:
\/scoreboard objectives setdisy sidebar coin
执行指令,就可以将我们刚才创建的coin计分项以列表的形式显示在右侧。需要注意,如果已经有其他计分项显示在该位置,执行该条指令后将会覆盖显示为coin计分项。
在基岩版,使用list和sidebar位置时还可以指定列表排序方式:ascending(从小到大)和descending(从大到小[默认])。比如:
\/scoreboard objectives setdisy sidebar coin ascending
就可以将最穷的玩家显示在列表最上方的位置。
如果你仔细看了setdisy的格式,你会发现“计分项名称”这个参数是选填的。那如果不填会发生什么?
重置该位置,也就是取消显示计分项在该位置。比如:
\/scoreboard objectives setdisy sidebar
就可以让右侧一栏重回清净。
通过modify的rendertype我们还可以修改指定计分项的分数显示时的样子。mojang给了我们两个选择:hearts(生命值)和integer(数值)。
比如:
\/scoreboard objectives modify coin rendertype hearts
就会将coin计分项中每名玩家的分数以生命值的形式显示出来。
需要注意的是,生命值形式仅支持tab玩家列表。
.......
.......
.......
在更新前,计分项的复合准则并不是这样,而是:
<一级准则>.<二级准则>.[次一级准则].[次二级准则](1.13更新前)
复合准则也并不是完全和统计菜单的数据绑定。在1.13更新前,复合准则具体有如下内容:
achievement.<成就id>——(1.12版本中被移除)以一个玩家达成指定成就数量作为值。比如就是“钻石”成就的达成次数。这个成就的达成次数是什么意思呢?举个例子,你获得到1块钻石,就达成了“钻石”成就1次。如果你再次获得一块钻石,虽然游戏不会告诉你你又一次达成了“钻石”成就,但是你实打实地达成了这个成就两次。由于minecraft wiki会慢慢舍弃旧游戏内容,我就把成就id全放这了,具体指的是什么成就自己扔进生草机里翻译:“acquireiron“、“bakecake“、“zerod“、“bookcase“、“breedcow“、“buildbetterpickaxe“、“buildfurnace“、“buildhoe“、“buildpickaxe“、“buildsword“、“buildworkbench“、“cookfish“、“diamonds“、“diamondstoyou“、“enchantments“、“exploreallbiomes“、“flypig“、“fullbeacon“、“ghast“、“killcow“、“killenemy“、“killwither“、“makebread“、“minewood“、“onarail“、“openinventory“、“overkill“、“overpowered“、“portal“、“potion“、“snipeskeleton“、“spawnwither“、“theend“、“theend2“。
stat.<内容>——对应1.13更新后的“:<emmm....不知道怎么描述>”。比如准则就是玩家的潜行时间。“内容”可以填“animalsbred“、“armorcleaned“、“bannercleaned“、“beaconinteraction“、“boatonecm“、“brewingstandinteraction“、“cakesliceseaten“、“cauldronfilled“、“cauldronused“、“chestopened“、“climbonecm“、“craftingtableinteraction“、“crouchonecm“、“damagedealt“、“damagetaken“、“deaths“、“dispenserinspected“、“diveonecm“、“drop“、“dropperinspected“、“enderchestopened“、“fallonecm“、“fishcaught“、“flowerpotted“、“flyonecm“、“furnaceinteraction“、“hopperinspected“、“horseonecm“、“itemenchanted“、“jump“、“junkfished“、“leavegame“、“minecartonecm“、“mobkills“、“noteblockyed“、“noteblocktuned“、“pigonecm“、“yerkills“、“yoneminute“、“recordyed“、“sneaktime“、“sprintonecm“、“swimonecm“、“talkedtoviger“、“timesincedeath“、“tradedwithviger“、“trappedchesttriggered“、“treasurefished“和“walkonecm“。
<物品数字id或英文id>——对应1.13更新后的:<物品id>。如准则就是玩家合成弓的次数,也是玩家合成弓的次数。注意,使用英文id,命名空间就需要作为次1级准则,物品id就要放到次2级准则中。
<物品数字id或英文id>——对应1.13更新后的:<物品id>,用法和<物品数字id或英文id>一样。
<物品数字id或英文id>——对应1.13更新后的:<物品id>,用法也一样。
<方块数字id或英文id>——对应1.13更新后的:<方块id>,用法仍然一样。
<实体id>——对应1.13更新后的:<实体id>。只不过支持的实体id相比于1.13更新后的版本要少许多,并且不支持mod实体,因为没有命名空间。如就是杀死村民的次数。
<实体id>——对应1.13更新后的_by:<实体id>,用法和<实体id>一样。
需要注意,在版本之前,等准则是不支持物品和方块的id名(英文id)的。
本章到此结束。