CommonFun

CommonFun.DoCalcDamage

Dataset · 20251127_update

Formula Source

function CommonFun.DoCalcDamage(srcUser, targetUser, params, logger)
  local damage = 0
  local damageType
  local RealDamage = targetUser:GetProperty("RealDamage")
  if targetUser:HasBuffID(96050) and 1 <= RealDamage then
    local skillID, skillLevel = CommonFun.UnmergeSkillID(params.skillIDAndLevel)
    if skillID == 359 then
      RealDamage = RealDamage - 1
    end
  end
  local MaxHp = targetUser:GetProperty("MaxHp")
  local BaseLv = targetUser.BaseLv
  local BaseLv1 = srcUser.BaseLv
  local TransformID = srcUser:GetProperty("TransformID")
  local MRefine = srcUser:GetProperty("MRefine")
  local skillParams = Table_Skill[params.skillIDAndLevel]
  local damageParamList = skillParams.Damage
  for i = 1, #damageParamList do
    local damageParam = damageParamList[i]
    local func = CommonFun.CalcDamageFuncs[damageParam.type]
    if nil ~= func then
      local partDamage, partDamageType = func(srcUser, targetUser, params, damageParam, logger)
      local elementDam = CommonFun.DoCalcElementDam(srcUser, targetUser, params, damageParam)
      local stateDam = CommonFun.DoCalcStateEffectDam(srcUser, targetUser)
      local srcAtkElement = CommonFun.GetUserAtkAttr(srcUser, params, damageParam)
      if (targetUser:HasBuffID(116813) or targetUser:HasBuffID(116817) or targetUser:HasBuffID(186150) or targetUser:HasBuffID(156111) or targetUser:HasBuffID(135271) or targetUser:HasBuffID(232130) or targetUser:HasBuffID(116810) and targetUser.boss == false and targetUser.mini == false) and 0 < partDamage then
        local Numjianyu = srcUser:GetRunePoint(223021)
        local skillID, skillLevel = CommonFun.UnmergeSkillID(params.skillIDAndLevel)
        local GemValue = srcUser:GetGemValue(21161)
        if skillID == 1915 or skillID == 1908 or skillID == 1941 then
          if 1 <= Numjianyu and targetUser:HasBuffID(116810) then
            partDamage = partDamage * Numjianyu * 0.2
          else
            partDamage = 0
            partDamageType = CommonFun.DamageType.WeaponBlock
          end
        elseif skillID == 1164 then
          if targetUser:HasBuffID(116810) and srcUser:HasBuffID(22000010) then
          elseif 0 < GemValue and srcAtkElement == 8 then
          elseif srcUser:HasBuffID(1000031) and srcAtkElement == 8 then
          elseif 0 < GemValue and srcAtkElement ~= 8 then
            partDamage = 0
          else
            partDamage = 0
            partDamageType = CommonFun.DamageType.WeaponBlock
          end
        elseif srcAtkElement ~= 8 then
          partDamage = 0
          partDamageType = CommonFun.DamageType.WeaponBlock
        end
      end
      if (srcAtkElement == 5 or srcAtkElement == 6 or srcAtkElement == 8) and targetUser:HasBuffID(154910) then
        partDamage = 0
      end
      if srcAtkElement == 3 and targetUser:HasBuffID(154920) then
        partDamage = 0
      end
      if srcAtkElement == 4 and (targetUser:HasBuffID(154920) or targetUser:HasBuffID(10570)) then
        partDamage = 0
      end
      if (srcAtkElement == 1 or srcAtkElement == 2) and targetUser:HasBuffID(154930) then
        partDamage = 0
      end
      if (srcAtkElement == 7 or srcAtkElement == 9) and targetUser:HasBuffID(154940) then
        partDamage = 0
      end
      if srcAtkElement == 10 and (targetUser:HasBuffID(154940) or targetUser:HasBuffID(10580)) then
        partDamage = 0
      end
      if srcAtkElement == 1 and targetUser:HasBuffID(49160) then
        partDamage = partDamage * 0.4
      end
      if srcAtkElement == 2 and targetUser:HasBuffID(49170) then
        partDamage = partDamage * 0.4
      end
      if srcAtkElement == 3 and targetUser:HasBuffID(49180) then
        partDamage = partDamage * 0.4
      end
      if srcAtkElement == 4 and targetUser:HasBuffID(49190) then
        partDamage = partDamage * 0.4
      end
      if srcAtkElement == 6 and targetUser:HasBuffID(49270) then
        partDamage = partDamage * 0.4
      end
      if srcAtkElement == 7 and targetUser:HasBuffID(49280) then
        partDamage = partDamage * 0.4
      end
      if srcAtkElement == 8 and targetUser:HasBuffID(49290) then
        partDamage = partDamage * 0.4
      end
      if srcAtkElement == 10 and targetUser:HasBuffID(49300) then
        partDamage = partDamage * 0.4
      end
      if srcAtkElement == 5 and targetUser:HasBuffID(49310) then
        partDamage = partDamage * 0.4
      end
      if (srcAtkElement == 3 or srcAtkElement == 4) and targetUser:HasBuffID(159570) then
        partDamage = partDamage * 0.8
      end
      if (srcAtkElement == 2 or srcAtkElement == 4) and targetUser:HasBuffID(159571) then
        partDamage = partDamage * 0.8
      end
      if (srcAtkElement == 1 or srcAtkElement == 2) and targetUser:HasBuffID(159572) then
        partDamage = partDamage * 0.8
      end
      if (srcAtkElement == 1 or srcAtkElement == 3) and targetUser:HasBuffID(159573) then
        partDamage = partDamage * 0.8
      end
      if srcAtkElement ~= 8 and targetUser:HasBuffID(159574) then
        partDamage = partDamage * 0.8
      end
      if srcAtkElement == 6 and targetUser:HasBuffID(159575) then
        partDamage = partDamage * 0.8
      end
      if srcUser:HasBuffID(178100) and targetUser:HasBuffID(177930) then
        local fuhua = targetUser:GetBuffLayer(177930)
        partDamage = partDamage * (1 + math.min(fuhua * 0.2, 0.6))
      end
      partDamage = partDamage * elementDam * stateDam
      damage = damage + partDamage
      if nil ~= partDamageType then
        damageType = partDamageType
      end
    else
      logger.error(string.format("CommonFun.CalcDamageFuncs[%s] is nil", tostring(damageParam.type)))
    end
  end
  damage = math.floor(damage)
  if 0 < damage and targetUser:GetNpcID() == 30043 then
    local damageParam = damageParamList[1]
    if damageParam ~= nil and damageParam.type ~= 8002 then
      return 1, CommonFun.DamageType.Normal
    end
  end
  if 0 < damage and (targetUser:GetNpcID() == 56008 or targetUser:GetNpcID() == 56009 or targetUser:GetNpcID() == 56010 or targetUser:GetNpcID() == 56011 or targetUser:GetNpcID() == 56012 or targetUser:GetNpcID() == 56013) then
    local damageParam = damageParamList[1]
    if damageParam ~= nil and damageParam.type ~= 8020 and damageParam.type ~= 8021 then
      return 1, CommonFun.DamageType.Normal
    end
  end
  if 0 < damage and (targetUser:GetNpcID() == 56107 or targetUser:GetNpcID() == 56108 or targetUser:GetNpcID() == 56109) then
    local damageParam = damageParamList[1]
    if damageParam ~= nil and damageParam.type ~= 8010 and damageParam.type ~= 8011 then
      return 1, CommonFun.DamageType.Normal
    end
  end
  if targetUser:HasBuffID(155031) then
    local skillID, skillLevel = CommonFun.UnmergeSkillID(params.skillIDAndLevel)
    if skillID == 79338 then
      return 0, CommonFun.DamageType.Miss
    end
  end
  if srcUser:GetNpcID() == 300102 or srcUser:GetNpcID() == 301300 or srcUser:GetNpcID() == 301301 or srcUser:GetNpcID() == 301302 or srcUser:GetNpcID() == 301303 then
    local skillID, skillLevel = CommonFun.UnmergeSkillID(params.skillIDAndLevel)
    if skillID == 79342 then
      local targetid = targetUser:GetGuid()
      local distance = srcUser:GetDistance(targetid)
      if distance <= 7 then
        return 0, CommonFun.DamageType.None
      end
    end
  end
  if srcUser.boss and targetUser.boss == false then
    local mapid, maptype = srcUser:GetMapInfo()
    if maptype == 5 then
      return math.floor(damage * (1 + RealDamage)), damageType
    elseif srcUser:GetNpcID() == 291100 or srcUser:GetNpcID() == 291200 or srcUser:GetNpcID() == 291300 or srcUser:GetNpcID() == 292100 or srcUser:GetNpcID() == 292200 or srcUser:GetNpcID() == 292300 or srcUser:GetNpcID() == 293100 or srcUser:GetNpcID() == 293200 or srcUser:GetNpcID() == 293300 then
      return math.floor(damage * (1 + RealDamage)), damageType
    elseif srcUser:GetNpcID() == 294104 or srcUser:GetNpcID() == 294105 or srcUser:GetNpcID() == 294204 or srcUser:GetNpcID() == 294205 or srcUser:GetNpcID() == 294304 or srcUser:GetNpcID() == 294305 or srcUser:GetNpcID() == 295107 or srcUser:GetNpcID() == 295207 or srcUser:GetNpcID() == 295307 then
      return math.floor(damage * (1 + RealDamage)) + math.floor(MaxHp * math.random(1, 5) / 300) * (1 + (BaseLv1 - BaseLv) / 200), damageType
    elseif BaseLv <= BaseLv1 and 70 <= BaseLv1 then
      return math.floor(damage * (1 + RealDamage)) + math.floor(BaseLv1 * math.random(10, 25) + MRefine * 5 + MaxHp * math.random(1, 5) / 100) * (1 + (BaseLv1 - BaseLv) / 200), damageType
    else
      return math.floor(damage * (1 + RealDamage)) + math.floor(BaseLv1 * math.random(10, 25) + MRefine * 5 + MaxHp * math.random(1, 5) / 100) * (1 - (BaseLv - BaseLv1) / 200), damageType
    end
  end
  if targetUser.boss and srcUser:GetNpcID() == 0 and BaseLv >= BaseLv1 then
    return math.floor(damage * (1 + RealDamage)) * (1 - (BaseLv - BaseLv1) / 200), damageType
  end
  if TransformID ~= 0 then
    local AttrEffect = srcUser:GetProperty("AttrEffect2")
    local bits = CommonFun.getBits(AttrEffect)
    local temp = false
    if bits[CommonFun.AttrEffect2.BoliBianshen] == 1 or bits[CommonFun.AttrEffect2.GonghuiBianshen] == 1 then
      temp = true
    end
    if bits[CommonFun.AttrEffect2.BCatBianshen] == 1 and targetUser:GetNpcID() == 30043 then
      temp = true
    end
    if 240000 <= TransformID and TransformID <= 240050 then
      temp = true
    end
    if bits[CommonFun.AttrEffect2.UltraMan] == 1 and (targetUser:GetNpcID() == 56008 or targetUser:GetNpcID() == 56009 or targetUser:GetNpcID() == 56010 or targetUser:GetNpcID() == 56011 or targetUser:GetNpcID() == 56012 or targetUser:GetNpcID() == 56013) then
      temp = true
    end
    if bits[CommonFun.AttrEffect2.UltraMan] == 1 and (targetUser:GetNpcID() == 56107 or targetUser:GetNpcID() == 56108 or targetUser:GetNpcID() == 56109) then
      temp = true
    end
    if TransformID == 62052 or TransformID == 62143 or TransformID == 62142 then
      temp = true
    end
    if TransformID == 56634 or TransformID == 56635 then
      temp = true
    end
    if TransformID == 455003 or TransformID == 455004 or TransformID == 455005 or TransformID == 280118 or TransformID == 280119 or TransformID == 280120 then
      temp = true
    end
    if 80089 <= TransformID and TransformID <= 80094 then
      temp = true
    end
    if temp == false then
      return 6
    end
  end
  local index = params.hitedIndex
  if 100 <= index and math.floor(params.skillIDAndLevel / 1000) == 144 then
    local Buff1 = srcUser:HasBuffID(45000130)
    local Num0 = srcUser:GetRunePoint(52001)
    local Num1 = srcUser:GetRunePoint(52040)
    local Num2 = srcUser:GetRunePoint(52041)
    local Num3 = srcUser:GetRunePoint(52042)
    local Num4 = srcUser:GetRunePoint(52003)
    local RuneDamage = (Num0 + Num1 + Num2 + Num3) * 0.1 + Num4 * 0.03
    local BuffRate = 0
    if Buff1 == true then
      BuffRate = RuneDamage
    end
    return damage * BuffRate, damageType
  end
  if damage < 0 then
    RealDamage = 0
  end
  if index ~= 1 and (math.floor(params.skillIDAndLevel / 1000) == 74 or math.floor(params.skillIDAndLevel / 1000) == 79 or math.floor(params.skillIDAndLevel / 1000) == 107 or math.floor(params.skillIDAndLevel / 1000) == 1902) then
    local Num1 = srcUser:GetRunePoint(22070)
    local Num2 = srcUser:GetRunePoint(22033)
    local Num3 = srcUser:GetRunePoint(22080)
    local Num4 = srcUser:GetRunePoint(223008)
    local Num5 = srcUser:GetRunePoint(223012)
    local RuneDamage = (Num1 + Num2 + Num4) * 0.02 + (Num3 + Num5) * 0.05
    return math.floor(damage * RuneDamage * (1 + RealDamage)), damageType
  end
  return math.floor(damage * (1 + RealDamage)), damageType
