下面小编为大家带来我的世界单实体追踪导弹制作教程,想学的玩家别错过了!
原本在17w50a版本下就想好了一个用实体面向移动的方法做的追踪导弹,算法什么的全推好了一直没时间做,直到新快照发布之后一看新添加的这个facing...太强大了,白推那么多算法了...
新版本强大的指令省去了实体,相比以前一个导弹带着一堆as一起飞的场景,新版本的效率不知道要高了多少......
效果图:(没错这次挨打的还是村民)
原理讲解:
scoreboard objectives add click minecraft.used:minecraft.carrot_on_a_stick
首先添加名为click的计分板探测萝卜钓竿右键,用以触发
(以下高频部分)
execute if entity @e[tag=target] at @a[scores={click=1}] run summon area_effect_cloud ~ ~ ~ {Duration:2100000000,Tags:["missile"]}
探测右键萝卜钓竿的玩家并生成名为missile的药水云。貌似新版本药水云没法用CustomName,只能扔个tag上去了
execute at @e[type=area_effect_cloud,tag=missile] run particle flame ~ ~ ~ 0 0 0 1 0
火花粒子特效
execute as @e[type=area_effect_cloud,tag=missile] at @s positioned ~ ~-1.62 ~ as @e[distance=..0.5,tag=target] run effect give @s instant_damage 1 2
execute as @e[type=area_effect_cloud,tag=missile] at @s positioned ~ ~-1.62 ~ if entity @e[distance=..0.5,tag=target] run kill @s
如果导弹撞上了目标,那么给目标顺伤并清掉药水云。因为导弹是朝着目标的眼睛飞去的(见下一条指令),而实体的坐标位置在脚上,所以要将y坐标减去1.62探测
execute as @e[type=area_effect_cloud,tag=missile] at @s facing entity @e[limit=1,sort=nearest,tag=target] eyes run tp @s ^ ^ ^0.3
将药水云向着目标眼睛方向tp0.3格。facing entity (eyes|feet)用于在命令执行时视为执行者朝向目标实体的眼部或脚步(但并不是真正转过去),配合局部坐标使用有很神奇的效果
execute as @e[type=area_effect_cloud,tag=missile] unless entity @e[tag=target] run kill @s
如果找不到任何目标,就清掉导弹
scoreboard players set @a click 0
计分板清零
然后把需要追踪的实体丢上一个target标签(上图为村民)就行了