CommonFun

CommonFun.DoCalcStateEffectDam

Dataset · 20251127_update

Formula Source

function CommonFun.DoCalcStateEffectDam(srcUser, targetUser, params)
  local StateEffect = targetUser:GetProperty("StateEffect")
  local bits = CommonFun.getBits(StateEffect)
  local Weapon = srcUser:GetEquipedID(7)
  local RefineLv = srcUser:GetEquipedRefineLv(7)
  local Profession = srcUser:GetProfressionID()
  local Num1 = srcUser:GetRunePoint(31011)
  local Num2 = srcUser:GetRunePoint(31012)
  local Num3 = srcUser:GetRunePoint(31013)
  local Num4 = srcUser:GetRunePoint(31014)
  local Num5 = srcUser:GetRunePoint(31015)
  local RuneDamage1 = Num1 * 0.1 + Num2 * 0.05 + Num3 * 0.1 + Num4 * 0.05 + Num5 * 0.05
  local Num6 = srcUser:GetRunePoint(41011)
  local Num7 = srcUser:GetRunePoint(41012)
  local Num8 = srcUser:GetRunePoint(41013)
  local RuneDamage2 = Num6 * 0.15 + Num7 * 0.1 + Num8 * 0.15
  local Num9 = srcUser:GetRunePoint(62001)
  local Num10 = srcUser:GetRunePoint(62002)
  local Num11 = srcUser:GetRunePoint(62003)
  local Num12 = srcUser:GetRunePoint(62004)
  local Num13 = srcUser:GetRunePoint(62005)
  local RuneDamage3 = Num9 * 0.02 + Num10 * 0.04 + Num11 * 0.04 + Num12 * 0.02 + Num13 * 0.02
  local Num14 = srcUser:GetRunePoint(120180)
  local RuneDamage4 = Num14 * 0.03
  local Num16 = srcUser:GetRunePoint(120210)
  local RuneDamage6 = Num16 * 0.1
  local Num17 = srcUser:GetRunePoint(90210)
  local RuneDamage7 = Num17 * 0.05
  local Num18 = srcUser:GetRunePoint(90200)
  local RuneDamage8 = Num18 * 0.03
  local Snatch = 0
  local fromid = targetUser:GetBuffFromID(106131)
  local guid = srcUser:GetGuid()
  local Num19 = srcUser:GetRunePoint(90110)
  if fromid == guid then
    Snatch = 0.05 * Num19
  end
  local DizzyRatio = 0
  if srcUser:HasBuffID(80001480) and (srcUser:HasBuffID(51230) or srcUser:HasBuffID(600560) or srcUser:HasBuffID(600570) or srcUser:HasBuffID(600580) or srcUser:HasBuffID(600590) or srcUser:HasBuffID(51230)) or srcUser:HasBuffID(81002040) and srcUser:HasBuffID(56220) then
    DizzyRatio = 0.15
  end
  if srcUser:HasBuffID(38010) then
    DizzyRatio = DizzyRatio + 0.1
  end
  local CardNumzsj = srcUser:GetEquipCardNum(7, 24624)
  if srcUser:HasBuffID(54100) then
    DizzyRatio = DizzyRatio + 0.1 * CardNumzsj
  end
  local Ring5 = srcUser:GetEquipedID(5)
  local RefineLv5 = srcUser:GetEquipedRefineLv(5)
  local Ring6 = srcUser:GetEquipedID(6)
  local RefineLv6 = srcUser:GetEquipedRefineLv(6)
  local curse5 = 0
  local curse6 = 0
  if Ring5 == 44089 or Ring5 == 144089 then
    curse5 = RefineLv5 / 100
  end
  if Ring6 == 44089 or Ring6 == 144089 then
    curse6 = RefineLv6 / 100
  end
  local curse = curse5 + curse6
  local skilllv_Rogue = srcUser:GetLernedSkillLevel(484)
  local Rogue = 0
  if 0 < skilllv_Rogue then
    Rogue = 0.03 * skilllv_Rogue
  end
  local bloodrain = 0
  local RefineLv7 = srcUser:GetEquipedRefineLv(7)
  if srcUser:HasBuffID(90001048) and 10 <= RefineLv7 then
    bloodrain = 0.15
  end
  if srcUser:HasBuffID(41870) and 5 <= RefineLv7 then
    bloodrain = 0.2
  end
  if srcUser:HasBuffID(44290) or srcUser:HasBuffID(44300) then
    bloodrain = RefineLv7 * 0.01
  end
  if srcUser:HasBuffID(90004314) then
    bloodrain = 0.15
  end
  if srcUser:HasBuffID(64350) then
    bloodrain = bloodrain + 0.1
  end
  local skilllv_Zhuangtai = srcUser:GetLernedSkillLevel(1166)
  local skilllv_Zhuangtai2 = srcUser:GetLernedSkillLevel(1490)
  local skilllv_Zhuangtai3 = srcUser:GetLernedSkillLevel(1716)
  local skilllv_Zhuangtai4 = srcUser:GetLernedSkillLevel(1912)
  local skilllv_Zhuangtai5 = srcUser:GetLernedSkillLevel(62001)
  local Numfs = srcUser:GetRunePoint(24080)
  local Yishang = skilllv_Zhuangtai * 0.05 + Numfs * 0.03 + skilllv_Zhuangtai2 * 0.05 + skilllv_Zhuangtai3 * 0.05 + skilllv_Zhuangtai4 * 0.05 + skilllv_Zhuangtai5 * 0.005
  local FrozenM = 0
  local Card1 = srcUser:GetEquipCardNum(7, 20025)
  if 0 < Card1 and srcUser:HasBuffID(80000250) then
    FrozenM = 0.25 + FrozenM
  end
  if srcUser:HasBuffID(52180) and srcUser:HasBuffID(81000050) then
    FrozenM = 0.2 + FrozenM
  end
  if srcUser:HasBuffID(56250) and srcUser:HasBuffID(81003180) then
    FrozenM = 0.2 + FrozenM
  end
  if srcUser:HasBuffID(54930) and srcUser:HasBuffID(54910) then
    FrozenM = 0.1 + FrozenM
  end
  local BloodM = 0
  if srcUser:HasBuffID(37540) then
    BloodM = 0.05 + BloodM
  end
  if bits[CommonFun.StateEffect.Poison] == 1 and (Weapon == 40909 or Weapon == 140909) then
    return 1 + bloodrain
  end
  if bits[CommonFun.StateEffect.Poison] == 1 and (Weapon == 40945 or Weapon == 140945) then
    return 1 + bloodrain
  end
  if bits[CommonFun.StateEffect.Poison] == 1 and (Weapon == 62819 or Weapon == 162819 or Weapon == 63153 or Weapon == 163153) then
    return 1 + bloodrain
  end
  if bits[CommonFun.StateEffect.Poison] == 1 and (Weapon == 40766 or Weapon == 140766) then
    return 1 + bloodrain
  end
  if bits[CommonFun.StateEffect.Poison] == 1 then
    return 1 + bloodrain
  end
  if targetUser:GetBuffFromID(106131) and fromid == guid and (Profession == 92 or Profession == 93 or Profession == 94 or Profession == 95) then
    return 1 + Snatch
  end
  if bits[CommonFun.StateEffect.Dizzy] == 1 and (Profession == 92 or Profession == 93 or Profession == 94 or Profession == 95) then
    return 1 + Rogue + RuneDamage7 + Snatch
  end
  if (bits[CommonFun.StateEffect.NoMove] == 1 or targetUser:HasBuffID(106151)) and (Profession == 92 or Profession == 93 or Profession == 94 or Profession == 95) then
    return 1 + Rogue + RuneDamage8 + Snatch
  end
  if (bits[CommonFun.StateEffect.Dark] == 1 or targetUser:HasBuffID(106151)) and (Profession == 92 or Profession == 93 or Profession == 94 or Profession == 95) then
    return 1 + Rogue + Snatch + curse
  end
  if (bits[CommonFun.StateEffect.Dizzy] == 1 or bits[CommonFun.StateEffect.NoMove] == 1 or bits[CommonFun.StateEffect.Dark] == 1 or targetUser:HasBuffID(106151)) and (Profession == 92 or Profession == 93 or Profession == 94 or Profession == 95) then
    return 1 + Rogue + Snatch
  end
  if bits[CommonFun.StateEffect.Dizzy] == 1 and (Weapon == 41813 or Weapon == 141813) then
    return 1.15 + RuneDamage1 + RuneDamage3 + RuneDamage6 + DizzyRatio + Rogue
  end
  if bits[CommonFun.StateEffect.Dizzy] == 1 and (Weapon == 41811 or Weapon == 141811) then
    return 1 + 0.05 * RefineLv + RuneDamage1 + RuneDamage3 + RuneDamage6 + DizzyRatio + Rogue
  end
  if bits[CommonFun.StateEffect.Dizzy] == 1 and (Profession == 61 or Profession == 62 or Profession == 63 or Profession == 64 or Profession == 65 or Profession == 31 or Profession == 32 or Profession == 33 or Profession == 34 or Profession == 35 or Profession == 213 or Profession == 214 or Profession == 215) then
    return 1 + RuneDamage1 + RuneDamage3 + DizzyRatio
  end
  if bits[CommonFun.StateEffect.Freeze] == 1 then
    return 1 + Yishang + FrozenM
  end
  if bits[CommonFun.StateEffect.NoMove] == 1 then
    return 1 + RuneDamage2
  end
  if bits[CommonFun.StateEffect.Silence] == 1 and (Profession == 122 or Profession == 123 or Profession == 124 or Profession == 125) then
    return 1 + RuneDamage4 + curse
  end
  if bits[CommonFun.StateEffect.Dizzy] == 1 and (Profession == 122 or Profession == 123 or Profession == 124 or Profession == 125) then
    return 1 + RuneDamage6 + DizzyRatio
  end
  if srcUser:HasBuffID(80113) and bits[CommonFun.StateEffect.Blood] == 1 then
    local skilllv_1 = srcUser:GetLernedSkillLevel(25)
    if 10 < skilllv_1 then
      return 1 + (skilllv_1 - 10) * 0.05 + BloodM
    end
  end
  if bits[CommonFun.StateEffect.Blood] == 1 then
    return 1 + Yishang + BloodM
  end
  if bits[CommonFun.StateEffect.Dizzy] == 1 and (Profession == 24 or Profession == 25 or Profession == 144 or Profession == 145 or Profession == 204 or Profession == 205 or Profession == 224 or Profession == 225 or srcUser:HasBuffID(231010)) then
    return 1 + Yishang + DizzyRatio
  end
  if (bits[CommonFun.StateEffect.Freeze] == 1 or bits[CommonFun.StateEffect.Blood] == 1 or bits[CommonFun.StateEffect.Burn] == 1) and (Profession == 24 or Profession == 25 or Profession == 144 or Profession == 145 or Profession == 204 or Profession == 205 or Profession == 224 or Profession == 225 or srcUser:HasBuffID(231010)) then
    return 1 + Yishang
  end
  if bits[CommonFun.StateEffect.Dizzy] == 1 then
    return 1 + DizzyRatio
  end
  local GemValue = srcUser:GetGemValue(91061)
  local RuneNum_mjhw = srcUser:GetRunePoint(153041)
  if bits[CommonFun.StateEffect.Fear] == 1 then
    return 1 + GemValue / 100000 + RuneNum_mjhw * 0.03 + curse
  end
  if bits[CommonFun.StateEffect.Curse] == 1 or bits[CommonFun.StateEffect.Fear] == 1 or bits[CommonFun.StateEffect.Dark] == 1 or bits[CommonFun.StateEffect.Silence] == 1 then
    return 1 + curse
  end
  if targetUser:HasBuffID(106090) then
    return 1 + Rogue
  end
  return 1
end
No formula links

Version History

Loading dependencies...
Loading usage...