[2]然后是第一个大风提供的2层风刀增益消失后,战斗开始后392帧到480帧之前,含有第二种模式的层数变化的 时间轴。细心观察依然可以发现,风刀得到的层数的事件的模式还是跟之前的模式相同,每20帧获得一层,处于两次获得之间的帧数于前一次获得的状态相同,依 然可以用stack1(获得风刀层数)的函数来计算。但是这时候多了另外一种风刀层数变化事件,即是392帧开始的,失去一个大风提供的风刀层数的事件。 因为大风获得的风刀层数是每40帧一次,所以这个失去层数的事件也是以40帧作为一个周期循环的,而且处于两次失去层数事件之间的帧数的状态是与前一次事 件的状态相同。这样的现象也可以用一个帧数与风刀层数相关的函数来表示,stack2(失去风刀层数)=2*Floor[1+((帧数 -392)/40)]。有了这些基础之后,在战斗392帧之后的任意一帧的风刀层数,我们都可以通过这一帧得到的风刀层数减去这一帧失去的风刀层数来计 算。所以在帧数≥392帧的时候,某一帧的风刀层数=stack1(获得风刀层数)-stack2(失去风刀层数)。例如在战 斗开始后的第467帧,风刀的层数为Floor[1+(467/20)]-2*Floor[1+((467-392)/40)]=20层。 [3]至此,我们已经可以建立一组分段函数,来计算攻速间隔20帧的情况下,战斗开始后某一帧时候的风刀层数状态。函数如下: stack(风刀层数)=Floor[1+(帧数/20)];{帧数<392帧} stack(风刀层数)=Floor[1+(帧数/20)]-2*Floor[1+(帧数/40)];{帧数≥392帧}
B.20帧的攻速间隔下,战斗开始后的某一帧的实际伤害分析 [1]在知道战斗开始后所有帧数情况下风刀层数之后,我们就可以开始分析所有帧的实际伤害了,因为我们知道所有帧数情况下,风刀提供的增益倍数到底是多 少。由特效可以知道,增益倍数可以用函数:stack(增益倍数)=1+风刀层数*风刀特效%,来表示。已知不管大风还是小风,都是384帧的有效持续时 间,比自己提供的风刀增益层数持续时间的372帧要多12帧。也就是说自己风的最后12帧的伤害,是永远吃不到自己提供的风刀增益的。然后在卡风的情况 下,永远吃不到自身提供风刀增益只有合体大风的最后12帧伤害。 因此,风的输出其实可以分成两个部分来计算,第一部分是能吃到自己提供风刀增益的风的伤害,这个伤害是由每一帧的大风的伤害和小风的伤害共同组成的。第二 部分是不能吃到自己提供风刀增益的每个大风最后12帧的伤害,是一个有和大风一样周期的周期性伤害。我把第一部分伤害命名为同步伤害,第二部分的伤害命名 为额外伤害。 [2]因为同步伤害是持续时间与风刀层数同步的大小风的伤害组合,所以每一帧的同步伤害应该由多少个大风和多少个小风组成,都可以通过风刀在这一帧的层数 所判断。假如风刀的层数在这一帧的伤害为偶数,那么这一帧就有(风刀层数/2)个大风一帧的伤害。如果风刀的层数在这一帧为奇数,那么就是Floor[风 刀层数/2]个大风一帧的伤害加上(风刀层数-大风个数*2)个小风一帧的伤害。知道关系后我们可以写出帧数与同步伤害相关的函数:同步伤 害=stack(增益倍数)*(Floor[stack(风刀层数)/2]*大风一帧的伤害+(stack(风刀层数)-2*Floor[stack(风 刀层数)/2])*小风一帧的伤害) [3]关于额外伤害,它的情况如下图所示(X轴为时间/帧数,Y轴为武器伤害)
小编推荐阅读