请选择 进入手机版 | 继续访问电脑版
查看: 5201|回复: 40

[命令方块] 教你学会scoreboard指令(详解)

[复制链接]

15

主题

180

帖子

87

积分

Lv.3 矿物能手

UID
118065
小麦
26
金锭
318
下界之星
0
发表于 2017-8-13 13:15:37 | 显示全部楼层 |阅读模式
本帖最后由 Netro777 于 2017-10-13 21:48 编辑

Scoreboard指令
【EGS】
scoreboard是一个很强大的指令(比execute还强大),不过我发现很多玩家都不懂...
所以我才想要做一个关于scoreboard的指令教程
要是你们还是不懂,那我就实在没办法了{:汗S:}
1.objectives/players

1.1.objectives/add作用:添加一个新目标


首先scoreboard的最基础的指令:

/scoreboard objectives add 目标名称 判据 显示名

这条指令会添加一个目标,名称任意。这是scoreboard里最基础的指令,没有它scoreboard指令也就没啥用了
你可以添加无限个目标,但名称不能重复,判据可以重复

目标是什么?
简单来说,目标是一种计算分数的东西,所有目标都有这几样东西:
1.名称,显示名
2.玩家(或生物),分数
3.判据
判据是什么?
每个目标都有它们所属的判据,所有目标的判据可以相同,但名称不能相同,如果出现了名称相同的情况,就会 mc.scb2.jpg .一般来说,如果出现这种情况就会在名称后面加几个数字.判据有很多,判据使电脑知道这是一个什么样的目标,可以按Tab来查看: mc.scb26.jpg (在下划线那里按Tab键),然后弹出一个判据名称,再按一次Tab就会再出
只要做了与判据相符的事,就会加一分

下面是一个添加一个目标的例子:

/scoreboard objectives add Test dummy

这个指令运行后会添加一个名为"Test"的变量,如图:


mc.scb1.png

如果开启了commandBlockOutPut,左下角的显示是正常的,你就己经添加了Test目标

当然判据可以变:


/scoreboard objectives add Test1 deathCount

这样就会添加一个判据为deathCount的新目标"Test1"

有权限的玩家可以改变"Test"或"Test1"的分数(如果判据不是dummy也可以改,只不过判据也可以自动加分)

1.2.players/add
作用:给玩家的某目标加分

如果只是单纯地添加一个目标,而不对它做任何有意义的事情,那这又有什么用呢???
所以说目标还是很有用处的,比如说他可以给特指的玩家(或生物)加分
加分:

/scoreboard players add 选择器 目标名称 分数

这条指令可以让玩家修改玩家在某个目标的分数
比如:
/scoreboard players add @p Test 1

这条指令可以让最近玩家的目标分数(Test)加1分,如图: mc.scb4.jpg mc.scb10.jpg
分数你可以改成任何数字(当然是我的世界可以承受的啦)
当然你不止可以加分数,还可以设置分数(set),和减分数(remove):(下面)

1.3.players/set/remove
作用:给玩家的某目标设置分数和减去分数

设置分数和减去分数:

/scoreboard players set 选择器 目标名称 分数

/scoreboard players remove 选择器 目标名称 分数


比如:

/scoreboard players set @p Test 0

/scoreboard players remove @p Test 1


这两条指令分表让最近玩家的目标分数(Test)设成0和减1
既然我们已经会加分减分设分,那怎样才能让玩家知道自己的分数呢?(下面)

1.4.objectives/setdisplay
作用:将某目标显示

将玩家在某目标的分数显示:

/scoreboard objectives setdisplay 显示位置 目标名称

如果你想让分数显示在左边,显示位置就填sidebar:

/scoreboard objectives setdisplay sidebat Test

效果如图: mc.scb6.jpg

当然,还有很多显示地方,按Tab来查看,这样就能让玩家知道自己是多少分

如果你不想让分数显示在屏幕上:

/scoreboard objectives setdisplay 显示位置

假如显示位置为sidebar,sidebar就会被清空(不显示),如图: mc.scb18.png mc.scb19.png
不过,假如你想要造一个多人小游戏地图,你需要让玩家的分数到达20才算赢,你要怎么来检测呢?(下面)

1.5.检测score
作用:检测玩家的分数

选择器[score_目标名称_min=检测分数]
选择器[score_目标名称=检测分数]


问:这是什么鬼东西?
这是用检测玩家分数并做出举动,比如:

/tellraw @a[score_Test_min=20] [{"text":"你赢了"}]
这条指令的意思是:
告诉目标为Test的玩家的分数大于等于20时,就会打出"你赢了",如图: mc.scb7.jpg
如果是@a[score_Test=20]就是小于等于20,当然你可以两个一起用,比如:@a[score_Test_min=20,score_Test=20],意思就是等于20时就会...
这样就可以起到一个检测作用,不过要保持开启

