时间T内N个技能释放次数

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值