= 创作分享 =
编程开发
AttackEntityEvent中的.getTarget()导致的游戏崩溃问题 ...
OceanDragon

AttackEntityEvent中的.getTarget()导致的游戏崩溃问题

OceanDragon 于 2023-1-6 14:58 ( 1年前 ) [复制链接] [只看楼主] [打印]
788 13
想问一下大佬为什么我在使用.getTarget()选取末影龙为目标时游戏会崩溃
发表于 2023-1-6 14:58:50 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

回复 | 举报

该帖共收到 13 条回复!
仙勾子
版本呢?代码呢?.getTarget()方法肯定没问题,很大可能是你给末影龙执行了其他代码才使游戏崩溃
未死之前,终有希望
发表于 2023-1-6 16:52:41 | 只看该作者

回复 | 举报

OceanDragon

RE: AttackEntityEvent中的.getTarget()导致的游戏崩溃问题

xm94732568960 发表于 2023-1-6 16:52
版本呢?代码呢?.getTarget()方法肯定没问题,很大可能是你给末影龙执行了其他代码才使游戏崩溃 ...

版本1.12.2,forge2847,已经解决了,原因我认为可能是在将Entity类型转为EntityLiving时导致的,请大佬看看是不是,不方便展示所有代码。
        EntityLiving entity = (EntityLiving) event.getTarget();
                                if (!(entity.getHealth()==0.0f)) {
                                        if ((EntityLivingBase)entity instanceof EntityPlayer) {
                                                CoreEvent.killPlayer((EntityLivingBase)entity);
                                        }else {
                                                CoreEvent.killEntity(entity);
发表于 2023-1-6 23:14:19 | 只看该作者

回复 | 举报

仙勾子
FireDragon 发表于 2023-1-6 23:14
版本1.12.2,forge2847,已经解决了,原因我认为可能是在将Entity类型转为EntityLiving时导致的,请大佬 ...

是的,第一行不能直接转
未死之前,终有希望
发表于 2023-1-7 08:51:32 | 只看该作者

回复 | 举报

OceanDragon
xm94732568960 发表于 2023-1-7 08:51
是的,第一行不能直接转

谢谢大佬,但我还是想知道如何选末影龙为目标qwq
发表于 2023-1-7 20:57:24 | 只看该作者

回复 | 举报

仙勾子
本帖最后由 xm94732568960 于 2023-1-7 21:29 编辑
FireDragon 发表于 2023-1-7 20:57
谢谢大佬,但我还是想知道如何选末影龙为目标qwq

原来你的意思时想改变攻击目标为末影龙,这个要用mixin,用事件不行,就算你把事件的target强行改了也没用,因为它不会在事件结束时被使用来替换掉原来的攻击目标,只是告诉你玩家攻击了什么实体(整个AttackEntityEvent事件仅起到提醒+使用setCanceled()取消攻击的作用)
未死之前,终有希望
发表于 2023-1-7 21:25:52 | 只看该作者

回复 | 举报

OceanDragon
xm94732568960 发表于 2023-1-7 21:25
原来你的意思时想改变攻击目标为末影龙,这个要用mixin,用事件不行,就算你把事件的target强行改了也没用 ...

谢谢大佬,谢谢大佬
发表于 2023-1-7 21:37:58 | 只看该作者

回复 | 举报

仙勾子
FireDragon 发表于 2023-1-7 21:37
谢谢大佬,谢谢大佬

其实也有其他的解决方法哦,在LivingAttackEvent里setCanceled(true)取消此次攻击,然后再用LivingEntity.hurt(DamageSource p_70097_1_, float p_70097_2_)对想要的目标发动攻击
未死之前,终有希望
发表于 2023-1-7 22:11:26 | 只看该作者

回复 | 举报

OceanDragon
xm94732568960 发表于 2023-1-7 22:11
其实也有其他的解决方法哦,在LivingAttackEvent里setCanceled(true)取消此次攻击,然后再用LivingEntity ...

意思是我不能用AttackEntityEvent吗
发表于 2023-1-7 23:20:43 | 只看该作者

回复 | 举报

OceanDragon
xm94732568960 发表于 2023-1-7 22:11
其实也有其他的解决方法哦,在LivingAttackEvent里setCanceled(true)取消此次攻击,然后再用LivingEntity ...

想问一下是不是1.12.2没有LivingEntity类型呢,看1.16好像有
发表于 2023-1-8 00:52:07 | 只看该作者

回复 | 举报

12下一页
百科目前不允许匿名发帖哦~ 请先 [ 登陆 ][ 注册 ] 吧~

本版积分规则

发新帖
  • 回复
  • 点评
  • 评分

[ MC百科(mcmod.cn) 除另有声明,所有开放公共编辑的内容均使用 BY-NC-SA 3.0 协议 ]

Minecraft百科CC协议
快速回复 返回顶部 返回列表