当然,如果这样的话就会一直显示"你赢了",如图: mc.scb8.png
所以后面一个命令方块还得用来重置:

/scoreboard players set @a[score_Test_min=20] Test 0

这样既能显示一个你赢了,同时重置了分数
如果你手滑想要删除一个目标时:(下面)

1.6.objectives/remove
作用:移除一个目标

移除一个目标:

/scoreboard objectives remove 目标名称

这样就能删除一个目标名称

比如:

/scoreboard objective remove Test1

将目标名为Test1的目标移除,如图: mc.scb9.png

1.7.objectives/list
作用:显示所有目标

如果你想查看你创建了多少个目标,可以用到:

/scoreboard objectives list

这样就可以列出有多少个目标,如图: mc.scb11.png
但此指令只能用在指令框上,不能用在命令方块里

1.8.players/operation
作用:在目标里做运算

在我的世界做运算,可以用到operation

/scoreboard players operation 主要针对对象 主要针对对象目标名称 操作符 次要针对对象 次要针对对象目标名称

这看起来有点难理解,解释一下:
假如A玩家的目标名为score1的分数为2,B玩家的目标名为score2的分数为1,再用此指令:

/scoreboard players operation A玩家 score1 += B玩家 score2

这样A玩家目标名为score1的分数就变成了3(因为2+1=3)
主要针对对象和目标和次要针对对象和目标名称可以填同一个
当然操作符不止一个,列一个表:

操作符意思
+=加法,只改变主要针对对象的目标分数,不改变次要针对对象分数
-=减法,只改变主要针对对象的目标分数,不改变次要针对对象分数
*=乘法,只改变主要针对对象的目标分数,不改变次要针对对象分数
/=除法,整除,只改变主要针对对象的目标分数,不改变次要针对对象分数
%=除法,余除,只改变主要针对对象的目标分数,不改变次要针对对象分数
<当主要针对对象分数<次要针对对象分数,两个都不变
当主要针对对象分数>次要针对对象分数,次要针对对象的分数会赋值给主要针对对象的分数,次要针对对象的分数不变
>当主要针对对象分数>次要针对对象分数,两个都不变
当主要针对对象分数<次要针对对象分数,次要针对对象的分数会赋值给主要针对对象的分数,次要针对对象的分数不变
=直接将次要针对对象的分数赋值给主要针对对象分数
><直接将两个分数赋值给对方

例如:
先再添加一个新目标"Help":


/scoreboard objectives add Help dummy 帮助


mc.scb12.png
"Help"目标是为了做运算的次要针对对象目标,所以我们先试一试两个目标相加:
先把Help设置为1: mc.scb13.png mc.scb14.png
再做加法: mc.scb15.png mc.scb16.png mc.scb17.png
可以看到操作以成功,Test+Help=20+1=21,所以Test变成了21

1.9.players/reset
作用:将玩家的目标重置

将玩家的特显栏清除,并把玩家的分数重置为0:

/scoreboard players reset 选择器 目标名称

比如:

/scoreboard players reset @a Test

将所有玩家的目标名为Test的显示栏清除,并把分数重置为0,如图: mc.scb20.png mc.scb21.png

1.10.1.players/tag/add
作用:给玩家添加一个标签

将特定玩家添加一个特定标签

/scoreboard players tag 选择器 add 标签名称 数据标签

比如:

/scoreboard players tag @a add Tag1 {OnGround:1b}
给所有在地面上玩家添加一个名为Tag1的标签
在地面上的效果: mc.scb22.png
不在地面上的效果: mc.scb23.png

可以让带有某标签的玩家做某些事情

选择器[tag=标签名称]
选择器[tag=!标签名称]

如果想让带有标签名为Tag1的玩家都死:

/kill
@a[tag=Tag1]

让没带有标签名为Tag1的人死:

/kill @a[tag=!Tag1]

1.10.2.players/tag/list
作用:将玩家的标签列举出来


将玩家的标签都列举出来:

/scoreboard players tag 选择器 list

比如:

/scoreboard players tag @p list
此指令貌似也只能用在指令框里,如图: mc.scb24.png mc.scb25.png

1.10.3.players/tag/remove
作用:将玩家的标签移除

将玩家的标签移除

/scoreboard players tag 选择器 remove 标签名称


比如:


/scoreboard players tag @a remove Tag1


将所有人中带有名为Tag1的标签删除,如图: mc.scb28.png mc.scb29.png


1.11.players/enable

如果你想用这条指令,首先得添加判据为trigger目标:

/scoreboard objectives add TRIGGER trigger

这样就添加了判据为trigger,目标名为TRIGGER的目标,如图: mc.scb30.png mc.scb31.png
给玩家在判据为trigger的目标给予权限,比如:

