From 75738d3620611f37d57540629b99eb2cfeb255a4 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期一, 10 六月 2019 15:59:51 +0800
Subject: [PATCH] 7188 【2.0】【后端】重置灵根点支持限时的物品

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py |   34 +++++++++++++++++++++++++++++-----
 1 files changed, 29 insertions(+), 5 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
index 18f1725..ae4b74e 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
+++ b/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)
     

--
Gitblit v1.8.0