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

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

[复制链接]

5

主题

53

帖子

20

积分

Lv.2 石器学徒

UID
118065
小麦
1
钻石
85
下界之星
0
发表于 4 天前 | 显示全部楼层 |阅读模式
本帖最后由 Netro777 于 2017-8-13 14:02 编辑

Scoreboard指令

scoreboard是一个很强大的指令(比execute还强大),不过我发现很多玩家都不懂...

所以我才想要做一个关于scoreboard的指令教程

要是你们还是不懂,那我就实在没办法了
1.objectives/players

1.1.objectives/add作用:添加一个新目标
首先scoreboard的最基础的指令:

/scoreboard objectives add 目标名称 判据

这条指令会添加一个目标,名称任意。这是scoreboard里最基础的指令,没有它scoreboard指令也就没啥用了
你可以添加无限个目标,但名称不能重复,判据可以重复
判据有很多,可以按Tab来查看,不过我觉得最好用的还是dummy(变量)
判据让电脑知道这是一个什么样的目标,比如deathCount,stat.useItem.minecraft.stone等等就让电脑知道这是个统计玩家死亡的判据和使用石头的判据,玩家每死一次就会增加一分dummy判据就是一个变量,只有命令方块才能修改它
只要做了与判据相符的事,就会加一分
下面是一个例子:

/scoreboard objectives add Test dummy

这个指令运行后会添加一个名为"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分
分数你可以改成任何数字
当然你不止可以加分数,还可以设置分数(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
当然,还有很多显示地方,按Tab来查看,这样就能让玩家知道自己是多少分
如果你不想让分数显示在屏幕上:

/scoreboard objectives setdisplay 显示位置

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


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

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


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

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

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

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

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

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

移除一个目标:

/scoreboard objectives remove 目标名称

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

比如:

/scoreboard objective remove Test1

将目标名为Test1的目标移除

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


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

/scoreboard objectives list

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

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)
主要针对对象和目标和次要针对对象和目标名称可以填同一个
当然操作符不止一个,列一个表:

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

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


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

/scoreboard players reset 选择器 目标名称

比如:

/scoreboard players reset @a Test


将所有玩家的目标名为Test的显示栏清除,并把分数重置为0

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


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

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

比如:

/scoreboard players tag @a[score_Test_min=1] add Tag1 {inGround:1b}

将目标名为Test的分数大于等于1的所有在地面上玩家添加一个名为Tag1的标签

可以让带有某标签的玩家做某些事情
如果想让带有标签名为Tag1的玩家都死:

/kill @a[tag=Tag1]

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

/kill @a[tag=!Tag1]

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

/scoreboard players tag 选择器 list


此指令貌似也只能用在指令框里

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

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


比如:


/scoreboard players tag @a remove Tag1


将所有人中带有名为Tag1的标签删除

1.11.脑补/计时器

现在你们应该已经学会了一点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

/scoreboard teams add Green Green

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

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


让玩家加入某队:
/scoreboard teams join 队伍名称 选择器

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

/scoreboard teams join Red @p

/scoreboard teams join Green @p
如果一个人先前加入了队伍Red,后来又加入了队伍Green,那么这个人会自动退出队伍Red并自动加入队伍Green


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

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

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

/scoreboard teams option Red color red

/scoreboard teams option Green color green

前面的Red指的是队伍名称,后面的red指的是颜色
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

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

/scoreboard teams leave 选择器

比如:

/scoreboard teams leave @a


后面不用加上队伍名称,因为玩家只能加入一个队伍


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

将队伍的详情列出来:


/scoreboard teams list
/scoreboard teams list 队伍名称


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

将某队伍移除:

/scoreboard teams remove 队伍名称

楼主还没完全编辑好,图片会一起发上去,请大家见谅,只是现在有点晚了,我会慢慢的补上





















14

主题

317

帖子

116

积分

Lv.4 怪物猎人

UID
21905
小麦
22
钻石
398
下界之星
0
发表于 4 天前 | 显示全部楼层
  其实有些指令平时几乎不用

5

主题

53

帖子

20

积分

Lv.2 石器学徒

UID
118065
小麦
1
钻石
85
下界之星
0
 楼主| 发表于 4 天前 | 显示全部楼层
LionHeart 发表于 2017-8-13 19:01
其实有些指令平时几乎不用

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

3

主题

117

帖子

36

积分

Lv.2 石器学徒

UID
10263
小麦
3
钻石
163
下界之星
0
发表于 前天 10:12 来自手机 | 显示全部楼层
你打了多长时间啊....

5

主题

53

帖子

20

积分

Lv.2 石器学徒

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

有4小时了吧

8

主题

31

帖子

16

积分

Lv.1 新手木匠

UID
40235
小麦
0
钻石
56
下界之星
0
发表于 前天 23:33 | 显示全部楼层
有没有领地保护相关的指令???

81

主题

760

帖子

570

积分

攻略组

挖坑

UID
122
小麦
293
钻石
1488
下界之星
0

问答斯基的方向盘

发表于 前天 23:35 | 显示全部楼层
。。把字符底纹去掉食用更佳

8

主题

110

帖子

45

积分

Lv.2 石器学徒

UID
3190
小麦
9
钻石
156
下界之星
0
发表于 昨天 07:42 | 显示全部楼层
排查完毕,非剽窃。
你的字体能不能正常一点,看得我差点举报了

5

主题

53

帖子

20

积分

Lv.2 石器学徒

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

改不了啊呜呜

5

主题

53

帖子

20

积分

Lv.2 石器学徒

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

当然不是抄袭别人的我是那样的人吗
现在不能编辑啊呜呜
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部