3079655185 发表于 2020-8-9 14:59:30

一名玩家被另一名玩家杀死的事件是什么

我找到了有点相关的EntityDamageByEntityEvent事件,可以获取DamageCause,但是DamageCause里没找到“被玩家杀死”。是还有其他的事件吗,我是找了好久没找到,求dalao支招

洞穴夜莺 发表于 2020-8-9 15:07:04

你直接拿攻击者判断一下是不是玩家不就结了吗

3079655185 发表于 2020-8-9 15:09:37

洞穴夜莺 发表于 2020-8-9 15:07
你直接拿攻击者判断一下是不是玩家不就结了吗

那怎么知道死没死的,这个事件不是只要攻击就会触发吗

疾风暗影 发表于 2020-8-9 15:12:00

本帖最后由 疾风暗影 于 2020-8-9 15:24 编辑

EntityDamageByEntityEvent#getEntity().getKiller() != null


MC是谁最后造成伤害算谁的,没有bianshi的说法

洞穴夜莺 发表于 2020-8-9 15:15:37

3079655185 发表于 2020-8-9 15:09
那怎么知道死没死的,这个事件不是只要攻击就会触发吗

EntityDeathEvent

3079655185 发表于 2020-8-9 15:16:32

疾风暗影 发表于 2020-8-9 15:12
MC是谁最后造成伤害算谁的,没有bianshi的说法

bianshi啥意思¿

疾风暗影 发表于 2020-8-9 15:17:32

3079655185 发表于 2020-8-9 15:16
bianshi啥意思¿

鞭尸
也就是玩家死亡后entity无效化不可被攻击

洞穴夜莺 发表于 2020-8-9 15:21:37

疾风暗影 发表于 2020-8-9 15:12
MC是谁最后造成伤害算谁的,没有bianshi的说法

isDead()判断的是被移除吧

疾风暗影 发表于 2020-8-9 15:24:46

洞穴夜莺 发表于 2020-8-9 15:21
isDead()判断的是被移除吧

EntityDamageByEntityEvent#getEntity().getKiller() != null

那就直接判断killer是否为空

3079655185 发表于 2020-8-9 15:35:00

疾风暗影 发表于 2020-8-9 15:24
那就直接判断killer是否为空

原来还可以getKiller啊,而且返回值是Player。
那我侦听EntityDeathEvent,getKiller,如果不是null,就是玩家杀死玩家,对吗

瘟疫威胁全世界 发表于 2020-8-9 16:07:21

有个情况啊,如果玩家用箭射死了玩家,killer是Arrow
Arrow#getShooter instanceof Player

洞穴夜莺 发表于 2020-8-9 18:05:20

瘟疫威胁全世界 发表于 2020-8-9 16:07
有个情况啊,如果玩家用箭射死了玩家,killer是Arrow
Arrow#getShooter instanceof Player ...

getKiller()的返回类型是Player
你想说箭是一名玩家吗?

William_Shi 发表于 2020-8-9 18:11:00

本帖最后由 William_Shi 于 2020-8-9 18:12 编辑

瘟疫威胁全世界 发表于 2020-8-9 16:07
有个情况啊,如果玩家用箭射死了玩家,killer是Arrow
Arrow#getShooter instanceof Player ...
https://bukkit.windit.net/javado ... ty.html#getKiller--

Gets the player identified as the killer of the living entity.
May be null.
CraftLivingEntity的具体实现

public Player getKiller() {
    return ((getHandle()).killer == null) ? null : (Player)(getHandle()).killer.getBukkitEntity();
}

3079655185 发表于 2020-8-9 18:26:05

瘟疫威胁全世界 发表于 2020-8-9 16:07
有个情况啊,如果玩家用箭射死了玩家,killer是Arrow
Arrow#getShooter instanceof Player ...

对啊,killer返回的不是Player吗

3079655185 发表于 2020-8-9 20:17:45

本帖最后由 3079655185 于 2020-8-10 17:44 编辑

William_Shi 发表于 2020-8-9 18:11
https://bukkit.windit.net/javado ... ty.html#getKiller--

Gets the player identified as the killer...
所以说用弓箭射死,也会返回Player吗
页: [1] 2
查看完整版本: 一名玩家被另一名玩家杀死的事件是什么