Sub Skill()
Dim i As Double, j As Double, skNum As Integer, AtkTime As Double, info() As Variant, psTime As Double
skNum = InputBox("要模拟的技能数", "技能数量", "16")
info = Range("B2:E" & skNum + 1).Value
AtkTime = InputBox("填写模拟的输出时长,单位为秒", "战斗时长", "600")
i = ActiveSheet.UsedRange.Rows.Count
Range("D2:E" & i).ClearContents
For i = 0.1 To AtkTime Step 0.1
psTime = 0.1
For j = skNum To 1 Step -1 '遍历所有技能
If info(j, 3) <= 0 Then
info(j, 4) = info(j, 4) + 1 '当前技能释放次数+1
info(j, 3) = info(j, 1) '当前技能进入CD
psTime = info(j, 2)
i = i + info(j, 2)
Exit For
End If
Next j
For k = 1 To skNum '所有技能冷却减去0.1s
info(k, 3) = info(k, 3) - psTime
If info(k, 3) < 0 Then
info(k, 3) = 0
End If
Next k
Next i
Range("B2:E" & skNum + 1).Value = info
End Sub
时间T内N个技能释放次数
最新推荐文章于 2024-06-03 14:08:28 发布