Time__sg
本帖最后由 Time__sg 于 2019-3-8 18:17 编辑

如题,1.12.2 怎么用execute和summon召唤出药水箭?

Chelover_C60
请详细说明一下你的意图,要execute哪里生成药水箭
并且附上版本,谢谢

dsdgwsfs
  1. /execute @e[name=实体名称] ~ ~ ~ /summon minecraft:arrow ~ ~1 ~ {Motion:[0.0,0.0,0.0],damage:2,player:1b,CustomPotionEffects:[{Id:5,Amplifier:0,Duration:600}],Rotation:[0f]}
复制代码
在实体上召唤一个力量的药水箭

Time__sg
dsdgwsfs 发表于 2019-3-8 14:13
在实体上召唤一个力量的药水箭

如果execute探测的是药水箭呢?
并且怎样summon出药水箭

Time__sg
如果execute探测的是药水箭呢?
并且怎样summon出药水箭

Time__sg
dsdgwsfs 发表于 2019-3-8 14:13
在实体上召唤一个力量的药水箭

如果execute探测的是药水箭呢?
并且怎样summon出药水箭

Time__sg
CHElover_C60 发表于 2019-3-7 23:04
请详细说明一下你的意图,要execute哪里生成药水箭
并且附上版本,谢谢

1.12.2 不是生成药水箭,是用execute探测药水箭

Chelover_C60
本帖最后由 CHElover_C60 于 2019-3-8 21:28 编辑
Time__sg 发表于 2019-3-8 18:27
1.12.2 不是生成药水箭,是用execute探测药水箭

生成系统预设的药水箭需要用到Potion标签,Potion后接药水名称(不是药水效果名称)
  1. /summon arrow ~ ~1 ~ {pickup:1,Potion:strong_harming}
复制代码
其中pickup:1表示玩家可以捡起这支箭
药水名称见wiki此页面
生成自定义的药水需要用到CustomPotionEffects这个标签,标签后跟多个标签组,每组标签含有以下内容
Id:药水效果的数字ID
Amplifier:药水效果的等级-1,比如要5级的效果,就填4。若不填,默认为1级效果
Duration:药水效果的持续时间(单位:游戏刻)(实测持续时间远小于预期时间,原因不明)
  1. summon arrow ~ ~1 ~ {pickup:1,CustomPotionEffects:[{Id:1,Amplifier:0,Duration:10000},{Id:8,Amplifier:0,Duration:10000}]}
复制代码
药水效果数字ID见wiki此页面
药水箭的检测
注意,在1.12版本中,用于检测实体的不是execute指令,而是testfor指令,并且在1.12中不支持在目标选择器中使用nbt,因此需要借助计分板或者标签。这里我使用标签
示例:检查是否存在瞬间伤害2的药箭
  1. scoreboard players tag @e[type=arrow] add example {Potion:"minecraft:strong_harming"}
复制代码
  1. testfor @e[tag=example]
复制代码