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