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