From 128dce390be21ef3253856a21f3c3c4e25eca40b Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期四, 27 六月 2019 23:27:06 +0800 Subject: [PATCH] 4278 【主干】【2.0.0】仙盟联赛非冠军排名奖励错误 --- ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldFamilyWar.py | 23 ++++++++++++++++++----- 1 files changed, 18 insertions(+), 5 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldFamilyWar.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldFamilyWar.py index 59c6209..6d8c627 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldFamilyWar.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldFamilyWar.py @@ -1065,21 +1065,34 @@ ## 给仙盟排名仙盟拍品奖励 warWorldLV = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_FamilyWar_StartWorldLV) - GameWorld.Log("发放排名仙盟拍品奖励: warWorldLV=%s, familyWarIDRankList=%s" % (warWorldLV, familyWarIDRankList)) - - cfgRankKey = 1 - cfgRankAuctionItemDict = {} + rewardWorldLV = 0 ipyDataMgr = IpyGameDataPY.IPY_Data() for index in xrange(ipyDataMgr.GetFamilyWarRankAwardCount()): ipyData = ipyDataMgr.GetFamilyWarRankAwardByIndex(index) - if warWorldLV > ipyData.GetWarWorldLV() and cfgRankAuctionItemDict: + cfgWorldLV = ipyData.GetWarWorldLV() + if warWorldLV <= cfgWorldLV: + rewardWorldLV = cfgWorldLV break + elif warWorldLV > cfgWorldLV: + rewardWorldLV = cfgWorldLV + GameWorld.Log("发放排名仙盟拍品奖励: warWorldLV=%s, rewardWorldLV=%s, familyWarIDRankList=%s" % (warWorldLV, rewardWorldLV, familyWarIDRankList)) + + rewardIpyDataList = IpyGameDataPY.GetIpyGameDataList("FamilyWarRankAward", rewardWorldLV) + if not rewardIpyDataList: + GameWorld.ErrLog("找不到仙盟排名对应世界等级奖励!") + return + + cfgRankKey = 1 + cfgRankAuctionItemDict = {} + for ipyData in rewardIpyDataList: warRank = ipyData.GetWarRank() auctionItemList = ipyData.GetRankAuctionItem() for rank in range(cfgRankKey, warRank + 1): cfgRankAuctionItemDict[rank] = auctionItemList cfgRankKey = warRank + 1 + GameWorld.Log("对应世界等级奖励: rewardWorldLV=%s, %s" % (rewardWorldLV, cfgRankAuctionItemDict)) + familyAuctionItemDict = {} # {仙盟ID:[[享受收益的成员ID, ...], [[拍品ID,个数], [拍品ID,个数,是否拍品], ...]], ...} for rank, familyID in enumerate(familyWarIDRankList, 1): if rank not in cfgRankAuctionItemDict: -- Gitblit v1.8.0