CommonFun

calcDamage / calcBuff explorer

47 formulas listed.

CommonFun.calcBuff_100197 mapped buffs · 18 skills
function CommonFun.calcBuff_100(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local SilenceAtk = srcUser:GetProperty("SilenceAtk")
  local SilenceDef2 = targetUser:GetProperty("SilenceDef")
  local SlienceDam = 1 + SilenceAtk - SilenceDef2
  if SlienceDam <= 0 then
    SlienceDam = 0
  end
  local StateAtk = srcUser:GetProperty("StateAtk")
  local StateDef2 = targetUser:GetProperty("StateDef")
  local StateDam = 1 + StateAtk - StateDef2
  if StateDam <= 0 then
    StateDam = 0
  end
  local A = (lv * a + b) * SlienceDam * StateDam * CommonFun.calcAttrSilenceRate(srcUser, targetUser)
  if A <= 0 then
    return 0
  end
  return A
end
CommonFun.calcBuff_10000 mapped uses
function CommonFun.calcBuff_1000(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local SilenceAtk = srcUser:GetProperty("SilenceAtk")
  local SilenceDef2 = targetUser:GetProperty("SilenceDef")
  local SlienceDam = 1 + SilenceAtk - SilenceDef2
  if SlienceDam <= 0 then
    SlienceDam = 0
  end
  local StateAtk = srcUser:GetProperty("StateAtk")
  local StateDef2 = targetUser:GetProperty("StateDef")
  local StateDam = 1 + StateAtk - StateDef2
  if StateDam <= 0 then
    StateDam = 0
  end
  local A = (lv * a + b) * SlienceDam * StateDam * CommonFun.calcAttrSilenceTime(srcUser, targetUser)
  if A <= 0 then
    return 0
  end
  return A
end
CommonFun.calcBuff_10001020 mapped buffs · 1 skills
function CommonFun.calcBuff_100010(srcUser, targetUser, a, b, c, d, lv, damage)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local skilllv_1 = srcUser:GetLernedSkillLevel(5002)
  local skilllv_2 = srcUser:GetLernedSkillLevel(1161)
  local A = 20 + skilllv_1 * 6 + skilllv_2 * 10
  return A
end
CommonFun.calcBuff_1000200 mapped uses
function CommonFun.calcBuff_100020(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local skilllv_1 = srcUser:GetLernedSkillLevel(1163)
  local skilllv_2 = srcUser:GetLernedSkillLevel(5003)
  local RefineLv = srcUser:GetEquipedRefineLv(7)
  local A = math.min(0.1, skilllv_1 * 0.02)
  if 10 <= RefineLv and 1 <= skilllv_1 then
    A = A + (RefineLv - 10) * 0.01
  end
  if 0 <= skilllv_2 then
    A = A * skilllv_2 * 0.05
  end
  return A
end
CommonFun.calcBuff_1000300 mapped uses
function CommonFun.calcBuff_100030(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local Attr = srcUser:GetProperty(CommonFun.GetAttrName(c))
  local RefineLv1 = srcUser:GetEquipedRefineLv(7)
  local skilllv_1 = srcUser:GetLernedSkillLevel(5102)
  local A = Attr * (b * lv) / a + d
  return A
end
CommonFun.calcBuff_1000400 mapped uses
function CommonFun.calcBuff_100040(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local Attr = srcUser:GetProperty(CommonFun.GetAttrName(c))
  local RefineLv1 = srcUser:GetEquipedRefineLv(7)
  local skilllv_1 = srcUser:GetLernedSkillLevel(5102)
  local A = math.floor(Attr / a * 1000) * (b * lv) / 1000 + d
  return A
end
CommonFun.calcBuff_1000500 mapped uses
function CommonFun.calcBuff_100050(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local skilllv_1 = srcUser:GetLernedSkillLevel(356)
  local skilllv_2 = srcUser:GetLernedSkillLevel(5402)
  local A = skilllv_1 * 4 + skilllv_2 * 2 + 10
  return A
end
CommonFun.calcBuff_1000600 mapped uses
function CommonFun.calcBuff_100060(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local Luk = srcUser:GetProperty("Luk")
  local skilllv_1 = srcUser:GetLernedSkillLevel(5503)
  local skilllv_2 = srcUser:GetLernedSkillLevel(5553)
  local A = math.floor(Luk / 10) + skilllv_1 + skilllv_2
  return A
end
CommonFun.calcBuff_10007020 mapped buffs · 1 skills
function CommonFun.calcBuff_100070(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local targetRace = targetUser.race
  local A = 0
  if targetRace == 3 or targetRace == 5 then
    A = 100
  end
  return A
end
CommonFun.calcBuff_1000800 mapped uses
function CommonFun.calcBuff_100080(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local A = 5
  local wuqi = srcUser:GetEquipTypeByPos(7)
  local skilllv_1 = srcUser:GetLernedSkillLevel(6101)
  local Num2 = 0
  if wuqi == 250 then
    Num2 = skilllv_1
  end
  A = A + Num2
  return A
end
CommonFun.calcBuff_1000900 mapped uses
function CommonFun.calcBuff_100090(srcUser, targetUser, a, b, c, d, lv, damage)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local A = 0
  local skilllv_1 = srcUser:GetLernedSkillLevel(6103)
  A = -damage * skilllv_1 * 0.025
  return A
end
CommonFun.calcBuff_1001000 mapped uses
function CommonFun.calcBuff_100100(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local Num = srcUser:GetRunePoint(c)
  local skill_lv = srcUser:GetLernedSkillLevel(5101)
  local A = skill_lv * a + b + Num * d
  return A
end
CommonFun.calcBuff_1001102 mapped buffs · 1 skills
function CommonFun.calcBuff_100110(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local skill_lv1 = srcUser:GetLernedSkillLevel(a)
  local skill_lv2 = srcUser:GetLernedSkillLevel(b)
  local A = (skill_lv1 + skill_lv2) * c + d
  return A
end
CommonFun.calcBuff_10012022 mapped buffs · 1 skills
function CommonFun.calcBuff_100120(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local m = 0
  if targetUser:GetNpcID() ~= 0 and srcUser:HasBuffID(1004041) then
    m = 1
  end
  local skill_lv1 = srcUser:GetLernedSkillLevel(5401)
  local A = skill_lv1 * m * 20
  return A
end
CommonFun.calcBuff_1001300 mapped uses
function CommonFun.calcBuff_100130(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local A = 0
  local skill_lv1 = srcUser:GetLernedSkillLevel(5902)
  local shengguang = 1
  if srcUser:HasBuffID(1009002) then
    shengguang = 3
  end
  local WeaponType = srcUser:GetEquipedWeaponType()
  if WeaponType == 220 then
    A = skill_lv1 * shengguang * 2
  end
  return A
end
CommonFun.calcBuff_1001400 mapped uses
function CommonFun.calcBuff_100140(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local A = 0
  local skill_lv1 = srcUser:GetLernedSkillLevel(6101)
  local WeaponType = srcUser:GetEquipedWeaponType()
  if WeaponType == 250 and 1 <= skill_lv1 then
    A = 100
  end
  return A
end
CommonFun.calcBuff_1001500 mapped uses
function CommonFun.calcBuff_100150(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local A = 0
  if targetUser:HasBuffID(a) then
    A = 100
  end
  return A
end
CommonFun.calcBuff_10016080 mapped buffs · 1 skills
function CommonFun.calcBuff_100160(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local A = 0
  local WeaponType = srcUser:GetEquipedWeaponType()
  if WeaponType == 220 then
    A = 100
  end
  return A
end
CommonFun.calcBuff_10017040 mapped buffs · 1 skills
function CommonFun.calcBuff_100170(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local A = 0
  local WeaponType = srcUser:GetEquipedWeaponType()
  if WeaponType == 190 then
    A = 100
  end
  return A
end
CommonFun.calcBuff_1001800 mapped uses
function CommonFun.calcBuff_100180(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local A = 0
  local skilllv_1 = srcUser:GetLernedSkillLevel(5703)
  if targetUser:IsBuffFrom(1007000, srcUser:GetGuid()) and 1 <= skilllv_1 then
    A = 100
  end
  return A
end
CommonFun.calcBuff_1001900 mapped uses
function CommonFun.calcBuff_100190(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local A = 0
  local skilllv_1 = srcUser:GetLernedSkillLevel(5702)
  A = skilllv_1 * 0.1
  return A
end
CommonFun.calcBuff_1002000 mapped uses
function CommonFun.calcBuff_100200(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local A = 2500
  local skilllv_1 = srcUser:GetLernedSkillLevel(5600)
  local skilllv_2 = srcUser:GetLernedSkillLevel(5602)
  A = (2500 - skilllv_1 * 100) * (1 - skilllv_2 * 0.06)
  return A
end
CommonFun.calcBuff_1002100 mapped uses
function CommonFun.calcBuff_100210(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local Num = srcUser:GetRunePoint(c)
  local RefineLv = srcUser:GetEquipedRefineLv(7)
  local Ring1 = srcUser:GetEquipedID(7)
  local diary = 0
  local StateEffect = targetUser:GetProperty("StateEffect")
  local bits = CommonFun.getBits(StateEffect)
  if Ring1 == 63440 or Ring1 == 163440 or Ring1 == 63417 or Ring1 == 163417 then
    diary = RefineLv
  end
  local card = 0
  if srcUser:HasBuffID(53340) then
    card = 3
  end
  if (bits[CommonFun.StateEffect.Poison] == 1 or bits[CommonFun.StateEffect.Blood] == 1 or bits[CommonFun.StateEffect.Burn] == 1 or bits[CommonFun.StateEffect.Dizzy] == 1 or bits[CommonFun.StateEffect.Freeze] == 1 or bits[CommonFun.StateEffect.Stone] == 1 or bits[CommonFun.StateEffect.Sleep] == 1 or bits[CommonFun.StateEffect.Fear] == 1 or bits[CommonFun.StateEffect.NoMove] == 1 or bits[CommonFun.StateEffect.Silence] == 1 or bits[CommonFun.StateEffect.Curse] == 1 or bits[CommonFun.StateEffect.Dark] == 1) and (srcUser:HasBuffID(43110) or srcUser:HasBuffLayer(43110, EBUFFERLAYER_SHADOW)) and srcUser:HasBuffID(42240) then
    card = card + 5
  end
  if srcUser:HasBuffID(90004514) and srcUser:HasBuffID(90004515) then
    card = card + 5
  end
  local skilllv_dashi = srcUser:GetLernedSkillLevel(5102)
  local dashi = skilllv_dashi * 2
  local A = lv * a + b + Num * d + diary * 0.3 + card + dashi
  local skilllv_1 = srcUser:GetLernedSkillLevel(5103)
  A = A * skilllv_1 * 0.1
  return A
end
CommonFun.calcBuff_10022060 mapped buffs · 1 skills
function CommonFun.calcBuff_100220(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local A = 0
  local skilllv_1 = srcUser:GetLernedSkillLevel(a)
  A = skilllv_1 * b + c
  local Profession = targetUser:GetProfressionID()
  if Profession == 82 or Profession == 83 or Profession == 84 then
    A = 0
  end
  return A
end
CommonFun.calcBuff_1002300 mapped uses
function CommonFun.calcBuff_100230(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local A = 0
  local skilllv_1 = srcUser:GetLernedSkillLevel(a)
  A = skilllv_1 * b + c
  if srcUser:HasBuffID(1002004) then
    A = A * 5
  end
  return A
end
CommonFun.calcBuff_1002400 mapped uses
function CommonFun.calcBuff_100240(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local A = 1
  local skilllv_1 = srcUser:GetLernedSkillLevel(6011)
  if skilllv_1 == 1 or skilllv_1 == 2 then
    A = 2
  end
  if skilllv_1 == 3 or skilllv_1 == 4 then
    A = 3
  end
  if skilllv_1 == 5 then
    A = 4
  end
  return A
end
CommonFun.calcBuff_1002500 mapped uses
function CommonFun.calcBuff_100250(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local A = 0
  local skilllv_1 = srcUser:GetLernedSkillLevel(6010)
  local skilllv_2 = srcUser:GetLernedSkillLevel(6011)
  local layer1 = srcUser:GetBuffLayer(1010201)
  local layer2 = srcUser:GetBuffLayer(1010211)
  local layer3 = srcUser:GetBuffLayer(1010221)
  local layer = math.max(layer1, layer2, layer3)
  A = (skilllv_1 * a + b) * (1 + (layer - 1) * (skilllv_2 * 0.05 + 0.15))
  return A
end
CommonFun.calcBuff_1002600 mapped uses
function CommonFun.calcBuff_100260(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local RefineLv = srcUser:GetEquipedRefineLv(7)
  local skilllv_1 = srcUser:GetLernedSkillLevel(5811)
  local A = RefineLv * a * skilllv_1
  return A
end
CommonFun.calcBuff_1002700 mapped uses
function CommonFun.calcBuff_100270(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local skilllv_1 = srcUser:GetLernedSkillLevel(1151)
  local skilllv_2 = srcUser:GetLernedSkillLevel(5812)
  local chaoxi = 0
  local skillID = srcUser:GetCopySkillID()
  if skillID == 93 or skillID == 81 or skillID == 78 or skillID == 82 or skillID == 1331 or skillID == 1329 or skillID == 800 then
    chaoxi = skilllv_2 * 2
  end
  local A = (skilllv_1 * 2 + 3 + chaoxi) * (0.5 + 0.1 * skilllv_2)
  return A
end
CommonFun.calcBuff_1002800 mapped uses
function CommonFun.calcBuff_100280(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local skilllv_1 = srcUser:GetLernedSkillLevel(1151)
  local skilllv_2 = srcUser:GetLernedSkillLevel(5812)
  local chaoxi = 0
  local skillID = srcUser:GetCopySkillID()
  if skillID == 93 or skillID == 81 or skillID == 78 or skillID == 82 or skillID == 1331 or skillID == 1329 then
    chaoxi = skilllv_2 * 2
  end
  local A = skilllv_1 * 2 + 3 + chaoxi
  return A
end
CommonFun.calcBuff_10029060 mapped buffs · 4 skills
function CommonFun.calcBuff_100290(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local A = 0
  local StateEffect = targetUser:GetProperty("StateEffect")
  local bits3 = CommonFun.getBits(StateEffect)
  if bits3[CommonFun.StateEffect.Poison] == 1 then
    A = 100
  end
  return A
end
CommonFun.calcBuff_1003000 mapped uses
function CommonFun.calcBuff_100300(srcUser, targetUser, a, b, c, d, lv)
  local Int = srcUser:GetProperty("Int")
  local Vit = srcUser:GetProperty("Vit")
  local MAtk = srcUser:GetProperty("MAtk")
  local MAtkPer = srcUser:GetProperty("MAtkPer")
  local MaxHp = targetUser:GetProperty("MaxHp")
  local MDamIncrease = CommonFun.calcMDamIncrease(srcUser, targetUser)
  local IgnoreMDef = srcUser:GetProperty("IgnoreMDef")
  if 1 <= IgnoreMDef then
    IgnoreMDef = 1
  end
  local MRefine = srcUser:GetProperty("MRefine")
  local RangeDam = srcUser:GetProperty("RangeDam")
  local MDef2 = targetUser:GetProperty("MDef")
  local MDefPer2 = targetUser:GetProperty("MDefPer")
  local Vit2 = targetUser:GetProperty("Vit")
  local VitPer2 = targetUser:GetProperty("VitPer")
  local Int2 = targetUser:GetProperty("Int")
  local IntPer2 = targetUser:GetProperty("IntPer")
  local MDamReduc2 = CommonFun.calcMDamReDuc(srcUser, targetUser)
  local RefineMDamReduc = targetUser:GetProperty("RefineMDamReduc")
  local raceparam = 1
  local srcRace = srcUser.race
  local targetRace = targetUser.race
  if srcUser:HasBuffID(49320) and srcUser:HasBuffID(49325) then
  elseif srcUser:HasBuffID(49320) then
    targetRace = 2
  end
  if targetUser:HasBuffID(49320) and targetUser:HasBuffID(49325) then
  elseif targetUser:HasBuffID(49320) then
    srcRace = 2
  end
  if nil == CommonFun.RaceProps[targetRace] then
    return 0
  end
  if nil == CommonFun.RaceProps[srcRace] then
    return 0
  end
  local raceInc = srcUser:GetProperty(CommonFun.RaceProps[targetRace][1])
  local raceRed = targetUser:GetProperty(CommonFun.RaceProps[srcRace][2])
  local raceparam = 1 + raceInc - raceRed
  local mapid, maptype = srcUser:GetMapInfo()
  if maptype == 2 or maptype == 4 then
    local B = raceRed - raceInc
    B = B < -1 and -1 or 1 < B and 1 or B
    B = math.floor(B * 1000) / 1000
    B = B + 0.3 * (1 - math.sin(B * 3.14 / 2))
    raceparam = 1 - B
  end
  if raceparam <= 0.1 then
    raceparam = 0.1
  end
  local srcAtkElement = 10
  local targetDefElement = targetUser:GetProperty("DefAttr")
  local ElementRate = CommonFun.GetElementRate(srcUser, srcAtkElement, targetUser, targetDefElement)
  if (srcUser:HasBuffID(69650) or srcUser:HasBuffID(71090)) and 1 < ElementRate then
    ElementRate = ElementRate * 1.1
  end
  if targetUser:HasBuffID(49130) then
    ElementRate = math.min(ElementRate, 1)
  end
  if srcUser:HasBuffID(49210) then
    ElementRate = ElementRate + 0.15
  end
  if srcUser:HasBuffID(77480) then
    ElementRate = ElementRate + 0.1
  end
  if nil == CommonFun.NatureProps[srcAtkElement] or nil == CommonFun.NatureProps[targetDefElement] or nil == targetDefElement then
    return 0
  end
  local elementRed = targetUser:GetProperty(CommonFun.NatureProps[srcAtkElement][2])
  local elementAtk = srcUser:GetProperty(CommonFun.NatureProps[srcAtkElement][3])
  local elementThrough = srcUser:GetProperty(CommonFun.NatureProps[srcAtkElement][4])
  local elementResistance = targetUser:GetProperty(CommonFun.NatureProps[srcAtkElement][5])
  if 0 <= elementRed then
    elementRed = elementRed * math.max(1 - elementThrough, 0)
  end
  if 0 <= elementAtk then
    elementAtk = elementAtk * math.max(1 - elementResistance, 0)
  end
  local elementparam = ElementRate
  local elementparam2 = 1 + elementAtk - elementRed
  local mapid, maptype = srcUser:GetMapInfo()
  if maptype == 2 or maptype == 4 then
    local B = elementRed - elementAtk
    B = B < -1 and -1 or 1 < B and 1 or B
    B = math.floor(B * 1000) / 1000
    B = B + 0.3 * (1 - math.sin(B * 3.14 / 2))
    elementparam2 = 1 - B
  end
  if elementparam2 <= 0.1 then
    elementparam2 = 0.1
  end
  if elementparam2 <= 0.1 then
    elementparam2 = 0.1
  end
  local ele = elementparam * elementparam2
  if targetDefElement == nil or ElementRate == nil or elementRed == nil or elementAtk == nil then
    ele = 1
  end
  local skilllv_1 = srcUser:GetLernedSkillLevel(5110)
  local NpcParam = CommonFun.NpcParam(srcUser, targetUser, params, damageParam, logger)
  local BaseMAtk = Int + math.floor(Int * Int / 100)
  local MAtkFinal = ((MAtk - BaseMAtk) * (1 + MAtkPer) + BaseMAtk) * ele * raceparam * NpcParam
  local MDefReduc = CommonFun.CalcMDef(srcUser, targetUser)
  local A = -((MAtkFinal * MDefReduc * (1 - MDamReduc2) + MRefine) * (skilllv_1 * 0.7 + 2.6) * (1 - RefineMDamReduc) * (1 + MDamIncrease) - Vit2 / 2 * (1 + VitPer2) - Int2 * (1 + IntPer2)) * (1 + RangeDam)
  if targetUser:GetNpcID() ~= 0 then
    A = A * 2
  end
  local AttrFunction = srcUser:GetProperty("AttrFunction")
  local bitfunc = CommonFun.getBits(AttrFunction)
  if (targetUser.boss or targetUser.mini or targetUser.changelinepunish) and (targetUser.zoneType == 1 or targetUser.zoneType == 22) and targetUser.noPunishBoss == false and bitfunc[CommonFun.AttrFunction.JustInViceZone] == 1 and targetUser.isBossFromBranch == false then
    A = 0
  end
  if CommonFun.checkAttrFunctionMiss(targetUser, srcUser) then
    A = 0
  end
  if targetUser.boss and targetUser.zoneType == 22 and CommonFun.CheckStormBossMiss(targetUser, srcUser) then
    A = 0
  end
  if targetUser:GetNpcID() == 30043 or targetUser:GetNpcID() == 280303 or targetUser:GetNpcID() == 56008 or targetUser:GetNpcID() == 56009 or targetUser:GetNpcID() == 56010 or targetUser:GetNpcID() == 56011 or targetUser:GetNpcID() == 56012 or targetUser:GetNpcID() == 56013 then
    A = -1
  end
  if targetUser:DamageAlways1() then
    A = -1
  end
  return A
end
CommonFun.calcBuff_1003100 mapped uses
function CommonFun.calcBuff_100310(srcUser, targetUser, a, b, c, d, lv)
  local Int = srcUser:GetProperty("Int")
  local Vit = srcUser:GetProperty("Vit")
  local MAtk = srcUser:GetProperty("MAtk")
  local MAtkPer = srcUser:GetProperty("MAtkPer")
  local MaxHp = targetUser:GetProperty("MaxHp")
  local MDamIncrease = CommonFun.calcMDamIncrease(srcUser, targetUser)
  local IgnoreMDef = srcUser:GetProperty("IgnoreMDef")
  if 1 <= IgnoreMDef then
    IgnoreMDef = 1
  end
  local MRefine = srcUser:GetProperty("MRefine")
  local RangeDam = srcUser:GetProperty("RangeDam")
  local MDef2 = targetUser:GetProperty("MDef")
  local MDefPer2 = targetUser:GetProperty("MDefPer")
  local Vit2 = targetUser:GetProperty("Vit")
  local VitPer2 = targetUser:GetProperty("VitPer")
  local Int2 = targetUser:GetProperty("Int")
  local IntPer2 = targetUser:GetProperty("IntPer")
  local MDamReduc2 = CommonFun.calcMDamReDuc(srcUser, targetUser)
  local RefineMDamReduc = targetUser:GetProperty("RefineMDamReduc")
  local raceparam = 1
  local srcRace = srcUser.race
  local targetRace = targetUser.race
  if srcUser:HasBuffID(49320) and srcUser:HasBuffID(49325) then
  elseif srcUser:HasBuffID(49320) then
    targetRace = 2
  end
  if targetUser:HasBuffID(49320) and targetUser:HasBuffID(49325) then
  elseif targetUser:HasBuffID(49320) then
    srcRace = 2
  end
  if nil == CommonFun.RaceProps[targetRace] then
    return 0
  end
  if nil == CommonFun.RaceProps[srcRace] then
    return 0
  end
  local raceInc = srcUser:GetProperty(CommonFun.RaceProps[targetRace][1])
  local raceRed = targetUser:GetProperty(CommonFun.RaceProps[srcRace][2])
  local raceparam = 1 + raceInc - raceRed
  local mapid, maptype = srcUser:GetMapInfo()
  if maptype == 2 or maptype == 4 then
    local B = raceRed - raceInc
    B = B < -1 and -1 or 1 < B and 1 or B
    B = math.floor(B * 1000) / 1000
    B = B + 0.3 * (1 - math.sin(B * 3.14 / 2))
    raceparam = 1 - B
  end
  if raceparam <= 0.1 then
    raceparam = 0.1
  end
  local srcAtkElement = 10
  local targetDefElement = targetUser:GetProperty("DefAttr")
  local ElementRate = CommonFun.GetElementRate(srcUser, srcAtkElement, targetUser, targetDefElement)
  if (srcUser:HasBuffID(69650) or srcUser:HasBuffID(71090)) and 1 < ElementRate then
    ElementRate = ElementRate * 1.1
  end
  if targetUser:HasBuffID(49130) then
    ElementRate = math.min(ElementRate, 1)
  end
  if srcUser:HasBuffID(49210) then
    ElementRate = ElementRate + 0.15
  end
  if srcUser:HasBuffID(77480) then
    ElementRate = ElementRate + 0.1
  end
  if nil == CommonFun.NatureProps[srcAtkElement] or nil == CommonFun.NatureProps[targetDefElement] or nil == targetDefElement then
    return 0
  end
  local elementRed = targetUser:GetProperty(CommonFun.NatureProps[srcAtkElement][2])
  local elementAtk = srcUser:GetProperty(CommonFun.NatureProps[srcAtkElement][3])
  local elementThrough = srcUser:GetProperty(CommonFun.NatureProps[srcAtkElement][4])
  local elementResistance = targetUser:GetProperty(CommonFun.NatureProps[srcAtkElement][5])
  if 0 <= elementRed then
    elementRed = elementRed * math.max(1 - elementThrough, 0)
  end
  if 0 <= elementAtk then
    elementAtk = elementAtk * math.max(1 - elementResistance, 0)
  end
  local elementparam = ElementRate
  local elementparam2 = 1 + elementAtk - elementRed
  local mapid, maptype = srcUser:GetMapInfo()
  if maptype == 2 or maptype == 4 then
    local B = elementRed - elementAtk
    B = B < -1 and -1 or 1 < B and 1 or B
    B = math.floor(B * 1000) / 1000
    B = B + 0.3 * (1 - math.sin(B * 3.14 / 2))
    elementparam2 = 1 - B
  end
  if elementparam2 <= 0.1 then
    elementparam2 = 0.1
  end
  if elementparam2 <= 0.1 then
    elementparam2 = 0.1
  end
  local ele = elementparam * elementparam2
  if targetDefElement == nil or ElementRate == nil or elementRed == nil or elementAtk == nil then
    ele = 1
  end
  local skilllv_1 = srcUser:GetLernedSkillLevel(5110)
  local skilllv_2 = srcUser:GetLernedSkillLevel(5111)
  local NpcParam = CommonFun.NpcParam(srcUser, targetUser, params, damageParam, logger)
  local BaseMAtk = Int + math.floor(Int * Int / 100)
  local MAtkFinal = ((MAtk - BaseMAtk) * (1 + MAtkPer) + BaseMAtk) * ele * raceparam * NpcParam
  local MDefReduc = CommonFun.CalcMDef(srcUser, targetUser)
  local A = -((MAtkFinal * MDefReduc * (1 - MDamReduc2) + MRefine) * (skilllv_1 * 0.7 + 3.6) * (1 - RefineMDamReduc) * (1 + MDamIncrease) - Vit2 / 2 * (1 + VitPer2) - Int2 * (1 + IntPer2)) * (1 + RangeDam) * (0.1 * skilllv_2 + 0.5)
  if targetUser:GetNpcID() ~= 0 then
    A = A * 2
  end
  local AttrFunction = srcUser:GetProperty("AttrFunction")
  local bitfunc = CommonFun.getBits(AttrFunction)
  if (targetUser.boss or targetUser.mini or targetUser.changelinepunish) and (targetUser.zoneType == 1 or targetUser.zoneType == 22) and targetUser.noPunishBoss == false and bitfunc[CommonFun.AttrFunction.JustInViceZone] == 1 and targetUser.isBossFromBranch == false then
    A = 0
  end
  if CommonFun.checkAttrFunctionMiss(targetUser, srcUser) then
    A = 0
  end
  if targetUser.boss and targetUser.zoneType == 22 and CommonFun.CheckStormBossMiss(targetUser, srcUser) then
    A = 0
  end
  if targetUser:GetNpcID() == 30043 or targetUser:GetNpcID() == 280303 or targetUser:GetNpcID() == 56008 or targetUser:GetNpcID() == 56009 or targetUser:GetNpcID() == 56010 or targetUser:GetNpcID() == 56011 or targetUser:GetNpcID() == 56012 or targetUser:GetNpcID() == 56013 then
    A = -1
  end
  if targetUser:DamageAlways1() then
    A = -1
  end
  return A
end
CommonFun.calcBuff_1003200 mapped uses
function CommonFun.calcBuff_100320(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local Skilllv = srcUser:GetLernedSkillLevel(5613)
  local A = (math.ceil(Skilllv / 2) * 0.05 + 0.25) * -1
  return A
end
CommonFun.calcBuff_1003300 mapped uses
function CommonFun.calcBuff_100330(srcUser, targetUser, a, b, c, d, lv, damage)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local A = 0
  local skilllv_1 = srcUser:GetLernedSkillLevel(5313)
  A = -damage * skilllv_1 * 0.04
  return A
end
CommonFun.calcBuff_1003400 mapped uses
function CommonFun.calcBuff_100340(srcUser, targetUser, a, b, c, d, lv, damage)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local A = 3
  local Agi = srcUser:GetProperty("Agi")
  local skilllv_leishe = srcUser:GetLernedSkillLevel(5611)
  if 1 <= skilllv_leishe then
    A = math.floor(Agi / (65 - 5 * skilllv_leishe)) + 3
  end
  return A
end
CommonFun.calcBuff_100350120 mapped buffs · 1 skills
function CommonFun.calcBuff_100350(srcUser, targetUser, a, b, c, d, lv, damage)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local A = 0
  if targetUser:HasBuffID(1007103) then
    A = 100
  end
  return A
end
CommonFun.calcBuff_1003600 mapped uses
function CommonFun.calcBuff_100360(srcUser, targetUser, a, b, c, d, lv, damage)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local A = 0
  if targetUser:HasBuffID(1007103) then
    local skill_shenmang = targetUser:GetBuffLevel(1007103)
    A = skill_shenmang * 0.06
  end
  return A
end
CommonFun.calcBuff_1003700 mapped uses
function CommonFun.calcBuff_100370(srcUser, targetUser, a, b, c, d, lv, damage)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local A = 0
  local skilllv_1 = srcUser:GetLernedSkillLevel(5212)
  A = -damage * skilllv_1 * 0.02
  return A
end
CommonFun.calcBuff_1003802 mapped buffs · 1 skills
function CommonFun.calcBuff_100380(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local A = 0
  local skilllv_1 = srcUser:GetLernedSkillLevel(5510)
  local skilllv_2 = srcUser:GetLernedSkillLevel(5560)
  if targetUser:IsBuffFrom(1005100, srcUser:GetGuid()) and (1 <= skilllv_1 or 1 <= skilllv_2) then
    A = 100
  end
  return A
end
CommonFun.calcBuff_10039020 mapped buffs · 1 skills
function CommonFun.calcBuff_100390(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local A = 100
  local Profession = targetUser:GetProfressionID()
  if Profession == 72 or Profession == 73 or Profession == 74 then
    A = 0
  end
  return A
end
CommonFun.calcBuff_1004000 mapped uses
function CommonFun.calcBuff_100400(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local skill = srcUser:GetLernedSkillLevel(422)
  local skilllv_1 = srcUser:GetLernedSkillLevel(432)
  local skilllv_2 = srcUser:GetLernedSkillLevel(464)
  local skilllv_3 = srcUser:GetLernedSkillLevel(5311)
  local Luk = srcUser:GetProperty("Luk")
  local Dex = srcUser:GetProperty("Dex")
  local Rate = skill
  local effect = 0
  if 0 < skilllv_1 and skilllv_1 <= 10 then
    effect = 10 + 5 * skilllv_1
  elseif 10 < skilllv_1 then
    effect = 60 + (skilllv_1 - 10) * 2
  end
  Rate = skill + math.min(effect, (Luk + Dex) / 5) + skilllv_3 * 2
  local Weapon = srcUser:GetEquipedID(7)
  if Weapon == 41545 or Weapon == 141545 or Weapon == 41567 or Weapon == 141567 then
    Rate = Rate + 5
  end
  if srcUser:HasBuffID(53370) then
    Rate = Rate + 5
  end
  local pos = 0
  if CommonFun.IsInRate(Rate, srcUser:GetRandom()) then
    pos = 7
    if 0 < skilllv_2 and CommonFun.IsInRate(skilllv_2 * 10 + skilllv_3 * 2, srcUser:GetRandom()) then
      pos = 107
    end
  end
  return pos
end
CommonFun.calcBuff_1004100 mapped uses
function CommonFun.calcBuff_100410(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local skill = srcUser:GetLernedSkillLevel(422)
  local skilllv_1 = srcUser:GetLernedSkillLevel(432)
  local skilllv_2 = srcUser:GetLernedSkillLevel(463)
  local skilllv_3 = srcUser:GetLernedSkillLevel(5311)
  local Luk = srcUser:GetProperty("Luk")
  local Dex = srcUser:GetProperty("Dex")
  local Rate = skill
  local effect = 0
  if 0 < skilllv_1 and skilllv_1 <= 10 then
    effect = 10 + 5 * skilllv_1
  elseif 10 < skilllv_1 then
    effect = 60 + (skilllv_1 - 10) * 2
  end
  Rate = skill + math.min(effect, (Luk + Dex) / 5) + skilllv_3 * 2
  local Weapon = srcUser:GetEquipedID(7)
  if Weapon == 41545 or Weapon == 141545 or Weapon == 41567 or Weapon == 141567 then
    Rate = Rate + 5
  end
  if srcUser:HasBuffID(53370) then
    Rate = Rate + 5
  end
  local pos = 0
  if CommonFun.IsInRate(Rate, srcUser:GetRandom()) then
    pos = 2
    if 0 < skilllv_2 and CommonFun.IsInRate(skilllv_2 * 10 + skilllv_3 * 2, srcUser:GetRandom()) then
      pos = 208
    end
  end
  return pos
end
CommonFun.calcBuff_1004200 mapped uses
function CommonFun.calcBuff_100420(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local Int = srcUser:GetProperty("Int")
  local MaxHp = targetUser:GetProperty("MaxHp")
  local skilllv_1 = srcUser:GetLernedSkillLevel(1281)
  local Num = srcUser:GetRunePoint(64020)
  local mapid, maptype = srcUser:GetMapInfo()
  local pvpRatio = 1
  if maptype == 2 or maptype == 4 then
    local GemValue = srcUser:GetGemValue(61012)
    pvpRatio = 0.25 * (1 + GemValue / 100000)
  end
  local A = MaxHp * ((skilllv_1 * 0.02 + 0.02) * (1 + Int / 100) * (1 + 0.05 * Num) * pvpRatio)
  local AttrEffect = targetUser:GetProperty("AttrEffect2")
  local bits = CommonFun.getBits(AttrEffect)
  if bits[CommonFun.AttrEffect2.BeMagicMachine] ~= 1 and targetUser:HasBuffID(132350) == false then
    A = 0
  end
  local HealtoDam = targetUser:GetBuffLevel(129100)
  local DamRatio = 1
  if targetUser:HasBuffID(129100) then
    DamRatio = -0.1 * HealtoDam
  end
  local HealReduce = targetUser:GetBuffLevel(136500)
  if targetUser:HasBuffID(136500) then
    DamRatio = 1 - (0.2 + 0.03 * HealReduce)
  end
  return A * DamRatio
end
CommonFun.calcBuff_10043022 mapped buffs · 1 skills
function CommonFun.calcBuff_100430(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local m = 1
  if targetUser:GetNpcID() ~= 0 then
    m = 0
  end
  local skill_lv1 = srcUser:GetLernedSkillLevel(5401)
  local A = skill_lv1 * m * 4
  return A
end
CommonFun.calcBuff_1004400 mapped uses
function CommonFun.calcBuff_100440(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local A = 12000
  local skilllv_1 = srcUser:GetLernedSkillLevel(5201)
  A = A - skilllv_1 * 2000
  return A
end
CommonFun.calcBuff_1004500 mapped uses
function CommonFun.calcBuff_100450(srcUser, targetUser, a, b, c, d, lv)
  if srcUser == nil or targetUser == nil then
    return 0
  end
  local A = a * lv + b
  if srcUser:HasBuffID(95307) then
    A = 0
  end
  return A
end