如何才能使用命令方块探测一片区域的特定方块的数量,并用记分板显示出。
比如,我使用命令方块,探测一片区域的草方块的数量,然后右边的记分板显示出来。
「如你所见,我给出的悬赏极高,这是一个我一直都无法解决的问题,望有指令方块的高手可以解决」
比如,我使用命令方块,探测一片区域的草方块的数量,然后右边的记分板显示出来。
「如你所见,我给出的悬赏极高,这是一个我一直都无法解决的问题,望有指令方块的高手可以解决」
两个方法:一,穷举:把这片区域每个位置独立探测成功后给变量加一。二,把一个盔甲架卡在半空探测相应位置方块后,用tp向下传送创一个变量记录次数到达10次后用tp换行(以10列为例)
sky~飞鱼 发表于 2017-1-27 16:26
两个方法:一,穷举:把这片区域每个位置独立探测成功后给变量加一。二,把一个盔甲架卡在半空探测相应位置 ...
不不不,你理解错误了
我的意思是,比如,一片区域里有300个羊毛,启动这命令方块组后,右边的记分板显示变量为300。
Enderman_Gmig_0 发表于 2017-1-27 17:11
不不不,你理解错误了
我的意思是,比如,一片区域里有300个羊毛,启动这命令方块组后,右边的记分板显示 ...
这不好办到,如果你要执行指令立刻出现数值的话
你可以在这片区域塞满隐形盔甲架,然后execute+testforblock然后计算命令成功次数,然后绑定记分板
Enderman_Gmig_0 发表于 2017-1-27 17:11
不不不,你理解错误了
我的意思是,比如,一片区域里有300个羊毛,启动这命令方块组后,右边的记分板显示 ...
我就这意思
FHC红石 发表于 2017-1-27 17:04
这不好办到,如果你要执行指令立刻出现数值的话
你可以在这片区域塞满隐形盔甲架,然后execute+testforbl ...
我可以用什么命令来快速的地填充盔甲架(长方形区域)
Enderman_Gmig_0 发表于 2017-1-27 17:46
我可以用什么命令来快速的地填充盔甲架(长方形区域)
http://www.mcbbs.net/thread-479631-1-1.html
FHC红石 发表于 2017-1-27 17:49
http://www.mcbbs.net/thread-479631-1-1.html
可是,这里面fill的是红石线,会把我原来的方块替换掉的
Enderman_Gmig_0 发表于 2017-1-27 17:54
可是,这里面fill的是红石线,会把我原来的方块替换掉的
你先在高空fill,然后把盔甲架tp下来
Enderman_Gmig_0 发表于 2017-1-27 17:11
不不不,你理解错误了
我的意思是,比如,一片区域里有300个羊毛,启动这命令方块组后,右边的记分板显示 ...
我的意思是:以你的区域中某一边界为原点建立坐标系,创建三个变量记录xyz轴,丛原点开始生成一个隐身盔甲架同时探测盔甲架想位置,探测成功后给第四个变量加一,如果同时把x轴变量加一,同时tp盔甲架当到达边界时.给y轴变量加一,同时将盔甲架纵向tp,继续x轴步骤,z轴同理
sky~飞鱼 发表于 2017-1-27 18:18
我的意思是:以你的区域中某一边界为原点建立坐标系,创建三个变量记录xyz轴,丛原点开始生成一个隐身盔 ...
说的有道理
你先看看自己的金粒够不够吧
A.A

FHC红石 发表于 2017-1-27 17:56
你先在高空fill,然后把盔甲架tp下来
非常感谢,但我还是有两个问题,解决了就选最佳了。
1.主要我现在的问题是,我在原帖看到,使用fill红石线的方法召唤的生物并不整齐,我担心会对探测造成影响。(现在也没有时间去试)
2.如果我想实时查看还有别的方法吗(我想制作的是一个PVP地图,类似与服务器小游戏的彩虹大战,比谁的颜色多,所以要探测特定方块的数量)
Enderman_Gmig_0 发表于 2017-1-27 21:50
非常感谢,但我还是有两个问题,解决了就选最佳了。
1.主要我现在的问题是,我在原帖看到,使用fill红石 ...
他后面不算教了用沙子的方法吗,更整齐
如果你能够把方块变成实体那么统计数量就很方便了
FHC红石 发表于 2017-1-27 22:31
他后面不算教了用沙子的方法吗,更整齐
如果你能够把方块变成实体那么统计数量就很方便了 ...
恩,非常感谢。最佳给了。
顺便问一下你看到我的头像是什么,我在IE和chrome上看到的头像都不同,不知道是不是BUG。
这都是什么玩意啊……
首先,做一个记分板统计数据
复制代码复制代码
之后在聊天框内输入指令:
复制代码
再:
复制代码
完成这两步之后
有多少特定方块,就已经在你的分数里面了
我们接着看,怎么直接用命令方块做呢?
记分板不变
复制代码复制代码
之后如果你是1.8那你就这样(摆命令方块):



1.9&1.9+就这样


之后与上面一样:
前面的命令方块:
复制代码
后面的:
复制代码
你检测两个命令方块的任意一个都可以(stats指令那里)
之后结果就会在你的记分板里面了
玩家ID那里可以替换为@p/@a等选择器
求最佳
首先,做一个记分板统计数据
- /scoreboard objectives add Block dummy
- /stats entity 你的ID set AffectedBlocks 你的ID Block
之后在聊天框内输入指令:
- /fill 范围 minecraft:barrier replace minecraft:你要检测的方块名
再:
- /fill 范围 minecraft:你要检测的方块名 replace minecraft:barrier
完成这两步之后
有多少特定方块,就已经在你的分数里面了
我们接着看,怎么直接用命令方块做呢?
记分板不变
- /scoreboard objectives add Block dummy
- /stats block 命令方块的坐标 set AffectedBlocks 你的ID Block
之后如果你是1.8那你就这样(摆命令方块):