end
No formula links

Changes: 20251127_update vs 20251105_standard_instalation

 function CommonFun.DoCalcDamage(srcUser, targetUser, params, logger)
  local damage = 0
  local damageType
  local RealDamage = targetUser:GetProperty("RealDamage")
  if targetUser:HasBuffID(96050) and 1 <= RealDamage then
    local skillID, skillLevel = CommonFun.UnmergeSkillID(params.skillIDAndLevel)
    if skillID == 359 then
      RealDamage = RealDamage - 1
    end
  end
  local MaxHp = targetUser:GetProperty("MaxHp")
  local BaseLv = targetUser.BaseLv
  local BaseLv1 = srcUser.BaseLv
  local TransformID = srcUser:GetProperty("TransformID")
  local MRefine = srcUser:GetProperty("MRefine")
  local skillParams = Table_Skill[params.skillIDAndLevel]
  local damageParamList = skillParams.Damage
  for i = 1, #damageParamList do
    local damageParam = damageParamList[i]
    local func = CommonFun.CalcDamageFuncs[damageParam.type]
    if nil ~= func then
      local partDamage, partDamageType = func(srcUser, targetUser, params, damageParam, logger)
      local elementDam = CommonFun.DoCalcElementDam(srcUser, targetUser, params, damageParam)
      local stateDam = CommonFun.DoCalcStateEffectDam(srcUser, targetUser)
      local srcAtkElement = CommonFun.GetUserAtkAttr(srcUser, params, damageParam)
      if (targetUser:HasBuffID(116813) or targetUser:HasBuffID(116817) or targetUser:HasBuffID(186150) or targetUser:HasBuffID(156111) or targetUser:HasBuffID(135271) or targetUser:HasBuffID(232130) or targetUser:HasBuffID(116810) and targetUser.boss == false and targetUser.mini == false) and 0 < partDamage then
        local Numjianyu = srcUser:GetRunePoint(223021)
        local skillID, skillLevel = CommonFun.UnmergeSkillID(params.skillIDAndLevel)
        local GemValue = srcUser:GetGemValue(21161)
        if skillID == 1915 or skillID == 1908 or skillID == 1941 then
          if 1 <= Numjianyu and targetUser:HasBuffID(116810) then
            partDamage = partDamage * Numjianyu * 0.2
          else
            partDamage = 0
            partDamageType = CommonFun.DamageType.WeaponBlock
          end
        elseif skillID == 1164 then
          if targetUser:HasBuffID(116810) and srcUser:HasBuffID(22000010) then
          elseif 0 < GemValue and srcAtkElement == 8 then
