FGO国服鬼岛活动bug分析

想发颓向博客但是怕被谴责只好发这种半技术向的了?

 

逛nga的时候听闻了一个bug,于是有空赶快试验了一下:

当前开放的是再来!风越丸讨伐战【讨伐完成】副本,如果在该任意难度下的该副本中,在第一面同时达到对方全灭以及我方全灭,那么在结算时会额外获得第二面击杀掉落

实现方法当然是使用喜闻乐见的大英雄。事不宜迟,我立刻在600W难度的副本进行了测试:

结果确实证明了bug的存在。在战斗中显示只有4件掉落的情况下,最终掉落却有了7个,且包含只有第二面才可能掉落的物品。

想进一步了解bug的我进行了其他测试:

其他难度的副本依然存在此bug;

仅我方在第一面全灭不会触发bug;

仅消灭部分第一面杂兵获得部分掉落;

过往副本无法求证;可以期待下一个本是否有同样bug。

 

依此推断,bug产生的原因比较明了了。

  1. 与普通本不同,本次活动在我方全灭的情况下依然算作成功,可以正常获得掉落。
  2. FGO中物品的掉落不是在击败敌人的时候产生的,而是进入副本时已经产生,胜利就可以获得掉落(因此SL大法无法刷掉落)。
  3. 因为本次活动的特殊性,最终掉落需要判断场上哪些敌人已被打败。具体实现起来,大概就是遍历所有敌人,判断状态是否为死亡或者血量是否为0等。
  4. (本段为个人猜测)在第一面时,第二面的敌人尚未初始化,一般来说此时状态为死亡/血量为0。而为了避免这个情况的发生,本次在处理掉落的时候加入了特判,如果尚未通过第一面,则在结算时不遍历第二面的敌人。进入第二面时,才会对敌人进行初始化。而在通过第一面且未进入第二面的情况下,第二面的敌人未被初始化,却进行了结算,于是导致了bug的发生。
  5. 因为触发bug后并不会增加对boss的DP(伤害),所以进一步猜测敌人的血量(等基本属性)是进入副本时已设定好了的,而死亡标记是在敌人登场/死亡时发生变化。(这样代码似乎也好些一些呼呼)

 

总之,已经刷完伤害的大佬们可以用这个方法拿多余的bp速刷一些材料。

这个bug已经持续了几天,b站也早已得知,甚至官方还给出了回应,却迟迟没有被修复(参考红鬼bug不到半天就修复了),这背后怕是有。。结合上次140连保底的说法,说明b站是很偏袒我们这些玩家的!

 

如果我会反汇编是不是可以撬出代码来把玩一下?

不过结合这次活动的诸多bug,我还是想说这些程序员还是需要提升姿势水平。

说点什么

您将是第一位评论人!

提醒
wpDiscuz