From d8fac1acbf1659c5d2ff67d95f98520d557fd9cf Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 02 十二月 2024 11:34:54 +0800
Subject: [PATCH] 5416 【工具】兑换码优化(兑换码邮件内容文件json支持不同的appID独立文件配置;)

---
 ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossChampionship.py |   43 ++++++++++++++++++++++++++++++++-----------
 1 files changed, 32 insertions(+), 11 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossChampionship.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossChampionship.py
index 0dcbbdd..1dc3178 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossChampionship.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossChampionship.py
@@ -29,6 +29,7 @@
 import PlayerControl
 import PyDataManager
 import NetPackCommon
+import GameXiangong
 import GameWorship
 import PyGameData
 import ChConfig
@@ -113,6 +114,8 @@
         self.lv = 0
         self.fightPower = 0
         self.realmLV = 0
+        self.face = 0
+        self.facePic = 0
         return
     
     def GetString(self):
@@ -127,9 +130,11 @@
                 playerShortInfo["LV"] = cacheDict.get("LV", 1)
                 playerShortInfo["FightPower"] = cacheDict.get("FightPower", 0)
                 playerShortInfo["RealmLV"] = cacheDict.get("RealmLV", 0)
+                playerShortInfo["Face"] = cacheDict.get("Face", 0)
+                playerShortInfo["FacePic"] = cacheDict.get("FacePic", 0)
                 self.applyPlayerInfo[applyPlayerID] = playerShortInfo
         return {"zoneID":self.zoneID, "officialID":self.officialID, "lastDismissJuniorTime":self.lastDismissJuniorTime,
-                "accID":self.accID, "playerID":self.playerID, "playerName":self.playerName,
+                "accID":self.accID, "playerID":self.playerID, "playerName":self.playerName, "face":self.face, "facePic":self.facePic,
                 "job":self.job, "lv":self.lv, "fightPower":self.fightPower, "realmLV":self.realmLV, "rank":self.rank,
                 "worshipCount":self.worshipCount, "applyPlayerInfo":self.applyPlayerInfo, "challengeList":self.challengeList,
                 "worshipDouble":self.worshipDouble
@@ -209,11 +214,13 @@
         self.lv = 0
         self.fightPower = 0
         self.realmLV = 0
+        self.face = 0
+        self.facePic = 0
         return
     
     def GetString(self):
         return {"zoneID":self.zoneID, "accID":self.accID, "playerID":self.playerID, "playerName":self.playerName,
-                "job":self.job, "lv":self.lv, "fightPower":self.fightPower, "realmLV":self.realmLV}
+                "job":self.job, "lv":self.lv, "fightPower":self.fightPower, "realmLV":self.realmLV, "face":self.face, "facePic":self.facePic}
     
     def SetAttr(self, attrDict):
         for k, v in attrDict.items():
@@ -345,6 +352,8 @@
         obj.lv = cacheDict.get("LV", obj.lv)
         obj.fightPower = cacheDict.get("FightPower", obj.fightPower)
         obj.realmLV = cacheDict.get("RealmLV", obj.realmLV)
+        obj.face = cacheDict.get("Face", obj.face)
+        obj.facePic = cacheDict.get("FacePic", obj.facePic)
         
     return
 
@@ -1954,9 +1963,14 @@
     pkZoneIDList = champMgr.GetChampPKZoneIDList()
     GameWorld.Log("pkZoneIDList=%s" % pkZoneIDList)
     
-    worshipList = []
+    syncNewWorshipList = []
+    syncNewXiangongDict = {}
+    crossZoneName = GameWorld.GetCrossZoneName()
     for zoneID in pkZoneIDList:
         GameWorld.Log("=== 结算排位分区: zoneID=%s ===" % zoneID, zoneID)
+        zoneIpyData = IpyGameDataPY.GetIpyGameData("CrossZonePK", crossZoneName, zoneID)
+        serverIDRangeList = zoneIpyData.GetServerGroupIDList() if zoneIpyData else []
+        
         finalPlayerIDList = []
         pkZoneMgr = champMgr.GetChampPKZoneMgr(zoneID)
         if not pkZoneMgr:
