xdh
2019-06-10 75738d3620611f37d57540629b99eb2cfeb255a4
7188 【2.0】【后端】重置灵根点支持限时的物品
1个文件已修改
34 ■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -1739,13 +1739,37 @@
        return
    isFree = curPlayer.GetLV() < IpyGameDataPY.GetFuncCfg('LVUPAddPoint', 4)
    if not isFree:
        needItemID = IpyGameDataPY.GetFuncCfg('LVUPAddPoint', 5)
        #优先使用剩余时间最短的时效物品
        needItemIDList = IpyGameDataPY.GetFuncEvalCfg('LVUPAddPoint', 5)
        itemPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem)
        hasEnough, itemList = ItemCommon.GetItem_FromPack_ByID(needItemID, itemPack, 1)
        if not hasEnough:
            GameWorld.DebugLog("重置加点 item(%s) isn't enough" % (needItemID))
        delIndex = -1
        expireTime = 0
        for itemID in needItemIDList:
            hasEnough, itemIndexList = ItemCommon.GetItem_FromPack_ByID(itemID, itemPack, 1)
            if not hasEnough:
                #GameWorld.DebugLog("重置加点 item(%s) isn't enough" % (needItemID))
                continue
            for itemIndex in itemIndexList:
                curItem = itemPack.GetAt(itemIndex)
                if not ItemCommon.CheckItemCanUse(curItem):
                    continue
                isExpireItem, remainingTime = ItemCommon.GetItemRemainingTime(curItem)
                if isExpireItem:
                    if remainingTime <= 0:
                        #过期
                        continue
                    if remainingTime < expireTime:
                        expireTime = remainingTime
                        delIndex = itemIndex
                else:
                    delIndex = itemIndex
                    break
            if delIndex != -1:
                break
        if delIndex is -1:
            return
        ItemCommon.ReduceItem(curPlayer, itemPack, itemList, 1, False, ChConfig.ItemDel_ResetAttrPoint)
        ItemCommon.ReduceItem(curPlayer, itemPack, [delIndex], 1, False, ChConfig.ItemDel_ResetAttrPoint)
    
    Item_ResetAttrPoint.DoResetAttrPoint(curPlayer, 0, 0, 0)