本帖最后由 末地探险者 于 2020-4-3 21:42 编辑 
复制代码
照理来说本function生成的箭即是十字准星指向的位置
但是总有误差,不知道怎么分析误差来源(经测试,那个盔甲架y小于0照样工作!?,反正就是朝向地面也可以)
(已经看过https://www.mcbbs.net/thread-919112-1-1.html和https://www.mcbbs.net/thread-917613-1-1.html)
只是想要更简单的解决方案
 
 
照理来说本function生成的箭即是十字准星指向的位置
但是总有误差,不知道怎么分析误差来源(经测试,那个盔甲架y小于0照样工作!?,反正就是朝向地面也可以)
(已经看过https://www.mcbbs.net/thread-919112-1-1.html和https://www.mcbbs.net/thread-917613-1-1.html)
只是想要更简单的解决方案

 
- summon armor_stand 0.0 0.0 0.0 {Tags:["track_work"],Rotation:[0.0f,0.0f],NoGravity:true,Invisible:true,Marker:true}
 
- execute as @p anchored eyes at @p run summon arrow ^ ^ ^ {Motion:[0.0,0.0,0.0],NoGravity:true,pickup:false,Silent:true,damage:-1.0,Tags:["track_sel"]}
 
- execute as @e[tag=track_work] at @s rotated as @p anchored feet run tp ^ ^ ^10
 
- execute as @e[tag=track_sel] store result entity @s Motion[0] double 1 run data get entity @e[tag=track_work,limit=1] Pos[0]
 
- execute as @e[tag=track_sel] store result entity @s Motion[1] double 1 run data get entity @e[tag=track_work,limit=1] Pos[1]
 
- execute as @e[tag=track_sel] store result entity @s Motion[2] double 1 run data get entity @e[tag=track_work,limit=1] Pos[2]
 
- tellraw @a {"entity":"@e[tag=track_sel]","nbt":"Motion[0]"} 
 
- kill @e[tag=track_work]
 
照理来说本function生成的箭即是十字准星指向的位置
但是总有误差,不知道怎么分析误差来源(经测试,那个盔甲架y小于0照样工作!?,反正就是朝向地面也可以)
(已经看过https://www.mcbbs.net/thread-919112-1-1.html和https://www.mcbbs.net/thread-917613-1-1.html)
只是想要更简单的解决方案
 
2021.12 数据,可能有更多内容
本帖最后由 末地探险者 于 2020-4-3 21:42 编辑代码:
 
- summon armor_stand 0.0 0.0 0.0 {Tags:["track_work"],Rotation:[0.0f,0.0f],NoGravity:true,Invisible:true,Marker:true}
 
- execute as @p anchored eyes at @p run summon arrow ^ ^ ^ {Motion:[0.0,0.0,0.0],NoGravity:true,pickup:false,Silent:true,damage:-1.0,Tags:["track_sel"]}
 
- execute as @e[tag=track_work] at @s rotated as @p anchored feet run tp ^ ^ ^10
 
- execute as @e[tag=track_sel] store result entity @s Motion[0] double 1 run data get entity @e[tag=track_work,limit=1] Pos[0]
 
- execute as @e[tag=track_sel] store result entity @s Motion[1] double 1 run data get entity @e[tag=track_work,limit=1] Pos[1]
 
- execute as @e[tag=track_sel] store result entity @s Motion[2] double 1 run data get entity @e[tag=track_work,limit=1] Pos[2]
 
- tellraw @a {"entity":"@e[tag=track_sel]","nbt":"Motion[0]"} 
 
- kill @e[tag=track_work]
 
照理来说本function生成的箭即是十字准星指向的位置
但是总有误差,不知道怎么分析误差来源(经测试,那个盔甲架y小于0照样工作!?,反正就是朝向地面也可以)
(已经看过https://www.mcbbs.net/thread-919112-1-1.html和https://www.mcbbs.net/thread-917613-1-1.html)
只是想要更简单的解决方案

本帖最后由 (=°ω°)丿 于 2020-4-3 21:13 编辑 
我觉得可能是 0.01 的问题,execute store 的命令返回值是整数。
【CBL|SPG】[1.14.4] 命令返回值列表
https://www.mcbbs.net/thread-808124-1-1.html
还有一件事,@人要在后面加空格。
代码:
- execute as @e[tag=track_sel] store result entity @s Motion[0] double 0.01 run data get entity @e[tag=track_work,limit=1] Pos[0]
【CBL|SPG】[1.14.4] 命令返回值列表
https://www.mcbbs.net/thread-808124-1-1.html
还有一件事,@人要在后面加空格。
 本帖最后由 末地探险者 于 2020-4-3 21:17 编辑 
改了改了
我0.01只是为了放慢速度截图看一下
原来就是1你可以看一下图
如果是整数的话emmm我看看
@(=°ω°)丿
emmm这个返回值指的是execute成功与否
store是照样工作的
(参见小豆的数学库)
(=°ω°)丿 发表于 2020-4-3 21:07
我觉得可能是 0.01 的问题,execute store 的命令返回值是整数。
【CBL|SPG】[1.14.4] 命令返回值列表
http ...
改了改了
我0.01只是为了放慢速度截图看一下
原来就是1你可以看一下图
如果是整数的话emmm我看看
@(=°ω°)丿
emmm这个返回值指的是execute成功与否
store是照样工作的
(参见小豆的数学库)
试试?
代码:
- summon armor_stand 0.0 0.0 0.0 {Tags:["track_work"],Rotation:[0.0f,0.0f],NoGravity:true,Invisible:true,Marker:true}
 
- execute as @p at @s anchored eyes run summon arrow ^ ^ ^ {Motion:[0.0,0.0,0.0],NoGravity:true,pickup:false,Silent:true,damage:-1.0,Tags:["track_sel"]}
 
- execute as @e[tag=track_work] at @s rotated as @p anchored feet run tp ^ ^ ^10
 
- execute as @e[tag=track_sel] run data modify entity @s Motion set from entity @e[tag=track_work,limit=1] Pos
 
- tellraw @a {"entity":"@e[tag=track_sel]","nbt":"Motion[0]"}
 
- kill @e[tag=track_work]
(=°ω°)丿 发表于 2020-4-3 21:07
我觉得可能是 0.01 的问题,execute store 的命令返回值是整数。
【CBL|SPG】[1.14.4] 命令返回值列表
http ...
 
这是小豆的数学库的三角函数,里面用的就不是整数
 本帖最后由 末地探险者 于 2020-4-3 21:28 编辑 
怎么说呢
非常妙!!准确度非常高
简直媲美K_bai的视线追踪
我参悟您的教程居然没有想到直接复制整个数组
话说难道用execute 比使用 data 会降精确度吗
怎么说呢
非常妙!!准确度非常高
简直媲美K_bai的视线追踪
我参悟您的教程居然没有想到直接复制整个数组
话说难道用execute 比使用 data 会降精确度吗
(=°ω°)丿 发表于 2020-4-5 08:54
举个例子,假设 Pos[0] 的值为 123.45d,命令的具体执行过程是这样的:
1. 运行命令 data get entity @s P ...
但是换成double 1依然会出现精度缺失的问题
可以说完全比不上直接复制