@@ -1986,8 +2000,9 @@
             rankIpyData = IpyGameDataPY.GetIpyGameData("ChampionshipRank", rank)
             officialID = rankIpyData.GetMainOfficialID() if rankIpyData else 0
             rankAwardItemList = rankIpyData.GetRankAwardItemList() if rankIpyData else []
-            GameWorld.Log("    最终排名: zoneID=%s,rank=%s,playerID=%s,officialID=%s,rankAwardItemList=%s,accID=%s,fightPower=%s" 
-                          % (zoneID, rank, playerID, officialID, rankAwardItemList, accID, fightPower), zoneID)
+            xiangongID = rankIpyData.GetXiangongID() if rankIpyData else 0
+            GameWorld.Log("    最终排名: zoneID=%s,rank=%s,playerID=%s,officialID=%s,xiangongID=%s,rankAwardItemList=%s,accID=%s,fightPower=%s" 
+                          % (zoneID, rank, playerID, officialID, xiangongID, rankAwardItemList, accID, fightPower), zoneID)
             
             if officialID:
                 offObj = ChampionshipOfficial()
@@ -1998,14 +2013,13 @@
                 
                 offZoneMgr.officialInfo[officialID] = offObj
                 
-                worshipValue = rank
-                if GameWorship.GetWorshipIpyData(worshipType, worshipValue):
-                    worshipData = GameWorship.AddWorshipPlayer(playerID, worshipType, worshipValue, zoneID=zoneID, isNotify=False)
-                    worshipList.append(worshipData)
-                    
+                
             # 名次奖励
             paramList = [rank]
             PlayerCompensation.SendMailByKey("CrossChampionshipPKRank", [playerID], rankAwardItemList, paramList, crossMail=True)
+            
+            GameXiangong.AddXiangongPlayer(xiangongID, playerID, serverIDRangeList, rank, syncNewXiangongDict)
+            GameWorship.AddWorshipPlayer(worshipType, rank, playerID, serverIDRangeList, syncNewWorshipList)
             
         # 处理4强竞猜发奖励
         guessType = 4
@@ -2047,7 +2061,8 @@
     PlayerControl.WorldNotifyCross(serverGroupIDList, 0, "ChampionshipOver")
     
     # 通知新添加的膜拜
-    GameWorship.SyncAddCrossWorship(worshipList)
+    GameWorship.SendNewWorshipPlayer(syncNewWorshipList)
+    GameXiangong.SendNewXiangongPlayerToClientServer(syncNewXiangongDict)
     GameWorld.Log("===================================================================")
     return
 
@@ -2956,6 +2971,8 @@
         playerPack.FightPower = batPlayer.fightPower % ShareDefine.Def_PerPointValue
         playerPack.FightPowerEx = batPlayer.fightPower / ShareDefine.Def_PerPointValue
         playerPack.RealmLV = batPlayer.realmLV
+        playerPack.Face = batPlayer.face
+        playerPack.FacePic = batPlayer.facePic
         clientPack.PlayerList.append(playerPack)
     clientPack.PlayerCount = len(clientPack.PlayerList)
     
@@ -3115,6 +3132,8 @@
         offPlayer.FightPower = offObj.fightPower % ShareDefine.Def_PerPointValue
         offPlayer.FightPowerEx = offObj.fightPower / ShareDefine.Def_PerPointValue
         offPlayer.RealmLV = offObj.realmLV
+        offPlayer.Face = offObj.face
+        offPlayer.FacePic = offObj.facePic
         
         offPack = ChPyNetSendPack.tagGCChampionshipOfficial()
         offPack.OfficialID = officialID
@@ -3134,6 +3153,8 @@
             applyPlayer.FightPower = fightPower % ShareDefine.Def_PerPointValue
             applyPlayer.FightPowerEx = fightPower / ShareDefine.Def_PerPointValue
             applyPlayer.RealmLV = playerInfo.get("RealmLV", 1)
+            applyPlayer.Face = playerInfo.get("Face", 0)
+            applyPlayer.FacePic = playerInfo.get("FacePic", 0)
             
             offPack.ApplyPlayerList.append(applyPlayer)
         offPack.ApplyPlayerCount = len(offPack.ApplyPlayerList)

--
Gitblit v1.8.0