PowerNukkitX / PowerNukkitX-Legacy

GNU General Public License v3.0
6 stars 4 forks source link

骷髅AI异常 #31

Open KobeBryant114514 opened 1 year ago

KobeBryant114514 commented 1 year ago

🐞 错误汇报

骷髅AI与BDS的AI有较大差异。 骷髅发射的箭矢可以被玩家拾取(这能刷箭)。 具体参考预期行为与实际行为对比。

📸 截图或视频

▶ 复现步骤

正常生成骷髅,让骷髅攻击玩家,与BDS的骷髅AI对比。

✔ 预期行为

❌ 实际行为

📋 Debug information

💢 错误堆栈或崩溃日志

该漏洞不会造成崩溃

💬 其他信息

预期AI行为可参考Wiki https://minecraft.fandom.com/zh/wiki/%E9%AA%B7%E9%AB%85

lt-name commented 1 year ago

骷髅发射的箭可以瞬间命中玩家,无法看见箭的飞行轨迹。但是实际发射出来了箭(如果用方块阻隔箭可以看见箭插在墙上)

无法复现

骷髅发射的箭可以被玩家拾取(插在墙上的箭可以被拾取)

https://github.com/PowerNukkitX/PowerNukkitX/blob/master/src/main/java/cn/nukkit/entity/ai/executor/ShootExecutor.java#LL195 经检查是拾取模式设置存在漏判问题

KobeBryant114514 commented 1 year ago

骷髅发射的箭可以瞬间命中玩家,无法看见箭的飞行轨迹。但是实际发射出来了箭(如果用方块阻隔箭可以看见箭插在墙上)

无法复现

骷髅发射的箭可以被玩家拾取(插在墙上的箭可以被拾取)

https://github.com/PowerNukkitX/PowerNukkitX/blob/master/src/main/java/cn/nukkit/entity/ai/executor/ShootExecutor.java#LL195 经检查是拾取模式设置存在漏判问题

骷髅发射的箭几乎看不见飞行轨迹,应该是飞行速度非常快,但是原版骷髅射出的箭并非如此。 但是并不代表真正瞬间命中,拿个方块阻隔可以看见箭被阻挡并且插在墙上(也就是说确实有箭射出而不是直接命中) 但是这个箭的飞行速度似乎未免太快了(BDS射出的箭有精度误差,并且可以靠身法躲开,但是目前PNX的AI躲不开)