xdh
2019-05-22 22c0a62a2b77f5e9fff6faa1164216d310e73404
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipStar.py
@@ -113,27 +113,34 @@
        return result
    costEquipPlaceList = ipyData.GetCostEquipPlace()
    costEquipColorList = ipyData.GetCostEquipColor()
    isJobLimit = ipyData.GetIsJobLimit()
    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
            if isJobLimit and not ItemCommon.CheckJob(curPlayer, costEquip):
                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