/scoreboard players enable 选择器 目标名称(trigger判据)

这样就给某些玩家修改自己分数的权限修改自己在trigger判据目标的指令如下:

/trigger 目标名称(trigger判据) <add|set> 分数

比如:


/scoreboard players enable @a TRIGGER

在TRIGGER目标给所有人权限,如图: mc.scb33.png

/trigger TRIGGER set 100

将自己在TRIGGER的分数修改成100,如图: mc.scb34.jpg mc.scb34.png mc.scb35.png

/trigger TRIGGER add 100

将自己在TRIGGER的分数加100,如图: mc.scb36.png mc.scb37.png mc.scb38.png 注意:没有权限不能修改: mc.scb32.png

1.12.脑补/计时器

现在你们应该已经学会了一点scoreboard指令,现在就给大家介绍一个用scoreboard指令做的计时装置,给大家脑补脑补

有三个指令方块:




这里给大家介绍的是倒计时(remove),当然大家也可以加分计时(add)
首先得要加两个变量:

/scoreboard objectives add time1 dummy

/scoreboard objectives add time2 dummy


图片中从下往上的指令分别是(循环):

/scoreboard players add @a time2 1  给目标名为time2的所有玩家加一分

/scoreboard players remove @a[score_time2_min=20,score_time1_min=1] time1 1 如果目标time2大于等于20,time1也大于等于1,就给time1减一分(这里也可以设置成add)

/scoreboard players set @a[score_time2_min=20] time2 0 如果目标名为time2的分数大于等于20,就把time2设成0

这可能对萌新看不懂,解释一下:

首先time2是用来辅助time1计时的,time2一直在给自己加分,当加到了20分(也就过了一秒),就把time1减掉一分并把time2重新设置成0,这样就起到了一个循环作用
time1一开始你要设置分数(时间),当time1减到0时,就不会再减下去了,因为第二条指令中的score_time1_min=1],0小于1,所以就不减了
当然你也可以用setdisplay来显示计时的时间,让玩家知道还有多少时间

你也可以正计时,把第二条指令改成这样:

/scoreboard players add @a[score_time2_min=20,score_time1=分数] time1 1

这样就形成了正计时
分数要改成你要计时的分数,比如499(到了500就不加了,刚刚好),99,149

2.teams

记分板是给每个人用的,但队伍是给个别人用的,不同的队伍可以设置不同的东西
比如可以创建红队,绿队:

2.1.teams/add
作用:添加一个队伍

添加一个队伍:

/scoreboard teams add 队伍名称 显示名

这样你就可以创建两个不同的队伍,比如:

/scoreboard teams add Red Red


mc.scb39.png mc.scb40.png

/scoreboard teams add Green Green


mc.scb41.png mc.scb42.png

这样就创建了两个队伍:Red,Green
但是虽然创建了两个名字相同的队伍,但里面都没人,所以要加点人进去:

2.2.teams/join
作用:让玩家加入某队伍

让玩家加入某队:

/scoreboard teams join 队伍名称 选择器

这样就可以添加点人进去,比如:

/scoreboard teams join Red @p

mc.scb43.png

/scoreboard teams join Green @p


mc.scb44.png
如果一个人先前加入了队伍Red,后来又加入了队伍Green,那么这个人会自动退出队伍Red并自动加入队伍Green,所以我现在在绿队


2.3.teams/option
作用:给某队伍设置选项
虽然加入了队伍红、绿,但还没设置它们的颜色

/scoreboard teams option 队伍名称 设置 设置效果

我们现在要改变颜色,所以:

/scoreboard teams option Red color red


mc.scb45.png

/scoreboard teams option Green color green


mc.scb46.png
前面的Red指的是队伍名称,后面的red指的是颜色

给队伍加了颜色就可以显示很多东西比如:
mc.scb47.png mc.scb48.png mc.scb49.png
option后面可以跟很多东西,比如friendlyfire、collisionRule


/scoreboard teams option Red friendlyfire false

这样就队伍Red中的人就打不到对方
下面是把碰撞体积关掉

/scoreboard teams option Red collisionRule never

option选项有很多,可以按Tab查看更多

2.4.teams/empty
作用:清空某队伍的玩家
如果你想清空某个队伍里的玩家:

/scoreboard teams empty 队伍名称

比如:

/scoreboard teams empty Red

mc.scb50.png
或者
/scoreboard teams empty Green
mc.scb51.png

2.5.teams/leave
作用:让玩家离开某队伍
如果你想让某个玩家离开队伍:

/scoreboard teams leave 选择器

比如:

/scoreboard teams leave @a

后面不用加上队伍名称,因为玩家只能加入一个队伍,如图:
mc.scb52.png


2.6.teams/list
作用:将队伍列举出来

将队伍的详情列出来:

