Formula Source
function CommonFun.GetElementRate(srcUser, srcAtkElement, targetUser, targetDefElement, params, damageParam) if srcAtkElement < 1 or 10 < srcAtkElement then return 0 end if targetDefElement < 1 or 10 < targetDefElement then return 0 end local ElementRate = GameConfig.ElementRestrain[srcAtkElement][targetDefElement] if params ~= nil and damageParam ~= nil then local skillID, skillLevel = CommonFun.UnmergeSkillID(params.skillIDAndLevel) if (skillID == 1700 or skillID == 1725) and (targetDefElement == 3 or targetDefElement == 4) then local skilllv = srcUser:GetLernedSkillLevel(1715) ElementRate = 0.75 + skilllv * 0.05 end if (skillID == 2705 or skillID == 2706) and targetDefElement == 2 then ElementRate = 1 end end local srcAtkLevel = CommonFun.GetUserAtkLevel(srcUser, srcAtkElement, params, damageParam) local tarDefLevel = CommonFun.GetUserDefLevel(targetUser, targetDefElement) if srcUser:HasBuffID(22000991) and srcAtkElement == 1 or srcUser:HasBuffID(22000992) and srcAtkElement == 2 or srcUser:HasBuffID(22000993) and srcAtkElement == 3 or srcUser:HasBuffID(22000994) and srcAtkElement == 4 or srcUser:HasBuffID(22000996) and srcAtkElement == 5 or srcUser:HasBuffID(22000995) and srcAtkElement == 8 or srcUser:HasBuffID(1001120) and srcAtkElement == 10 then ElementRate = ElementRate + 0.15 end if srcUser:HasBuffID(116832) and srcAtkElement == 1 or srcUser:HasBuffID(116833) and srcAtkElement == 2 or srcUser:HasBuffID(116831) and srcAtkElement == 3 or srcUser:HasBuffID(116830) and srcAtkElement == 4 then local skilllv = srcUser:GetLernedSkillLevel(1163) ElementRate = ElementRate + 0.02 * skilllv end if srcUser:HasBuffID(1000031) and srcAtkElement == 8 then local skilllv1 = srcUser:GetLernedSkillLevel(1163) local skilllv2 = srcUser:GetLernedSkillLevel(5003) local layer = 0 if srcUser:HasBuffID(116832) then layer = layer + 1 end if srcUser:HasBuffID(116830) then layer = layer + 1 end if srcUser:HasBuffID(116831) then layer = layer + 1 end if srcUser:HasBuffID(116833) then layer = layer + 1 end ElementRate = ElementRate + 0.02 * skilllv1 * skilllv2 * 0.05 * layer end if 3 <= tarDefLevel then ElementRate = ElementRate + (srcAtkLevel - 1) * 0.25 - 0.25 - (tarDefLevel - 2) * 0.125 elseif 2 <= tarDefLevel and tarDefLevel < 3 then ElementRate = ElementRate + (srcAtkLevel - 1) * 0.25 - 0.25 else ElementRate = ElementRate + (srcAtkLevel - 1) * 0.25 end if ElementRate < 0 then ElementRate = 0 end return ElementRate end
No formula links