1.9&1.9+就这样


之后与上面一样:
前面的命令方块:
- /fill 范围 minecraft:barrier replace minecraft:你要检测的方块名
后面的:
- /fill 范围 minecraft:你要检测的方块名 replace minecraft:barrier
你检测两个命令方块的任意一个都可以(stats指令那里)
之后结果就会在你的记分板里面了
玩家ID那里可以替换为@p/@a等选择器
求最佳
本帖最后由 FHC红石 于 2017-1-27 23:06 编辑
就在你发出的一瞬间,我给了版主了。。。。。。真的对不起
Java_command 发表于 2017-1-27 22:59
这都是什么玩意啊……
首先,做一个记分板统计数据
就在你发出的一瞬间,我给了版主了。。。。。。真的对不起
Java_command 发表于 2017-1-27 22:59
这都是什么玩意啊……
首先,做一个记分板统计数据
请问指令:/stats block 命令方块的坐标 set AffectedBlocks 你的ID Block
中的命令方块的坐标是哪个命令方块的
Java_command 发表于 2017-1-27 22:59
这都是什么玩意啊……
首先,做一个记分板统计数据
抱歉没仔细看,不用回答了
Enderman_Gmig_0 发表于 2017-1-27 21:50
非常感谢,但我还是有两个问题,解决了就选最佳了。
1.主要我现在的问题是,我在原帖看到,使用fill红石 ...
盔甲架对齐我给你解决了。但是execute+testforblock探测成功次数并绑定计分板我就不会了。



指令时序(从上到下,对应从左到右)
- /fill ~ ~ ~ ~ ~ ~ minecraft:redstone_wire
- /scoreboard players set @e[type=item] 计分板1 1 {Item:{id:"minecraft:redstone"}}
- /execute @e[score_计分板1_min=1] ~ ~ ~ /summon shulker ~ ~1 ~ {Tags:["1"],NoAI:1}
- /kill @e[score_a_min=1]
- 一个比较器
- /execute @e[tag=1] ~ ~ ~ summon armor_stand ~ ~1 ~ {NoGravity:1b,Tags:["2"]}
- /kill @e[tag=1]
- /scoreboard players set @e[type=item] 计分板2 1 {Item:{id:"minecraft:shulker_shell"}}
- kill @e[score_计分板2_min=1]
需要新建两个计分板。
第三条:在红石上面召唤潜影贝。对齐网格。
第四条:清掉红石。
第五条:潜影贝上面召唤盔甲架,绝对齐刷刷的。
第六条:清掉潜影贝。
第七八条:给潜影壳计分,然后清掉。没看见掉落就已经没了。

这个是一串命令方块的.nbt。放到.minecraft\saves\你的地图名\structures里面。用结构方块导入地图。
不会的话回复我,我给你存档。
Enderman_Gmig_0 发表于 2017-1-27 23:13
请问指令:/stats block 命令方块的坐标 set AffectedBlocks 你的ID Block
中的命令方块的坐标是哪个命令 ...
任意一个命令方块的xyz坐标。

其实fill替换,用的方块也可以。比如stone。屏障的id不好背。
Enderman_Gmig_0 发表于 2017-1-27 03:13
请问指令:/stats block 命令方块的坐标 set AffectedBlocks 你的ID Block
中的命令方块的坐标是哪个命令 ...
我说了前面后面都可以
Enderman_Gmig_0 发表于 2017-1-27 21:50
非常感谢,但我还是有两个问题,解决了就选最佳了。
1.主要我现在的问题是,我在原帖看到,使用fill红石 ...
给你把所有问题都解决了。

请了两个助手,模拟联机模式。
发现了几个问题。
1.stats的[@选择器]单纯地@a会出BUG。(貌似@a不能用参数,可能没测试完全)
解决:用计分板队伍,把每个人分队。@a[team=队伍]
2.一组fill+stats只能照顾一个人。(一个队伍)
解决:有几个人就用几组,几个队伍。
3.队伍里有多个人,无法探测个人成绩。
这个暂时无解,队伍里有多个人探测的是全队的成绩。
可以做个组队赛。
单人和组队地图通用。
有几组fill+stats就是几组人。例如:有3组。那么人数只能是3×n。否则就不公平。
lrf8643 发表于 2017-1-28 01:52
给你把所有问题都解决了。
朋友,真不好意思,上个星期我去外地了,那里没有网络,一直没有回复您呢。
同时非常感谢您为我提供这么周全的解答,我都不知道怎么感谢您了。
但比较尴尬的是,上个星期,我使用 @Java_command 的方法,已经造出了最好的装置。
不但能精准的探测数量,接入高频红石还能实时探测,而且不会对方块和玩家造成影响。
对于
1.stats的[@选择器]单纯地@a会出BUG。(貌似@a不能用参数,可能没测试完全)
我的解决方法是:使用假名(系统不会判断您更改分数的单位是否存在,即时单人,我写个把KK的分数改为1,系统还是会改的,由系统判断由几个人,两个就用:玩家红,玩家绿,三个就依次。
2和3的问题既然用了假名就不存在了。
非常感谢您对于我的问题的详细解答,因为我忘记告诉大家我解决了问题,导致您对于我的帮忙白帮了,真是不好意思。