查看: 6208|回复: 0

[互助技巧] 教你学会scoreboard指令(详解)

[复制链接]

302

主题

374

帖子

1757

积分

实习版主

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

发表于 2017-9-20 09:18:48 | 显示全部楼层 |阅读模式
1.objectives/players

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


首先scoreboard的最基础的指令:

/scoreboard objectives add 目标名称 判据

这条指令会添加一个目标,名称任意。这是scoreboard里最基础的指令,没有它scoreboard指令也就没啥用了
你可以添加无限个目标,但名称不能重复,判据可以重复
判据有很多,可以按Tab来查看,不过我觉得最好用的还是dummy(变量)undefined
判据让电脑知道这是一个什么样的目标,比如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.players/enable

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

/scoreboard objectives add TRIGGER trigger


这样就添加了判据为trigger,目标名为TRIGGER的目标


给玩家在判据为trigger的目标给予权限,比如:


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


这样就给某些玩家修改自己分数的权限,指令如下:


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


比如:


/trigger TRIGGER set 100


将自己在TRIGGER的分数修改成100


/trigger TRIGGER add 100


将自己在TRIGGER的分数加100

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

/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 队伍名称

2.8.检测队伍

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

比如:

/give @a[team=TEAM] stone

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

/give @a[team=!TEAM] stone

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

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击这里给我发消息 点击链接加入【17173社区玩家群1】