你会发现,猪仅仅受到了攻击,然后开始四处乱跑而已。让我们等一下它跑完,然后运行下面的指令再次造成伤害:/damage @e[type=pig] 1 entity_attack entity @s
猪→ ε=红猪(被击退)→ε=ε=猪(跑)→猪
你会发现,猪不仅仅受到了攻击,还向一个方向退了几步。
通过上面的实验,你会发现:指定『伤害来源』参数还可以使得攻击有一定的方向。那么这个方向是怎么计算出来的呢?
██████████民→██
██████████████
█████←猪███████
██████████████
我们来看看上述网格,箭头代表着实体的朝向。让我们尝试指定村民对猪造成伤害:
/damage @e[type=pig] 1 entity_attack entity @e[type=villager,c=1]
然后你就会发现猪被击退向了远离村民的方向:
██████████民→██
██████████████
██████████████
████←猪████████
这说明了什么?这说明了,指定『伤害来源』后,造成的攻击会具有方向,而这个方向和指定的攻击者向着被攻击者的方向是一致的。
但是需要注意,这个攻击方向的计算是2维的,并不是3维的。
什么意思呢?也就是说,攻击方向的计算不会考虑到两者的y坐标,仅仅会通过两者的xz坐标计算得出。所以你并不能通过召唤一个盔甲架,然后你站在上面,不断让盔甲架给你造成伤害使得你上天。你只会从天上被打下来。
那么这就是本章的全部内容了。
附表①:截止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 爆炸了)