xdh
2019-04-29 da600c48b92c65ec78edea08544c6ca9a50b1143
3450 【BUG】【2.0】莲台升星错误
1个文件已修改
42 ■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipStar.py 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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