村民可以攻击吗?答案当然是否定的。就算村民发射的烟花火箭爆炸会有伤害,这也不是村民本身的攻击。
在java版,如果你能精准地把握住时间,将一个弹射物(如箭)的uuid改成一个村民的uuid,确实有可能会使得村民“攻击”其他生物。那在基岩版呢?
mojang虽然没有给我们操控nbt来修改uuid的方式,但却给了我们一条指令:\/damage
\/damage
作用:对指定实体造成伤害
存在版本:基岩版1.18.10-今
需要权限等级:基岩版-1
需要作弊:是
格式:
\/damage <目标实体><伤害大小:非负整数>[伤害类型]
\/damage <目标实体><伤害大小:非负整数><伤害类型> entity <伤害来源>
你可以指定『目标实体』和『伤害大小』参数,来简单的对指定实体造成伤害。如果还指定了『伤害类型』和『伤害来源』参数,就可以确定是谁对谁造成了伤害。比如下面的指令:
\/damage 20 entity_attack entity
这将会使你自己对你自己造成20点的实体攻击类型伤害,然后你就会收到这么一条消息:
你自己的游戏名被 你自己的游戏名杀死了
我杀我自己?
虽然你可以不指定伤害类型来造成伤害,但这样子就会导致你死亡时,只会显示出如下信息:
xxxxxx 死了zuqi.org 葡萄小说网
所以我们最好指定伤害类型。那有哪些伤害类型呢?我会将截止1.19.10版本的伤害类型列表放到本章末尾。
我们还可以指定『伤害来源』,来指定到底是谁造成了伤害。比如在上面的例子中,我们就指定了伤害来源为自己,这样子就实现了『自己』对『自己』造成了伤害。
伤害来源这个参数有很多奇妙的用途,比如下面的指令:
\/damage [type=iron_golem] 1 entity_attack entity [type=viger,c=1]
这将会使得距离执行地点最近的村民对所有铁傀儡造成1点的伤害,然后你就会看见......
『妈呀!铁傀儡杀村民啦!!!』
如你所见,伤害来源不仅仅可以使得死亡信息发生改变,还可以转嫁生物仇恨,使得铁傀儡亲手杀死了村民。
但伤害来源的用途不止这么简单。假设这里有一只猪,它静止在原地。
我们运行下面的指令对它造成伤害,仔细观察猪受到攻击的情况:
\/damage [type=pig] 1 entity_attack
猪→ 红猪→ e=e=猪(跑)→猪
你会发现,猪仅仅受到了攻击,然后开始四处乱跑而已。让我们等一下它跑完,然后运行下面的指令再次造成伤害:\/damage [type=pig] 1 entity_attack entity
猪→ e=红猪(被击退)→e=e=猪(跑)→猪
你会发现,猪不仅仅受到了攻击,还向一个方向退了几步。
通过上面的实验,你会发现:指定『伤害来源』参数还可以使得攻击有一定的方向。那么这个方向是怎么计算出来的呢?
██████████民→██
██████████████
█████←猪███████
██████████████
我们来看看上述网格,箭头代表着实体的朝向。让我们尝试指定村民对猪造成伤害:
\/damage [type=pig] 1 entity_attack entity [type=viger,c=1]
然后你就会发现猪被击退向了远离村民的方向:
██████████民→██
██████████████
██████████████
████←猪████████
这说明了什么?这说明了,指定『伤害来源』后,造成的攻击会具有方向,而这个方向和指定的攻击者向着被攻击者的方向是一致的。
但是需要注意,这个攻击方向的计算是2维的,并不是3维的。
什么意思呢?也就是说,攻击方向的计算不会考虑到两者的y坐标,仅仅会通过两者的xz坐标计算得出。所以你并不能通过召唤一个盔甲架,然后你站在上面,不断让盔甲架给你造成伤害使得你上天。你只会从天上被打下来。
那么这就是本章的全部内容了。
附表1:截止1.19.10版本所有伤害类型id表
id——死亡信息
anvil —— xxx 被坠落的铁砧压扁了
block_explosion —— xxx 爆炸了
charging —— xxx 死了
contact —— xxx 被 xxx 杀死了
drowning —— xxx 淹死了
entity_attack —— xxx 被 xxx 杀死了
entity_explosion —— xxx 被 xxx 炸死了(xxx 爆炸了)
fall —— xxx 落地过猛
falling_block —— xxx 死了
fire —— xxx 浴火焚身
fire_tick —— xxx 被烧死了
fireworks —— xxx 在一声巨响中阵亡了
fly_into_wall —— xxx 遭受了动态能量
freezing —— xxx 冻死了
va —— xxx 试图在熔岩里游泳
lightning —— xxx 被闪电击中
magic —— xxx 被 xxx 使用的魔法杀死了(xxx 被魔法杀死了)
magma —— xxx 死了
none —— xxx 死了
override —— xxx 死了
piston —— xxx 死了
projectile —— xxx 被 xxx 杀死了
stctite —— xxx 被坠落的钟乳石刺穿了
stgmite —— xxx 被钉在了石笋上
starve —— xxx 饿死了
suffocation —— xxx 在墙里窒息而亡(需要目标实体卡在方块里才能使用此伤害类型,否则无法造成伤害)
suicide —— xxx 死了
temperature —— xxx 死了
thorns —— xxx 死了
void —— xxx 掉出了这个世界
wither —— xxx 凋谢了
(上述信息来自官方附加包文档+作者自己测试得出)
附表2:\/damage历史
基岩版
1.18.10——加入了\/damage