From da600c48b92c65ec78edea08544c6ca9a50b1143 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期一, 29 四月 2019 16:20:58 +0800
Subject: [PATCH] 3450 【BUG】【2.0】莲台升星错误

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipStar.py |   42 +++++++++++++++++++++++-------------------
 1 files changed, 23 insertions(+), 19 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipStar.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipStar.py
index 288c9d5..6623a9b 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipStar.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipStar.py
@@ -114,26 +114,30 @@
     costEquipPlaceList = ipyData.GetCostEquipPlace()
     costEquipColorList = ipyData.GetCostEquipColor()
     suitTotalRate = ipyData.GetSuitTotalRate()
-    singleSuitRate = float(suitTotalRate) / costEquipCnt
-    curRate = 0  #成功概率
-    delEquipIndexList = []
     itemPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem)
-    for i, index in enumerate(clientData.CostEquipIndex):
-        costEquip = itemPack.GetAt(index)
-        if not costEquip or costEquip.IsEmpty():
-            return result
-        equipID = costEquip.GetItemTypeID()
-        if equipID != clientData.CostEquipID[i]:
-            GameWorld.ErrLog('   装备升星 客户端发的物品索引与实际物品ID不对应  index=%s,eatItemID=%s,wantEatItemID=%s' % (index, equipID, clientData.CostEquipID[i]))
-            return result
-        if costEquip.GetItemColor() not in costEquipColorList:
-            return result
-        if costEquip.GetEquipPlace() not in costEquipPlaceList:
-            return result
-        delEquipIndexList.append(index)
-        isSuite = costEquip.GetSuiteID()
-        addRate = singleSuitRate if isSuite else singleSuitRate / 2
-        curRate += addRate
+    delEquipIndexList = []
+    if not costEquipCnt:
+        curRate = suitTotalRate / 2
+    else:
+        singleSuitRate = float(suitTotalRate) / costEquipCnt
+        curRate = 0 #成功概率
+        
+        for i, index in enumerate(clientData.CostEquipIndex):
+            costEquip = itemPack.GetAt(index)
+            if not costEquip or costEquip.IsEmpty():
+                return result
+            equipID = costEquip.GetItemTypeID()
+            if equipID != clientData.CostEquipID[i]:
+                GameWorld.ErrLog('   装备升星 客户端发的物品索引与实际物品ID不对应  index=%s,eatItemID=%s,wantEatItemID=%s' % (index, equipID, clientData.CostEquipID[i]))
+                return result
+            if costEquip.GetItemColor() not in costEquipColorList:
+                return result
+            if costEquip.GetEquipPlace() not in costEquipPlaceList:
+                return result
+            delEquipIndexList.append(index)
+            isSuite = costEquip.GetSuiteID()
+            addRate = singleSuitRate if isSuite else singleSuitRate / 2
+            curRate += addRate
     if curRate <= 0:
         GameWorld.Log('装备升星异常 概率为0!!equipPackIndex=%s'%equipPackIndex)
         return result

--
Gitblit v1.8.0