Java版中/damege指令的一种用法如下:
复制代码根据中文及英文Wiki的说法,其中<target>是被伤害的目标;<entity>指伤害的直接来源,会影响击退方向;<cause>指则伤害的实际来源(如射箭的骷髅)。
但我经过测试,发现了问题。
简单来说就是,我执行了这个命令,<target>指定为一个生物(不妨称其为A),<entity>指定为生物B,<cause>指定为我自己(玩家)。
按照Wiki的说法,实际效果应该是A受到来自B方向的击退,但实际效果却是来自我自己。
再次执行了这个命令,A被杀死,掉出了经验,说明伤害的实际来源确实是玩家(我自己)。
在1.19.4,1.20,1.20.1测试均为如此(这个命令在1.19.4才被加入)。
不知道是bug还是我不会用,期待大佬解疑!
- damage <target> <amount> [<damageType>] [by <entity>] [from <cause>]
但我经过测试,发现了问题。
简单来说就是,我执行了这个命令,<target>指定为一个生物(不妨称其为A),<entity>指定为生物B,<cause>指定为我自己(玩家)。
按照Wiki的说法,实际效果应该是A受到来自B方向的击退,但实际效果却是来自我自己。
再次执行了这个命令,A被杀死,掉出了经验,说明伤害的实际来源确实是玩家(我自己)。
在1.19.4,1.20,1.20.1测试均为如此(这个命令在1.19.4才被加入)。
不知道是bug还是我不会用,期待大佬解疑!
应该是个bug吧……我测试的时候<cause>部分的实体才是攻击后的决定击退方向的实体,而entity貌似并没有实际作用……至少我没有测试出来
刚刚帮你实测了一下子,
target指的是目标生物,这点没错。
amount指的是伤害点数,这点也没错。
damagetype指的是伤害类型,这点也没错。
但是,by后面<entity>应该跟着的是伤害目标的击打,意思就是说该实体受到的伤害具体是由谁击打的。
而from后面<cause>就是来自该伤害的总执行者。
可以理解为:A击打了一个实体B,但是这个实体却是被C所伤。
如果<cause>参数不存在,则默认from参数是继承至<entity>的。
倒数第二行这个不存在,这个是我猜的,因为我打开游戏实际测试了之后,如果后面<cause>没有接,则默认<entity>会取代cause。
target指的是目标生物,这点没错。
amount指的是伤害点数,这点也没错。
damagetype指的是伤害类型,这点也没错。
但是,by后面<entity>应该跟着的是伤害目标的击打,意思就是说该实体受到的伤害具体是由谁击打的。
而from后面<cause>就是来自该伤害的总执行者。
可以理解为:A击打了一个实体B,但是这个实体却是被C所伤。
如果<cause>参数不存在,则默认from参数是继承至<entity>的。
倒数第二行这个不存在,这个是我猜的,因为我打开游戏实际测试了之后,如果后面<cause>没有接,则默认<entity>会取代cause。