我的世界精确到千分之三速度检测器教程及下载

时间:2018-02-14 来源:88130安卓下载 作者:佚名

  我的世界精确到千分之三速度检测器教程及下载。今天给大家分享的这个速度探测仪是可以精确到千分位的哦!可现实多么利好的了,那下面就给大家详细的介绍一下该探测仪吧!下面还有存档别忘了哦!

  作品全图:

  那么中间那条钻石块铺成的通道就是检测速度的地方,首先建立一个关于时间的SCB——time,再分别设置两个假名:start和end, 就不多说了,然后通过

  /stats block 19 2 7 set QueryResult start time

  /stats block 19 2 6 set QueryResult start time

  /stats block 0 1 6 set QueryResult end time

  /stats block 0 1 7 set QueryResult end time

  即钻石块跑道开头和结尾处的两条金块下的CB

  /time query gametime数据的值进行连接,注意,我这里用的是gametime而非daytime是因为daytime可以被/time set/add 指令所影响,从而影响精度,而gametime无法被指令修改,比较牢靠

  那么起点和终点的时间都被我们导入了SCB,如下图

  侧边栏里显示了我在起点和终点时据创建这个存档的时间,即328447(起点处)与328485(终点处),那么接下的事就是计算了,也就是说,接下来的CB都是进行以下运算:

  end-start的值——因为S=VT,S已预先设定为20Blocks,而这里的时间都是以GT(GameTick的简称,下同)为单位的,即1/20s 恒等变换一下可得:

  V=(20*20)/(end-start)

  那么就要把他转换成CB语言

  我的世界精确到千分之三速度检测器教程及下载。今天给大家分享的这个速度探测仪是可以精确到千分位的哦!可现实多么利好的了,那下面就给大家详细的介绍一下该探测仪吧!下面还有存档别忘了哦!

  作品全图:

  那么中间那条钻石块铺成的通道就是检测速度的地方,首先建立一个关于时间的SCB——time,再分别设置两个假名:start和end, 就不多说了,然后通过

  /stats block 19 2 7 set QueryResult start time

  /stats block 19 2 6 set QueryResult start time

  /stats block 0 1 6 set QueryResult end time

  /stats block 0 1 7 set QueryResult end time

  即钻石块跑道开头和结尾处的两条金块下的CB

  /time query gametime数据的值进行连接,注意,我这里用的是gametime而非daytime是因为daytime可以被/time set/add 指令所影响,从而影响精度,而gametime无法被指令修改,比较牢靠

  那么起点和终点的时间都被我们导入了SCB,如下图

  侧边栏里显示了我在起点和终点时据创建这个存档的时间,即328447(起点处)与328485(终点处),那么接下的事就是计算了,也就是说,接下来的CB都是进行以下运算:

  end-start的值——因为S=VT,S已预先设定为20Blocks,而这里的时间都是以GT(GameTick的简称,下同)为单位的,即1/20s 恒等变换一下可得:

  V=(20*20)/(end-start)

  那么就要把他转换成CB语言

  首先end-start:

  /scoreboard players operation end time -= start time

  然后由于SCB只能储存整数,所以接下来的事就是由低精转化成高精,那么就需要移位:

  /scoreboard players operation S S /= end time

  注意,这里的S值是4000000,因为这样就可以把原本被系统忽略的值通过把商*10000倍,为取余做铺垫

  /scoreboard players operation S S %= 100 100

  取余,注意,这里的SCB:100其实值是10000,即求出S/(end-start)除以10000的余数,这个余数即为值的小数点后4位,例如:

  商:2.1234

  *10000:

  21234

  %10000

  1234

  得到了小数位以后,我们还要算出他的整数位,这很简单,再除一遍就行了:

  /scoreboard players operation S1 S /= end time

  这回S1的值就是400,那么就得到了整数位

  接下来就是四舍五入的部分了,因为我将整数与小数系统分开,所以只要判断最后一位小数,即万分位是否大于0

  先单独将万分位剥离判定:

  /scoreboard players operation S2 S = S S

  将值导入另一假名

  /scoreboard players operation S2 S %= 10 100

  然后取余,得到其万分位

  那么分为两种情况讨论:

  1.万分位大于等于5小于10

  2.万分位大于等于0小于5

  1情况的命令如下:

  /scoreboard players test S2 S 5 9

  先判定是否在区间内

  /scoreboard players operation S S /= 10 100

  如果在就将其值除以10

  /scoreboard players add S S 1

  并在千分位+1

  2情况命令如下:

  /scoreboard players test S2 S 0 4

  依旧判定不多说

  /scoreboard players operation S S /= 10 100

  这次除以10,但是并不加分

  然后最后输出+清零系统:

  由于我算法的特殊性,所有小数值含零,也就是小数数列有效数字<3的值会造成误读即:

  形如00X或00XX的小数值会被系统处理为XX或X,造成系统错误

  为了纠正这种错误,我们另需一个系统:

  /scoreboard players operation @p S = S S

  将S假名的值导入玩家利于判定

  接下来是带有穷举概念的三个输出:

  /execute @p[score_S_min=100,score_S=999] ~ ~ ~ /tellraw @p [{text:"nnn你的速度是(四舍五入,保留三位后):n"},{score:{name:"S1",objective:"S"}},{text:"."},{score:{name:"S",objective:"S"}},{text:"M/S"}]

  /execute @p[score_S_min=10,score_S=99] ~ ~ ~ /tellraw @p [{text:"nnn你的速度是(四舍五入,保留三位后):n"},{score:{name:"S1",objective:"S"}},{text:".0"},{score:{name:"S",objective:"S"}},{text:"M/S"}]

  /execute @p[score_S_min=0,score_S=9] ~ ~ ~ /tellraw @p [{text:"nnn你的速度是(四舍五入,保留三位后):n"},{score:{name:"S1",objective:"S"}},{text:".00"},{score:{name:"S",objective:"S"}},{text:"M/S"}]

  即对XXX,0XX,00X的三种值进行手动补位,输出

  最后数值归零:

  /scoreboard players set S S 4000000

  /scoreboard players set S1 S 400

  /scoreboard players set S2 S 0

  /scoreboard players set @p S 0

  系统完成

  网盘下载密码:df4o

>>>>>网盘:点击下载<<<<<

>>>>>本地:点击下载<<<<<

  PS:在此非常感谢我的世界玩家乾坤轩辕1的分享。

  以上就是我的世界精确到千分之三速度检测器教程及下载。更多精彩尽在游戏园我的世界专区。

  热门攻略推荐:

  我的世界1.8竖半砖材质详解(含存档)

  我的世界锁龙阁建筑介绍分享(含建筑存档)

  我的世界windows10测试版获取方法

  我的世界1.8.8下载开放 1.9第一个快照来袭

  我的世界Windows10Beta版准备就绪

热门搜索

手游排行榜

  • 最新排行
  • 最热排行
  • 评分最高