From 9df206d38b22ea21cb7b8ed6ec39593424c70fb6 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 11 三月 2021 11:47:13 +0800
Subject: [PATCH] 4984 【主干】【BT2】boss投资击杀跨服boss同步异常(跨服boss投资击杀支持;boss投资改为归属击杀可领奖)

---
 ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldFamilyWar.py |   27 +++++++++++++++++++++------
 1 files changed, 21 insertions(+), 6 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldFamilyWar.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldFamilyWar.py
index 3d1480f..6d8c627 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldFamilyWar.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldFamilyWar.py
@@ -420,7 +420,9 @@
     PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_FamilyWar_AllOver, 0) # 新一轮开始,重置状态
     PlayerFamily.DoFamilySort() # 首轮分组前需要强制刷新一次仙盟排行
     
-    lastFamilyWarMemDict = copy.deepcopy(PyGameData.g_familyWarMemDict)
+    lastFamilyWarMemDict = {}
+    for warPlayerID, recData in PyGameData.g_familyWarMemDict.items():
+        lastFamilyWarMemDict[warPlayerID] = GetFWMemFamilyID(recData)
     PyGameData.g_familyWarMemDict = {}
     PyGameData.g_familyWarFamilyIDList = []
     universalRecMgr = GameWorld.GetUniversalRecMgr()
@@ -1063,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