当前位置: 我的世界 > 游戏攻略 > 正文

大神教你在1.13版本中用雪球实现不用蓄力的弓

小编:铅笔时间:2018-08-05 11:36回到游戏园首页

  今天小编为大家带来我的世界1.13命令方块教程,此次教大家用雪球实现不蓄力的弓,想学的玩家别错过下面的内容!

  引言

  在1.13中,execute store ... 取代了 stat,我一直在想,怎么样可以实现把nbt标签与命令的返回值联系起来呢?正巧,在维基上找到了这样的一段话:

  ...将返回值储存在目标坐标方块在标签路径的NBT标签上...

  卧槽,如此神奇?那么就来试一试。

  需要

  1个命令方块

  数据包里的函数

  指令

  循环型命令方块:

  function shoot:givedata

  复制代码

  函数 givedata.mcfunction

  #添加标签

  tag @a[nbt={Inventory:[{Slot:-106b,id:"minecraft:bow"}]}] add bow_player

  give @a[tag=bow_player,nbt={SelectedItem:{id:"minecraft:snowball",Count:1b}}] snowball 1

  execute at @a[tag=bow_player] run tag @e[type=minecraft:snowball,limit=1,distance=..2,tag=] add bow_snowball

  #生成箭

  execute at @e[tag=bow_snowball] run summon minecraft:arrow ~ ~1 ~ {Tags:["bow_arrow"],damage:4b,pickup:2b}

  #复制扔出雪球的 Motion

  execute store result entity @e[tag=bow_arrow,limit=1] Motion[0] double 0.01 run data get entity @e[tag=bow_snowball,limit=1] Motion[0] 100

  execute store result entity @e[tag=bow_arrow,limit=1] Motion[1] double 0.01 run data get entity @e[tag=bow_snowball,limit=1] Motion[1] 100

  execute store result entity @e[tag=bow_arrow,limit=1] Motion[2] double 0.01 run data get entity @e[tag=bow_snowball,limit=1] Motion[2] 100

  #添加新tag以防被再次选择

  tag @e[tag=bow_snowball] add bow_snowball_old

  tag @e[tag=bow_arrow] add bow_arrow_old

  tag @e[tag=bow_snowball] remove bow_snowball

  tag @e[tag=bow_arrow] remove bow_arrow

  tag @a[tag=bow_player] remove bow_player

  #清除雪球

  kill @e[type=minecraft:snowball,tag=bow_arrow_old]

  复制代码

  原理

  原理就是将雪球的Motion复制到弓箭上,使用

  execute store result entity @e[tag=bow_arrow,limit=1] Motion[0] double 0.01 run data get entity @e[tag=bow_snowball,limit=1] Motion[0] 100

  省略数组第一个元素以及第二个元素的复制命令,重复了

  复制代码这里要注意倍率中有0.01与100,因为Motion中的元素都是双精确浮点数(就是小数啦,现在还没搞清楚数据类型d与b)但一输出就变成整数了,这时这样可以取到2位的精度。

  其他就没什么好说的了

  使用说明以及因为我没有做好的原因

  将弓放到副手,左手拿一个普通的雪球(有nbt的话就会堆叠不到一起去)

  右键丢出雪球,雪球会被立即替换成箭,会有显示bug(好像发现了什么)

  箭会顺着雪球的轨迹走,直到落地或砸在生物上

  请勿往自己脚下砸,会有伤害的

  其他想说的

  发现了一个bug,但是估计报告了也不会修复

  如果在雪球的位置生成一个弓箭,弓箭还会是雪球的材质

  在写函数的时候,开启日志,这样可以看是哪里错了(正版在启动器的设置中)

  未在多人模式下进行测试

  Mojang真不用心,雪球和箭的飞行算法是一样的,阻力呢,牛顿的眼泪233

分享到:更多

游戏信息

我的世界
我的世界类型:休闲娱乐平台:PC,iOS,安卓电脑版下载
  • 游戏大礼包
  • 手游开测表