+          elseif srcUser:HasBuffID(1000031) and srcAtkElement == 8 then
           elseif 0 < GemValue and srcAtkElement ~= 8 then
            partDamage = 0
          else
            partDamage = 0
            partDamageType = CommonFun.DamageType.WeaponBlock
          end
        elseif srcAtkElement ~= 8 then
          partDamage = 0
          partDamageType = CommonFun.DamageType.WeaponBlock
        end
      end
      if (srcAtkElement == 5 or srcAtkElement == 6 or srcAtkElement == 8) and targetUser:HasBuffID(154910) then
        partDamage = 0
      end
      if srcAtkElement == 3 and targetUser:HasBuffID(154920) then
        partDamage = 0
      end
      if srcAtkElement == 4 and (targetUser:HasBuffID(154920) or targetUser:HasBuffID(10570)) then
        partDamage = 0
      end
      if (srcAtkElement == 1 or srcAtkElement == 2) and targetUser:HasBuffID(154930) then
        partDamage = 0
      end
      if (srcAtkElement == 7 or srcAtkElement == 9) and targetUser:HasBuffID(154940) then
        partDamage = 0
      end
      if srcAtkElement == 10 and (targetUser:HasBuffID(154940) or targetUser:HasBuffID(10580)) then
        partDamage = 0
      end
      if srcAtkElement == 1 and targetUser:HasBuffID(49160) then
        partDamage = partDamage * 0.4
      end
      if srcAtkElement == 2 and targetUser:HasBuffID(49170) then
        partDamage = partDamage * 0.4
      end
      if srcAtkElement == 3 and targetUser:HasBuffID(49180) then
        partDamage = partDamage * 0.4
      end
      if srcAtkElement == 4 and targetUser:HasBuffID(49190) then
        partDamage = partDamage * 0.4
      end
      if srcAtkElement == 6 and targetUser:HasBuffID(49270) then
        partDamage = partDamage * 0.4
      end
      if srcAtkElement == 7 and targetUser:HasBuffID(49280) then
        partDamage = partDamage * 0.4
      end
      if srcAtkElement == 8 and targetUser:HasBuffID(49290) then
        partDamage = partDamage * 0.4
      end
      if srcAtkElement == 10 and targetUser:HasBuffID(49300) then
        partDamage = partDamage * 0.4
      end
      if srcAtkElement == 5 and targetUser:HasBuffID(49310) then
        partDamage = partDamage * 0.4
      end
      if (srcAtkElement == 3 or srcAtkElement == 4) and targetUser:HasBuffID(159570) then
        partDamage = partDamage * 0.8
      end
      if (srcAtkElement == 2 or srcAtkElement == 4) and targetUser:HasBuffID(159571) then
        partDamage = partDamage * 0.8
      end
      if (srcAtkElement == 1 or srcAtkElement == 2) and targetUser:HasBuffID(159572) then
        partDamage = partDamage * 0.8
      end
      if (srcAtkElement == 1 or srcAtkElement == 3) and targetUser:HasBuffID(159573) then
        partDamage = partDamage * 0.8
      end
      if srcAtkElement ~= 8 and targetUser:HasBuffID(159574) then
        partDamage = partDamage * 0.8
      end
      if srcAtkElement == 6 and targetUser:HasBuffID(159575) then
        partDamage = partDamage * 0.8
      end
      if srcUser:HasBuffID(178100) and targetUser:HasBuffID(177930) then
        local fuhua = targetUser:GetBuffLayer(177930)
        partDamage = partDamage * (1 + math.min(fuhua * 0.2, 0.6))
      end
      partDamage = partDamage * elementDam * stateDam
      damage = damage + partDamage
      if nil ~= partDamageType then
        damageType = partDamageType
      end
    else
      logger.error(string.format("CommonFun.CalcDamageFuncs[%s] is nil", tostring(damageParam.type)))
    end
  end
  damage = math.floor(damage)
  if 0 < damage and targetUser:GetNpcID() == 30043 then
    local damageParam = damageParamList[1]
    if damageParam ~= nil and damageParam.type ~= 8002 then
      return 1, CommonFun.DamageType.Normal
    end
  end
  if 0 < damage and (targetUser:GetNpcID() == 56008 or targetUser:GetNpcID() == 56009 or targetUser:GetNpcID() == 56010 or targetUser:GetNpcID() == 56011 or targetUser:GetNpcID() == 56012 or targetUser:GetNpcID() == 56013) then
    local damageParam = damageParamList[1]
    if damageParam ~= nil and damageParam.type ~= 8020 and damageParam.type ~= 8021 then
      return 1, CommonFun.DamageType.Normal
    end
  end
  if 0 < damage and (targetUser:GetNpcID() == 56107 or targetUser:GetNpcID() == 56108 or targetUser:GetNpcID() == 56109) then
    local damageParam = damageParamList[1]
    if damageParam ~= nil and damageParam.type ~= 8010 and damageParam.type ~= 8011 then
      return 1, CommonFun.DamageType.Normal
    end
  end
  if targetUser:HasBuffID(155031) then
    local skillID, skillLevel = CommonFun.UnmergeSkillID(params.skillIDAndLevel)
    if skillID == 79338 then
      return 0, CommonFun.DamageType.Miss
    end
  end
  if srcUser:GetNpcID() == 300102 or srcUser:GetNpcID() == 301300 or srcUser:GetNpcID() == 301301 or srcUser:GetNpcID() == 301302 or srcUser:GetNpcID() == 301303 then
    local skillID, skillLevel = CommonFun.UnmergeSkillID(params.skillIDAndLevel)
    if skillID == 79342 then
      local targetid = targetUser:GetGuid()
      local distance = srcUser:GetDistance(targetid)
      if distance <= 7 then
        return 0, CommonFun.DamageType.None
      end
    end
  end
  if srcUser.boss and targetUser.boss == false then
    local mapid, maptype = srcUser:GetMapInfo()
    if maptype == 5 then
      return math.floor(damage * (1 + RealDamage)), damageType
    elseif srcUser:GetNpcID() == 291100 or srcUser:GetNpcID() == 291200 or srcUser:GetNpcID() == 291300 or srcUser:GetNpcID() == 292100 or srcUser:GetNpcID() == 292200 or srcUser:GetNpcID() == 292300 or srcUser:GetNpcID() == 293100 or srcUser:GetNpcID() == 293200 or srcUser:GetNpcID() == 293300 then
      return math.floor(damage * (1 + RealDamage)), damageType
    elseif srcUser:GetNpcID() == 294104 or srcUser:GetNpcID() == 294105 or srcUser:GetNpcID() == 294204 or srcUser:GetNpcID() == 294205 or srcUser:GetNpcID() == 294304 or srcUser:GetNpcID() == 294305 or srcUser:GetNpcID() == 295107 or srcUser:GetNpcID() == 295207 or srcUser:GetNpcID() == 295307 then
      return math.floor(damage * (1 + RealDamage)) + math.floor(MaxHp * math.random(1, 5) / 300) * (1 + (BaseLv1 - BaseLv) / 200), damageType
    elseif BaseLv <= BaseLv1 and 70 <= BaseLv1 then
      return math.floor(damage * (1 + RealDamage)) + math.floor(BaseLv1 * math.random(10, 25) + MRefine * 5 + MaxHp * math.random(1, 5) / 100) * (1 + (BaseLv1 - BaseLv) / 200), damageType
    else
      return math.floor(damage * (1 + RealDamage)) + math.floor(BaseLv1 * math.random(10, 25) + MRefine * 5 + MaxHp * math.random(1, 5) / 100) * (1 - (BaseLv - BaseLv1) / 200), damageType
    end
  end
  if targetUser.boss and srcUser:GetNpcID() == 0 and BaseLv >= BaseLv1 then
    return math.floor(damage * (1 + RealDamage)) * (1 - (BaseLv - BaseLv1) / 200), damageType
  end
  if TransformID ~= 0 then
    local AttrEffect = srcUser:GetProperty("AttrEffect2")
    local bits = CommonFun.getBits(AttrEffect)
    local temp = false
    if bits[CommonFun.AttrEffect2.BoliBianshen] == 1 or bits[CommonFun.AttrEffect2.GonghuiBianshen] == 1 then
      temp = true
    end
    if bits[CommonFun.AttrEffect2.BCatBianshen] == 1 and targetUser:GetNpcID() == 30043 then
      temp = true
    end
    if 240000 <= TransformID and TransformID <= 240050 then
      temp = true
    end
    if bits[CommonFun.AttrEffect2.UltraMan] == 1 and (targetUser:GetNpcID() == 56008 or targetUser:GetNpcID() == 56009 or targetUser:GetNpcID() == 56010 or targetUser:GetNpcID() == 56011 or targetUser:GetNpcID() == 56012 or targetUser:GetNpcID() == 56013) then
      temp = true
    end
    if bits[CommonFun.AttrEffect2.UltraMan] == 1 and (targetUser:GetNpcID() == 56107 or targetUser:GetNpcID() == 56108 or targetUser:GetNpcID() == 56109) then
      temp = true
    end
    if TransformID == 62052 or TransformID == 62143 or TransformID == 62142 then
      temp = true
    end
    if TransformID == 56634 or TransformID == 56635 then
      temp = true
    end
    if TransformID == 455003 or TransformID == 455004 or TransformID == 455005 or TransformID == 280118 or TransformID == 280119 or TransformID == 280120 then
      temp = true
    end
    if 80089 <= TransformID and TransformID <= 80094 then
      temp = true
    end
    if temp == false then
      return 6
    end
  end
  local index = params.hitedIndex
  if 100 <= index and math.floor(params.skillIDAndLevel / 1000) == 144 then
    local Buff1 = srcUser:HasBuffID(45000130)
    local Num0 = srcUser:GetRunePoint(52001)
    local Num1 = srcUser:GetRunePoint(52040)
    local Num2 = srcUser:GetRunePoint(52041)
    local Num3 = srcUser:GetRunePoint(52042)
    local Num4 = srcUser:GetRunePoint(52003)
    local RuneDamage = (Num0 + Num1 + Num2 + Num3) * 0.1 + Num4 * 0.03
    local BuffRate = 0
    if Buff1 == true then
      BuffRate = RuneDamage
    end
    return damage * BuffRate, damageType
  end
  if damage < 0 then
    RealDamage = 0
  end
  if index ~= 1 and (math.floor(params.skillIDAndLevel / 1000) == 74 or math.floor(params.skillIDAndLevel / 1000) == 79 or math.floor(params.skillIDAndLevel / 1000) == 107 or math.floor(params.skillIDAndLevel / 1000) == 1902) then
    local Num1 = srcUser:GetRunePoint(22070)
    local Num2 = srcUser:GetRunePoint(22033)
    local Num3 = srcUser:GetRunePoint(22080)
    local Num4 = srcUser:GetRunePoint(223008)
    local Num5 = srcUser:GetRunePoint(223012)
    local RuneDamage = (Num1 + Num2 + Num4) * 0.02 + (Num3 + Num5) * 0.05
    return math.floor(damage * RuneDamage * (1 + RealDamage)), damageType
  end
  return math.floor(damage * (1 + RealDamage)), damageType
end

Version History

Loading dependencies...
Loading usage...