Quellcode durchsuchen

修改判断命中的逻辑

gitxsm vor 2 Monaten
Ursprung
Commit
5f9702700b
1 geänderte Dateien mit 26 neuen und 17 gelöschten Zeilen
  1. 26 17
      script/module/combat/CombatCalc.lua

+ 26 - 17
script/module/combat/CombatCalc.lua

@@ -706,28 +706,37 @@ local function isShanbi(attacker, index, targets)
     local jingzhun = CombatObj.getValue(attacker, RoleDefine.JINGZHUN) + CombatPosLogic.getRestrict(attacker,defender,RoleDefine.JINGZHUN)
     local jingzhun = CombatObj.getValue(attacker, RoleDefine.JINGZHUN) + CombatPosLogic.getRestrict(attacker,defender,RoleDefine.JINGZHUN)
     local shanbi = CombatObj.getValue(defender, RoleDefine.SHANBI)
     local shanbi = CombatObj.getValue(defender, RoleDefine.SHANBI)
 
 
-    if jingzhun >= 10000 then
-        local mingZhong = jingzhun - 10000
-        mingZhong = mingZhong < 0 and 0 or mingZhong
-        -- 强制设定额外命中不超过 99%
-        if mingZhong >= 9900 then
-           mingZhong = 9900
-        end
+    -- if jingzhun >= 10000 then
+    --     local mingZhong = jingzhun - 10000
+    --     mingZhong = mingZhong < 0 and 0 or mingZhong
+    --     -- 强制设定额外命中不超过 99%
+    --     if mingZhong >= 9900 then
+    --        mingZhong = 9900
+    --     end
 
 
-        local shanbiRatio = 10000 - mingZhong
-        shanbiRatio = shanbiRatio < 0 and 0 or shanbiRatio
+    --     local shanbiRatio = 10000 - mingZhong
+    --     shanbiRatio = shanbiRatio < 0 and 0 or shanbiRatio
 
 
         
         
-        shanbi = math.floor(shanbi *(shanbiRatio / 10000))
-    else
-        shanbi = 10000 - jingzhun + shanbi
-    end
-    
+    --     shanbi = math.floor(shanbi *(shanbiRatio / 10000))
+    -- else
+    --     shanbi = 10000 - jingzhun + shanbi
+    -- end
+
+    -- local r = math.random(1, 10000)
+    -- if r < shanbi then
+    --     return true
+    -- end
+    -- return false
+
+    -- 修改
+    local hitVal = math.max(jingzhun - shanbi, 0)
     local r = math.random(1, 10000)
     local r = math.random(1, 10000)
-    if r < shanbi then
-        return true
+    if r <= hitVal then
+        return false
     end
     end
-    return false
+
+    return true
 end
 end
 
 
 function calcHurt(attacker, index, targets, skillConfig)
 function calcHurt(attacker, index, targets, skillConfig)