
第一段,准备工作
想要让末影龙主动攻击僵尸,首先得理解游戏机制,末影龙默认只攻击玩家和铁傀儡,不会理会其他生物,这意味着直接召唤它们只会各自游荡,玩家需要借助指令强行改变它们的行为,我推荐使用最新的版本1.20以上,因为指令系统更完善,支持实体内存修改,你先创建一个超平坦世界,方便观察,然后准备好命令方块和红石中继器,建议用循环命令方块配合高频时钟,这样能保证龙持续锁定目标,另外记得开启作弊权限,否则一切指令都无法生效。
第二段,核心指令解析
最直接的办法是让龙强制攻击僵尸,这里需要用到“/damage”指令,它能让指定实体对另一个实体造成伤害,但光有伤害还不够,龙需要主动追逐僵尸,因此我同时使用“/execute”让龙持续朝僵尸移动,具体指令为“/execute as @e[type=minecraft:ender_dragon,limit=1] at @s run /damage @e[type=minecraft:zombie,limit=1] 2 instant”,这条指令会每秒造成两点伤害,但龙不会转身追击,所以还得加上“/data merge”修改龙的AI记忆,比如“/data merge entity @e[type=minecraft:ender_dragon,limit=1] {Brain:{memories:{minecraft:attack_target:{value:[I;目标UUID的整数数组]}}}}”,你需要先通过“/data get entity @e[type=minecraft:zombie,limit=1,排序]”获取僵尸的UUID,再填入整数组,这样龙就会锁定该僵尸,疯狂追咬。
第三段,实战搭建步骤
先放一个命令方块设为循环并保持开启,输入“/summon minecraft:ender_dragon ~10 ~ ~”,再放一个命令方块召唤僵尸“/summon minecraft:zombie ~ ~ ~”,注意距离别太近以免龙直接撞死僵尸,接着在第三个命令方块里获取僵尸的UUID,用“/tag @e[type=minecraft:zombie,limit=1] add targetZombie”,然后第四个命令方块用“/execute as @e[type=minecraft:ender_dragon,limit=1] run data merge entity @s {Brain:{memories:{minecraft:attack_target:{value:[I;这里使用动态UUID]}}}}”,问题是UUID不能直接用指令获取,老玩家的技巧是先用“/execute store result score @e[type=minecraft:zombie,limit=1] uuidScore run data get entity @s UUID[0]”把UUID存到计分板,再用“/execute as @e[type=minecraft:ender_dragon,limit=1] run data merge”配合计分板,但这非常繁琐,我推荐更简单的办法,用“/team”让双方敌对,把僵尸加入一个队伍,龙加入另一个队伍,然后修改队伍规则,比如“/team add zombieTeam”,“/team join zombieTeam @e[type=minecraft:zombie]”,“/team add dragonTeam”,“/team join dragonTeam @e[type=minecraft:ender_dragon]”,再设置“/team modify dragonTeam collisionRule pushOtherTeams”,“/team modify zombieTeam collisionRule pushOtherTeams”,最后用“/team modify dragonTeam friendlyFire true”,这样龙和僵尸会互相推撞,但依然不会主动攻击,所以还得结合之前的“/damage”指令循环,其实更稳定的是用“/execute as @e[type=minecraft:ender_dragon] at @s run effect give @e[type=minecraft:zombie,limit=1] minecraft:instant_damage”,这会让僵尸不断扣血,但龙依然没有追踪行为,因此我建议干脆放弃纯指令模拟,改用命令方块集群模拟龙攻击的动作,比如让龙传送至僵尸头顶再释放火焰弹,不过这就偏离了“龙攻击僵尸”的本意,作为资深玩家,我最终选择用“/data modify”结合计分板系统。
第四段,简化版懒人方案
如果你不想研究复杂的UUID和记忆体,有个取巧的办法,利用游戏自带的铁傀儡,你让龙先攻击铁傀儡,然后让铁傀儡攻击僵尸,但这不是龙直接攻击,还有一种方法是给僵尸施加“发光”效果,然后让龙感知到它,实际上末影龙通过“attack_target”来决定目标,你完全可以用“/data get”手动查看到僵尸的UUID,然后把那串数字抄下来,再写到“/data merge”指令中,比如“/data merge entity @e[type=minecraft:ender_dragon,limit=1] {Brain:{memories:{minecraft:attack_target:{value:[I;123456789,987654321,-123456789,0]}}}}”,注意UUID是四个整数,你需要对应好,然后龙就会扭头冲向僵尸,之后配合“/damage”指令让龙每次碰撞时造成伤害,因为末影龙的物理碰撞本身就有伤害,所以只要它追上去,僵尸就会掉血,你只需要在循环命令方块中每隔一秒执行一次“/execute as @e[type=minecraft:ender_dragon] at @s run damage @e[type=minecraft:zombie,limit=1] 2 instant”,确保僵尸在龙附近时持续受到伤害,同时为了防止龙中途丢失目标,再补一个命令方块“/execute as @e[type=minecraft:ender_dragon] at @s run data merge entity @s {Brain:{memories:{minecraft:attack_target:{value:[I;123456789,987654321,-123456789,0]}}}}”每五秒重设一次目标,这样就能稳定看到巨龙追杀僵尸的场面了。
第五段,红石时钟与优化
为了让指令持续生效,你需要一个红石时钟,最简单的就是用两个命令方块互相连接,一个延时中继器,不过更稳定的是使用“/gamerule randomTickSpeed 0”关闭随机刻,然后用高频脉冲,比如一个红石火把加中继器组成时钟,频率控制在每秒20次,然后让循环命令方块始终保持激活,注意不要过度加载服务器,否则会卡顿,我习惯把多个指令合并到一个命令方块里,用“/execute”的链式写法,比如“/execute as @e[type=minecraft:ender_dragon] at @s run damage @e[type=minecraft:zombie,limit=1] 2 instant; /execute as @e[type=minecraft:ender_dragon] at @s run data merge entity @s {Brain:{memories:{minecraft:attack_target:{value:[I;123456789,987654321,-123456789,0]}}}}”,但分号无效,只能用多个命令方块串联成链,我推荐用三个命令方块排成一排,第一个设置成循环,第二个设置成链式,第三个也设置成链式,都保持开启,然后从第一个出发,这样每 tick 执行一次,效率很高,最后把僵尸放在龙附近五格距离内,龙就会立即转头扑过去,你还可以用“/tag”给僵尸打上标记,方便随时切换目标,比如“/tag @e[type=minecraft:zombie,limit=1] add target”后,再用“@e[tag=target]”代替UUID,这样更灵活。
第六段,趣味扩展与注意事项
这个指令系统熟练后,你可以玩出很多花样,比如让龙同时攻击多个僵尸,只需要把limit=1改为limit=10,或者让龙攻击爬行者,这样会引爆,非常壮观,但注意末影龙的碰撞体积很大,容易把僵尸推到地下,建议把地面铺上防掉落方块,另外千万记得在指令里加上排序参数,比如“@e[type=minecraft:zombie,limit=1,sort=nearest]”,这样龙会攻击最近的僵尸,否则可能乱选目标,还有一点,末影龙如果被打败会生成折跃门,但这里我们不关心这个,为了让场景更真实,你可以用“/effect give @e[type=minecraft:ender_dragon] minecraft:strength 9999 255”增加攻击力,让僵尸瞬间被秒,或者用“/attribute @e[type=minecraft:ender_dragon] minecraft:follow_range base set 100”扩大追踪距离,龙可能从很远的地方飞过来,另外如果你想彻底废除龙的其他行为,比如只让它攻击僵尸而忽略你,可以用“/team join dragonTeam @e[type=minecraft:ender_dragon]”而后修改队伍对玩家的友善度,这样你就不会被误伤,最后提醒一下,这些指令在基岩版和Java版有差异,本文基于Java版1.20,基岩版没有“/data merge”和“/damage”,需要用“/execute”变通,但核心思路一样。
第七段,全自动观赏系统的搭建
如果你只是想看一场龙与僵尸的搏斗,可以做一个全自动系统,先放置一个投掷器每五分钟生成一只僵尸,再用命令方块循环重置龙的目标,配合红石灯显示战斗状态,甚至可以用记分板统计龙击杀僵尸的数量,我做过一个这样的地图,玩家站在玻璃墙后面观战,看着巨龙吐火球、甩尾,僵尸被撞飞,非常震撼,具体做法是在生成僵尸的瞬间用“/data merge”将僵尸的生命值调高,比如“/data merge entity @e[type=minecraft:zombie,sort=nearest,limit=1] {Health:100.0f}”,这样龙需要多次攻击才能杀死它,战斗时间更长,然后加上一个命令方块检测僵尸是否死亡,死亡后再生成新的,同时重置龙的攻击目标,你还可以让僵尸穿上钻石甲,或者给龙添加抗性提升,防止它被僵尸的反伤机制搞死,不过最关键的还是那个“Brain”记忆体,如果指令写错,龙会发呆,所以建议先在创造模式单机测试,用“/data get”查看龙的当前目标和记忆,确保整数数组正确,再投入实战。
相关文章