/scoreboard teams list
mc.scb53.png
/scoreboard teams list 队伍名称

mc.scb54.png
2.7.teams/remove
作用:将某队伍移除

将某队伍移除:

/scoreboard teams remove 队伍名称


移除绿队:
mc.scb55.png
mc.scb56.png

2.8.检测队伍

选择器[team=队伍名称]
选择器[team=!队伍名称]

比如:

/give @a[team=TEAM] stone

给予在队伍TEAM里的玩家一块石头

/give @a[team=!TEAM] stone

给予不在队伍TEAM的玩家一块石头

最后编辑时间:2017/10/13 21:45

















评分

6

查看全部评分

15

主题

338

帖子

151

积分

Lv.4 怪物猎人

UID
21905
小麦
50
金锭
524
下界之星
0
发表于 2017-8-13 19:01:13 | 显示全部楼层
  其实有些指令平时几乎不用

15

主题

180

帖子

87

积分

Lv.3 矿物能手

UID
118065
小麦
26
金锭
318
下界之星
0
 楼主| 发表于 2017-8-13 21:43:33 | 显示全部楼层
LionHeart 发表于 2017-8-13 19:01
其实有些指令平时几乎不用

平时不用又怎样,总能用到的

5

主题

166

帖子

50

积分

Lv.3 矿物能手

UID
10263
小麦
3
金锭
231
下界之星
0
发表于 2017-8-15 10:12:09 来自手机 | 显示全部楼层
你打了多长时间啊....

15

主题

180

帖子

87

积分

Lv.3 矿物能手

UID
118065
小麦
26
金锭
318
下界之星
0
 楼主| 发表于 2017-8-15 21:19:34 来自手机 | 显示全部楼层
红~月 发表于 2017-8-15 10:12
你打了多长时间啊....

有4小时了吧

18

主题

80

帖子

40

积分

Lv.2 石器学徒

UID
40235
小麦
1
金锭
147
下界之星
0
发表于 2017-8-15 23:33:58 | 显示全部楼层
有没有领地保护相关的指令???

95

主题

818

帖子

693

积分

攻略组

挖坑

UID
122
小麦
387
金锭
1886
下界之星
0

问答斯基的方向盘

发表于 2017-8-15 23:35:54 | 显示全部楼层
。。把字符底纹去掉食用更佳

8

主题

124

帖子

49

积分

Lv.2 石器学徒

UID
3190
小麦
10
金锭
186
下界之星
0
发表于 2017-8-16 07:42:13 | 显示全部楼层
排查完毕,非剽窃。
你的字体能不能正常一点,看得我差点举报了

15

主题

180

帖子

87

积分

Lv.3 矿物能手

UID
118065
小麦
26
金锭
318
下界之星
0
 楼主| 发表于 2017-8-16 11:30:01 来自手机 | 显示全部楼层
MC_黎明 发表于 2017-8-15 23:35
。。把字符底纹去掉食用更佳

改不了啊呜呜

15

主题

180

帖子

87

积分

Lv.3 矿物能手

UID
118065
小麦
26
金锭
318
下界之星
0
 楼主| 发表于 2017-8-16 11:31:27 来自手机 | 显示全部楼层
Jerry_Dev 发表于 2017-8-16 07:42
排查完毕,非剽窃。
你的字体能不能正常一点,看得我差点举报了

当然不是抄袭别人的我是那样的人吗
现在不能编辑啊呜呜

81

主题

2978

帖子

871

积分

管理员

会玩不熊听指挥

UID
11683
小麦
38
金锭
617
下界之星
0
发表于 2017-8-19 15:02:08 | 显示全部楼层
不用谢

20

主题

409

帖子

178

积分

Lv.4 怪物猎人

UID
4475
小麦
54
金锭
575
下界之星
0
发表于 2017-8-19 16:31:42 | 显示全部楼层
对于创作者是非常实用的

2

主题

11

帖子

6

积分

Lv.1 新手木匠

UID
121968
小麦
1
金锭
3
下界之星
0
发表于 2017-8-22 03:58:25 来自手机 | 显示全部楼层

1

主题

25

帖子

7

积分

Lv.1 新手木匠

UID
220809
小麦
0
金锭
48
下界之星
0
发表于 2017-8-22 08:53:19 来自手机 | 显示全部楼层
打了4个小时。。。。999

15

主题

180

帖子

87

积分

Lv.3 矿物能手

UID
118065
小麦
26
金锭
318
下界之星
0
 楼主| 发表于 2017-8-24 16:20:45 | 显示全部楼层
好像又能编辑了诶

点评

怎样检测唤魔者20格内的玩家  发表于 2017-8-24 16:57
/tellraw @a[score_Test_min=20] summon zomdie 是对的吗?  发表于 2017-8-24 16:53
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部