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

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

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

回复 | 举报

该帖共收到 13 条回复!
OceanDragon

虽然不是特别懂,但看代码意思应该是从getSource获得目标是吧应该,谢谢了大佬
发表于 2023-1-8 23:45:30 | 只看该作者

回复 | 举报

仙勾子
这样写更好
未死之前,终有希望
发表于 2023-1-8 15:36:20 | 只看该作者

回复 | 举报

仙勾子
本帖最后由 xm94732568960 于 2023-1-8 13:27 编辑

不用mixin,使用事件系统改变攻击目标,把玩家的攻击反弹到自己身上的例子:
为什么要加个第139行?这是因为不这么做攻击反弹到自己身上又会无限反弹让游戏崩溃
那个try catch语句是用来标记这个伤害源属于反弹


未死之前,终有希望
发表于 2023-1-8 13:21:43 | 只看该作者

回复 | 举报

仙勾子
FireDragon 发表于 2023-1-8 00:52
想问一下是不是1.12.2没有LivingEntity类型呢,看1.16好像有

都有,1.12.2反过来叫,EntityLiving
未死之前,终有希望
发表于 2023-1-8 08:54:39 | 只看该作者

回复 | 举报

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

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

回复 | 举报

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

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

回复 | 举报

仙勾子
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 21:25
原来你的意思时想改变攻击目标为末影龙,这个要用mixin,用事件不行,就算你把事件的target强行改了也没用 ...

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

回复 | 举报

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

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

回复 | 举报

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

本版积分规则

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

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

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