要生成一个卫道士,并让他追杀在他范围内的玩家,可以使用以下指令:

  1. 首先,生成一个卫道士:
/summon minecraft:pillager ~ ~ ~ {PatrollingGrounds:[[-16,-1,-16],[16,1,16]]}

这会在当前位置生成一个卫道士,并将他的巡逻范围设置为一个16x16的区域。

  1. 接下来,我们需要为卫道士添加一个循环执行的指令:
/execute as @e[type=pillager,tag=!hunt] run function hunt:main

这会在每个游戏刻(每20个游戏刻为1秒)执行一次名为"main"的函数。

  1. 创建一个函数文件(hunt.mcfunction),并将以下指令添加到该文件中:
# 定义主函数
main
  # 检查玩家是否在卫道士的追逐范围内
  execute as @e[type=pillager,tag=!hunt] at @s run execute as @a[distance=..16] run function hunt:chase
  execute as @e[type=pillager,tag=!hunt] at @s run execute as @a[distance=..4,nbt={Pose:{Crouching:1b}}] run function hunt:crouch
  1. 创建另一个函数文件(chase.mcfunction),并将以下指令添加到该文件中:
# 定义追逐函数
chase
  # 获取最近的玩家
  execute as @s at @s run data modify storage hunt:target UUID set from entity @a[distance=..16,limit=1,sort=nearest] UUID
  # 设置卫道士的目标为最近的玩家
  execute as @s at @s run data modify entity @s Brain.memories.minecraft:nearest_visible_target_uuid set from storage hunt:target UUID
  # 设置卫道士的状态为追逐
  execute as @s at @s run data modify entity @s Brain.memories.minecraft:has_visible_target_time_left set value 200
  1. 创建另一个函数文件(crouch.mcfunction),并将以下指令添加到该文件中:
# 定义蹲下函数
crouch
  # 获取最近的蹲下玩家
  execute as @s at @s run data modify storage hunt:target UUID set from entity @a[distance=..4,nbt={Pose:{Crouching:1b}},limit=1,sort=nearest] UUID
  # 设置卫道士的目标为最近的蹲下玩家
  execute as @s at @s run data modify entity @s Brain.memories.minecraft:nearest_visible_target_uuid set from storage hunt:target UUID
  # 设置卫道士的状态为追逐
  execute as @s at @s run data modify entity @s Brain.memories.minecraft:has_visible_target_time_left set value 200

这样,你就创建了一个卫道士,他会追杀在他的范围内的没有蹲下的玩家,并且也会追杀在4格内蹲下了的玩家。请确保在运行这些指令之前,已经安装了命令方块或者启用了管理员权限。


原文地址: http://www.cveoy.top/t/topic/iOdK 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录