如何应用TESTFOR指令输出的结果?
运用testfor指令检测玩家物品栏中是否有一定的物品
/testfor @p {Inventory
[{Slot:0b,id:minecraft:stick,Damage:0s,Count:1b,tag:{display:{Name:"123"}}}}]}
@p就是最近玩家
Inventory是背包
Slot是指玩家槽位,单位是b,可选可不选
id就是物品的id,不用多说
Damage默认为0,用来检测如彩色的羊毛,相当于辨别多个相同物体
tag就是一个连接符,用来连接一个NBT与另一个NBT。如这个木棍有“123”这个名字,想同样检测到这个名字,或者其他属性,就用tag连接。如有附魔属性就了连接ench,有注释就连接lore等
接着关于testfor的红石电路,可自行查阅
接着说scoreboard
掌握了testfor的红石电路后,连接有scoreboard的命令方块
设置变量:
首先要设置一个变量,就是要给玩家加分要先选定这个变量,接着选定玩家,予以加分
/scoreboard objectives add test dummy
dummy指变量,test就是设置的那个变量,可以改名
/scoreboard objectives add Test1 deathCount
就是给test1这个变量设置一个判据,为deathcount即死亡次数
关于判据的相关信息可自行查阅
加分
好,那么设置完了变量和判据,就该设置玩家加分项了
如
/scoreboard players add @p Test 1
players add指加分
@p指最近的玩家
test指设置的变量,比如刚刚设置了变量test,那就给这个变量的玩家分数予以改变
1就是加一分
如果把players add改成set和remove,则代表设置分数和减去分数
好,接着设置指令以让玩家知道自己的分数
/scoreboard objectives setdisplay sidebat Test
setdisplay是显示分数
sidebat是旁边,也可以设在上面
test是刚刚设置的变量
接着说检测分数
如果一个玩家的分数到了20分,那他就赢了,该如何设置呢
/tellraw @a[score_Test_min=20] [{"text":"你赢了"}]
就是检测变量为test的玩家分数到了20,他就赢了。
tellraw是指令,用来在对话框显示文字
@a是所有玩家
text可以随意修改,保持格式即可
想要做这个指令,一定要做一个红石脉冲,那“你赢了”也就会一直显示
所以要重置一下分数
/scoreboard players set @a[score_Test_min=20] Test 0
就是当有个玩家分数到达20时将分数设为0,即重置。你也可以设置不同的玩家不同的分数,不同的变量不同的分数
然后可以设置一个传送,tp所有玩家至大厅或任何地方
总结一下,在我的世界做一个地图是很不容易的。别看那些红石命令大神做出来的地图怎么怎么好,一张图至少几百个命令方块,几千条指令,还要考虑红石电路,命令变量等等...如果是新手不建议做那些很高能的地图。做出来了也不一定做好...
(纯手打,除指令外没有任何复制粘贴。如果对你有帮助请采纳)
Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有