
指令原理概述。
很多玩家想让末影龙主动攻击僵尸但原版龙只追玩家,这时就需要用指令来模拟攻击效果。我的思路是利用命令方块持续检测龙身边一定范围内的僵尸,然后给他们施加瞬间伤害效果,同时配上龙息粒子,看起来就像龙在喷吐攻击。这个方案不需要修改龙本身的AI,稳定且通用,适合所有版本。你可能会问为啥不用直接给龙加攻击目标,因为末影龙的NBT里没有可设置的攻击目标标签,除非用模改,但指令玩法就得靠原版机制来巧妙实现。
具体指令代码与设置。
首先召唤一条龙,指令是/summon ender_dragon ~ ~ ~,这里注意要让龙停留在固定区域,可以用/noai给它关掉自动飞行。接着在命令方块里放核心指令:/execute as @e[type=ender_dragon] at @s run effect @e[type=zombie,distance=..4] instant_damage 1 1。这条指令会以每条龙为中心,对4格内的僵尸施加一级瞬间伤害,每次扣3点血,频率取决于命令方块是否循环。为了让效果更逼真,再放一个命令方块执行/particle dragon_breath ~ ~ ~ 0.5 0.5 0.5 0.1 20 normal,同样以龙为中心,这样就会有紫色龙息粒子喷出。记得把两个命令方块都设为循环且保持开启,再给它一个红石时钟或者直接放拉杆。注意instant_damage效果对僵尸产生的是魔法伤害,无视护甲,普通僵尸两下就死。
实战演示:如何让龙自动巡逻。
如果你只想让龙攻击一定范围内的僵尸,可以配合/tp命令让龙缓慢飘动。比如在另一个命令方块里写/execute as @e[type=zombie] at @s run tp @e[type=ender_dragon] ~ ~1 ~,这样龙会不断定位到最近的僵尸头顶,然后触发伤害和粒子。但要注意龙会乱串,最好给它限定范围,用/scoreboard标记出攻击区域。更简单的用法是让龙守家:在自家基地上空召唤一条龙,用链条命令方块每隔一秒执行一次上述效果指令,然后你在下面放出僵尸刷怪笼,就能看到龙把刚冒头的僵尸喷成筛子。我自己在生存服务器里就这样搞过,朋友直呼离谱,说这比铁傀儡高效多了。
注意事项与优化技巧。
第一点,instant_damage效果对同一僵尸每秒只能生效一次,因为瞬间伤害有冷却,所以没必要把频率调太高。第二点,粒子指令最好单独放在脉冲命令方块里,配合红石中继器每0.5秒触发一次,免得屏幕太花。第三点,如果你用的版本是1.16以上,可以用/damage指令代替效果,那样更直接,比如/execute as @e[type=ender_dragon] at @s run damage @e[type=zombie,distance=..4] 3 entity_attack dragon,这样伤害来源显示为龙,更加真实。第四点,要注意命令方块的数量,建议使用函数文件来降低卡顿,毕竟一条龙每秒要检测周围实体,太多僵尸就会掉帧。老玩家都知道用/entitydata修改龙的运动方式,比如设置其Motion为0,它就不乱飞了。
进阶玩法:结合红石与计分板。
如果你想让龙只攻击特定僵尸,比如被玩家标记的,可以用计分板先给僵尸打分。命令方块里写/scoreboard players tag @e[type=zombie] add target,然后伤害指令改为effect @e[type=zombie,tag=target] instant_damage。还可以用红石比较器监测龙的生命值,当龙受伤时触发更多粒子效果,营造战斗氛围。有些高手甚至用指令让龙吐出火球,但那就涉及/summon fireball了,需要更细致的NBT编辑。不过对于大多数玩家,上面这套“龙息僵尸”指令已经足够在服务器里装逼了。最后提醒一句,使用这些指令前记得备份世界,别把龙刷到家里把建筑拆了,末影龙的碰撞伤害可不是闹着玩的,它们撞到方块也会爆炸,最好用屏障方块围个区域。
相关文章