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

[命令方块] 教你学会scoreboard指令(新手向)

[复制链接]

15

主题

187

帖子

95

积分

Lv.3 矿物能手

UID
118065
小麦
32
金锭
365
下界之星
0
发表于 2017-8-11 21:55:42 | 显示全部楼层 |阅读模式
本帖最后由 Netro777 于 2017-8-12 16:16 编辑

Scoreboard指令

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

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

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

1.1.objective/add

首先scoreboard的最基础的指令:

/scoreboard objective add 目标名称 判据

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

/scoreboard objective add Test dummy

这个指令运行后会添加一个名为"Test"的变量
当然判据可以变:

/scoreboard objective 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 @p Test 0

/scoreboard players remove @p Test 1

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


1.4.objective/setdisplay

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

如果你想让分数显示在左边,显示位置就填sidebar
当然,还有很多显示地方,按Tab来查看,这样就能让玩家知道自己是多少分
如果你不想让分数显示在屏幕上:


/scoreboard objective 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.objective/remove

/scoreboard objective remove 目标名称

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


比如:


/scoreboard objective remove Test1


将目标名为Test1的目标移除

1.7.objective/list

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

/scoreboard objective 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指令做的计时装置,给大家脑补脑补

有三个指令方块:


2017-08-12_10.48.47.png

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

/scoreboard objective add time1 dummy


/scoreboard objective 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
楼主还没完全编辑好,图片会一起发上去,请大家见谅,只是现在有点晚了,我会慢慢的补上













4

主题

52

帖子

18

积分

Lv.1 新手木匠

UID
2567716
小麦
1
金锭
77
下界之星
0
发表于 2017-11-2 22:34:19 来自手机 | 显示全部楼层
不是很懂

3

主题

50

帖子

17

积分

Lv.1 新手木匠

UID
624366
小麦
1
金锭
96
下界之星
0
发表于 2017-11-3 13:37:54 来自手机 | 显示全部楼层
/scoreboard teams join 队伍名 玩家 加入队伍
/scoreboard teams add 队伍名 队伍名新建队伍
/scoreboard teams objectives 队伍名 color 颜色 队伍颜色
/scoreboard teams leave 玩家
/scoreboard objectives add 记分板名 判据
队伍打得那么复杂干嘛23333

2

主题

10

帖子

5

积分

Lv.1 新手木匠

UID
5470772
小麦
0
金锭
5
下界之星
0
发表于 2018-7-10 18:23:31 | 显示全部楼层
okk

2

主题

10

帖子

5

积分

Lv.1 新手木匠

UID
5470772
小麦
0
金锭
5
下界之星
0
发表于 2018-7-10 18:23:54 | 显示全部楼层
还有什么用法

2

主题

5

帖子

3

积分

Lv.1 新手木匠

UID
5471144
小麦
0
金锭
3
下界之星
0
发表于 2018-7-10 19:06:47 来自手机 | 显示全部楼层
告诉一下 自定义附魔的指令呗

0

主题

16

帖子

4

积分

Lv.1 新手木匠

UID
5399736
小麦
0
金锭
-3
下界之星
0
发表于 2018-7-11 22:20:57 来自手机 | 显示全部楼层
。。。。。。

10

主题

517

帖子

144

积分

Lv.4 怪物猎人

UID
876177
小麦
3
金锭
739
下界之星
0
发表于 2018-7-12 07:51:41 | 显示全部楼层
半懂半不懂

7

主题

132

帖子

40

积分

Lv.2 石器学徒

UID
4960555
小麦
0
金锭
183
下界之星
0
发表于 2018-7-12 07:57:14 来自手机 | 显示全部楼层
结构 发表于 2017-11-3 13:37
/scoreboard teams join 队伍名 玩家 加入队伍
/scoreboard teams add 队伍名 队伍名新建队伍
/scoreboard  ...

那个scoreboard teams ...你确定是objectives?

1

主题

2

帖子

2

积分

Lv.1 新手木匠

UID
5494164
小麦
0
金锭
4
下界之星
0
发表于 2018-7-15 16:17:46 来自手机 | 显示全部楼层
谁知道死亡不掉落指令

0

主题

3

帖子

1

积分

Lv.1 新手木匠

UID
5494349
小麦
0
金锭
2
下界之星
0
发表于 2018-7-15 16:43:18 | 显示全部楼层
曦宝贼帅 发表于 2018-7-15 16:17
谁知道死亡不掉落指令

gamerule keepinventory+true(打开)或false(关闭)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部