Formula Source
function CommonFun.CalcCrit(srcUser, targetUser, skillParams) local CriDamPer = srcUser:GetProperty("CriDamPer") local CriDefPer2 = targetUser:GetProperty("CriDefPer") local targetRace = targetUser.race if srcUser:HasBuffID(49320) and srcUser:HasBuffID(49325) then elseif srcUser:HasBuffID(49320) then targetRace = 2 end local Weapon = srcUser:GetEquipedID(7) local scale = 1.5 + CriDamPer - CriDefPer2 if targetRace == 3 and (Weapon == 41815 or Weapon == 141815) then scale = 1.75 + CriDamPer - CriDefPer2 end local Buff = srcUser:HasBuffID(80000300) if targetRace == 5 and Buff == true then scale = 1.55 + CriDamPer - CriDefPer2 end local Buff = srcUser:HasBuffID(80000310) if targetRace == 6 and Buff == true then scale = 1.55 + CriDamPer - CriDefPer2 end local CardKapok = srcUser:GetEquipCardNum(7, 23247) if targetRace == 1 and srcUser:HasBuffID(56650) then scale = 1.5 + CardKapok * 0.15 + CriDamPer - CriDefPer2 end if targetRace == 9 and srcUser:HasBuffID(56650) then scale = 1.5 + CardKapok * 0.15 + CriDamPer - CriDefPer2 end local Cri = srcUser:GetProperty("Cri") local CriRes = targetUser:GetProperty("CriRes") local Gem = srcUser:GetGemValue(31021) scale = scale + (Cri - CriRes) * Gem / 100000 if srcUser:HasBuffID(64710) then scale = scale - 0.25 end scale = CommonFun.Clamp(scale, 1, 100) return scale end
No formula links