「CRAO」圣诞之礼——精准高频次数探测器(命令方块)+原理详解

大家好,不知不觉中,又到了2014年的圣诞,在这个平凡而又不普通的日子里,我为大家带来了新的作品,这次的作品是:精准高频次数探测器。顾名思义,该装置可探测所有高频的频率(理论上可探测超过1游戏tick1次的高频),当然还是会有误差的(±3以内),当然,这只是一个概念性作品,我相信一定有大触能做的更好,更精确,当然,最后会发存档供大家改进啦~~谢谢0.0

楼主 乾坤轩辕1  发布于 2014-12-25 19:57:00 +0800 CST  
2l自站

楼主 乾坤轩辕1  发布于 2014-12-25 19:57:00 +0800 CST  
首先是地图的全景和使用方法介绍233


楼主 乾坤轩辕1  发布于 2014-12-25 20:00:00 +0800 CST  
首先来看这边

没什么意思,无非就是作者信息和工作室~~(其实暗藏玄机

楼主 乾坤轩辕1  发布于 2014-12-25 20:02:00 +0800 CST  
这里的三个按钮有必要说一下

首先最左边的是你第一次进游戏是要按的,后面就不必要了,如果测试完毕想停止测试请按中间的按钮,当然,如果发现这里的高频没有停止的话多按几次就行了

相对的,如果要重新开启请按右边的按钮

楼主 乾坤轩辕1  发布于 2014-12-25 20:14:00 +0800 CST  


然后看到橙色羊毛所在的命令方块组,测试高频就摆在这里,注意,无论高频怎么摆,最后一定要将红石块连在钻石块上,例如这样:

一旦将红石电路联通,就自动开始探测

楼主 乾坤轩辕1  发布于 2014-12-25 20:21:00 +0800 CST  
以上就是本装置大概的用法,下面就是讲解了0.0

楼主 乾坤轩辕1  发布于 2014-12-25 20:25:00 +0800 CST  
(由于这个地图的命令不那么简单,我可能讲的不容易明白,还望谅解)首先是第一次开始时的命令

以下是命令:
/summon ArmorStand -43 5 461 {Marker:1,NoGravity:1}
/scoreboard objectives add Blocks dummy
/scoreboard players set Blocks Blocks 0
/scoreboard objectives add time dummy
/scoreboard players set time time 0
/scoreboard players set time time 19

楼主 乾坤轩辕1  发布于 2014-12-25 20:30:00 +0800 CST  
后面的计分板命令都好理解,无非就是创建变量什么的,我就不讲解了,主要注意第一条命令:/summon ArmorStand -43 5 461 {Marker:1,NoGravity:1}
这条指令的意思就是:刷出一个无重力(浮空)的marker(盔甲架的nbt),marker本身带有的功能是:隐形,禁止,小碰撞箱,未来可能取代凋零头颅成为更好的隐形实体中介

楼主 乾坤轩辕1  发布于 2014-12-25 20:34:00 +0800 CST  
那这个marker有什么用呢,我们先往下看:

橙黄色区域的指令为(从右到左):
blockdata -52 3 454 {Command: /summon FallingSand ~ ~1 ~ {Tile:152}}
setblock -52 4 454 minecraft:redstone_block
blockdata -49 4 454 {Command:" "}
blockdata -49 4 453 {Command:" "}
/execute @e[type=ArmorStand] ~ ~ ~ setblock ~1 ~ ~ minecraft:air
/execute @e[type=ArmorStand] ~ ~ ~ tp @e[type=ArmorStand] ~1 ~ ~

楼主 乾坤轩辕1  发布于 2014-12-25 20:38:00 +0800 CST  
我们仔细观察可以发现:
blockdata -52 3 454 {Command: /summon FallingSand ~ ~1 ~ {Tile:152}}
setblock -52 4 454 minecraft:redstone_block
和这两个命令:

blockdata -49 4 454 {Command:" "}
blockdata -49 4 453 {Command:" "}
是相对的,前四个命令的意思就是——在C区(就这两个命令方块)


创建一个高频

楼主 乾坤轩辕1  发布于 2014-12-25 20:44:00 +0800 CST  
还有两个命令:
/execute @e[type=ArmorStand] ~ ~ ~ setblock ~1 ~ ~ minecraft:air
/execute @e[type=ArmorStand] ~ ~ ~ tp @e[type=ArmorStand] ~1 ~ ~
的意思就是把那个Marker往x轴tp一格,而Marker就在这里........(两个粘土之间,你会发现如果往两个粘土之间放东西会被立即刷没)


楼主 乾坤轩辕1  发布于 2014-12-25 20:48:00 +0800 CST  
然后再来看一下C区的命令(很简单):
/scoreboard players remove time time 1
C区主要的工作就是起到一个游戏内计时器的工作


楼主 乾坤轩辕1  发布于 2014-12-25 20:53:00 +0800 CST  
然后看一下D区的命令(最重要的区域)


scoreboard players test time time -1 -1
/setblock -49 5 455 minecraft:air
blockdata -52 3 454 {Command:" "}
/setblock -52 4 454 minecraft:air
/scoreboard players set Blocks Blocks 0
/stats entity @e[type=ArmorStand] set AffectedBlocks Blocks Blocks
/execute @e[type=ArmorStand] ~ ~ ~ fill ~ ~1 ~ -43 6 461 minecraft:command_block
/scoreboard players remove Blocks Blocks 3
/title@ptitle {text:"此高频脉冲速度为一秒",color:gold,bold:false,underlined:false,italic:false,strikethrough:false,obfuscated:false,extra:[{score:{name:"Blocks",objective:"Blocks"},color:green,bold:false,underlined:true,italic:false,strikethrough:false,obfuscated:false}]}
/execute @e[type=ArmorStand] ~ ~ ~ fill ~ ~1 ~ -43 6 461 minecraft:air
blockdata -49 4 454 {Command: blockdata -52 3 454 {Command: /summon FallingSand ~ ~1 ~ {Tile:152}}}
blockdata -49 4 453 {Command:"setblock -52 4 454 minecraft:redstone_block "}
/tp @e[type=ArmorStand] -43 5 461
/scoreboard players set time time 19
/say 测试完成!
/setblock -52 4 454 minecraft:air

楼主 乾坤轩辕1  发布于 2014-12-25 21:01:00 +0800 CST  
其实D区也分为两部分,D1和D2,已中间的中继器为标准


我们先看D1处的命令

楼主 乾坤轩辕1  发布于 2014-12-25 21:05:00 +0800 CST  
scoreboard players test time time -1 -1
/setblock -49 5 455 minecraft:air
blockdata -52 3 454 {Command:" "}
/setblock -52 4 454 minecraft:air
/scoreboard players set Blocks Blocks 0
/stats entity @e[type=ArmorStand] set AffectedBlocks Blocks Blocks
/execute @e[type=ArmorStand] ~ ~ ~ fill ~ ~1 ~ -43 6 461 minecraft:command_block
/scoreboard players remove Blocks Blocks 3
首先探测是否到了1秒(scoreboard players test time time -1 -1)
然后停止C处的高频(/setblock -49 5 455 minecraft:air
blockdata -52 3 454 {Command:" "}
/setblock -52 4 454 minecraft:air)
然后是整个作品的精髓——STATS
命令:
/scoreboard players set Blocks Blocks 0
/stats entity @e[type=ArmorStand] set AffectedBlocks Blocks Blocks
/execute @e[type=ArmorStand] ~ ~ ~ fill ~ ~1 ~ -43 6 461 minecraft:command_block
/scoreboard players remove Blocks Blocks 3
意思就是统计Marker当前位置到marker的初始位置,减1就是marker所走的方块数,但我却减了三(/scoreboard players remove Blocks Blocks 3)
这也是本存档最不精确的地方了,3的其中1分可以理解,是多的方块数,而另外两个都是参考红石比较器的延迟(1红石tick,2游戏tick)估算的,所以要取平均值,我后来想想,测一般的高频还是减2比较好,我就不改了,有兴趣的同学探测非超高频脉冲时可将此命令方块中的命令改为:/scoreboard players remove Blocks Blocks 2

楼主 乾坤轩辕1  发布于 2014-12-25 21:24:00 +0800 CST  
最后是一系列收尾工作,就不多说了,值得一提的是用title说出分数,也很简单
/title@ptitle {text:"此高频脉冲速度为一秒",color:gold,bold:false,underlined:false,italic:false,strikethrough:false,obfuscated:false,extra:[{score:{name:"Blocks",objective:"Blocks"},color:green,bold:false,underlined:true,italic:false,strikethrough:false,obfuscated:false}]}
D2除/title命令的其它命令:
/execute @e[type=ArmorStand] ~ ~ ~ fill ~ ~1 ~ -43 6 461 minecraft:air
blockdata -49 4 454 {Command: blockdata -52 3 454 {Command: /summon FallingSand ~ ~1 ~ {Tile:152}}}
blockdata -49 4 453 {Command:"setblock -52 4 454 minecraft:redstone_block "}
/tp @e[type=ArmorStand] -43 5 461
/scoreboard players set time time 19
/say 测试完成!
/setblock -52 4 454 minecraft:air

楼主 乾坤轩辕1  发布于 2014-12-25 21:27:00 +0800 CST  
好吧,命令就讲到这,不过.......

楼主 乾坤轩辕1  发布于 2014-12-25 21:28:00 +0800 CST  
还没完!在此感谢所有帮过我的各位@Az蓝色轨迹@kongbaiyoo@sheriechen
和我们远在bbs,近在眼前的pm101大大






楼主 乾坤轩辕1  发布于 2014-12-25 21:34:00 +0800 CST  
还有




楼主 乾坤轩辕1  发布于 2014-12-25 21:37:00 +0800 CST  

楼主:乾坤轩辕1

字数:5335

发表时间:2014-12-26 03:57:00 +0800 CST

更新时间:2016-03-15 11:36:39 +0800 CST

评论数:250条评论

帖子来源:百度贴吧  访问原帖

 

热门帖子

随机列表

大家在看