村民可以攻击吗?答案当然是否定的。就算村民发射的烟花火箭爆炸会有伤害,这也不是村民本身的攻击。
在Java版,如果你能精准地把握住时间,将一个弹射物(如箭)的UUID改成一个村民的UUID,确实有可能会使得村民“攻击”其他生物。那在基岩版呢?
Mojang虽然没有给我们操控NBT来修改UUID的方式,但却给了我们一条指令:/damage
/damage
作用:对指定实体造成伤害
存在版本:基岩版1.18.10-今
需要权限等级:基岩版-1
需要作弊:是
格式:
/damage <目标实体><伤害大小:非负整数>[伤害类型]
/damage <目标实体><伤害大小:非负整数><伤害类型> entity <伤害来源>
你可以指定『目标实体』和『伤害大小』参数,来简单的对指定实体造成伤害。如果还指定了『伤害类型』和『伤害来源』参数,就可以确定是谁对谁造成了伤害。比如下面的指令:
/damage @s 20 entity_attack entity @s
这将会使你自己对你自己造成20点的实体攻击类型伤害,然后你就会收到这么一条消息:
你自己的游戏名被 你自己的游戏名杀死了
我杀我自己?
虽然你可以不指定伤害类型来造成伤害,但这样子就会导致你死亡时,只会显示出如下信息:
xxxxxx 死了
所以我们最好指定伤害类型。那有哪些伤害类型呢?我会将截止1.19.10版本的伤害类型列表放到本章末尾。
我们还可以指定『伤害来源』,来指定到底是谁造成了伤害。比如在上面的例子中,我们就指定了伤害来源为自己,这样子就实现了『自己』对『自己』造成了伤害。
伤害来源这个参数有很多奇妙的用途,比如下面的指令:
/damage @e[type=iron_golem] 1 entity_attack entity @e[type=villager,c=1]
这将会使得距离执行地点最近的村民对所有铁傀儡造成1点的伤害,然后你就会看见......
『妈呀!铁傀儡杀村民啦!!!』
如你所见,伤害来源不仅仅可以使得死亡信息发生改变,还可以转嫁生物仇恨,使得铁傀儡亲手杀死了村民。
但伤害来源的用途不止这么简单。假设这里有一只猪,它静止在原地。
我们运行下面的指令对它造成伤害,仔细观察猪受到攻击的情况:
/damage @e[type=pig] 1 entity_attack
猪→ 红猪→ ε=ε=猪(跑)→猪