From 1f8acf4823f6d7c2e19f0db8bd11d3b07d168a5c Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 10 七月 2019 16:21:52 +0800
Subject: [PATCH] 7954 【主干】【后端】跨服PVP匹配机器人规则优化

---
 ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmPK.py |   52 ++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 44 insertions(+), 8 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmPK.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmPK.py
index b15218c..39ea210 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmPK.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmPK.py
@@ -241,14 +241,16 @@
         return
     maxCount = min(2000, maxCount)
     upBillboardList = []
-    if winner.danLV >= danLVLimit:
-        upBillboardList.append(winner)
-    else:
-        GameWorld.DebugLog("    段位不足,无法上榜! winnerDanLV=%s < danLVLimit=%s" % (winner.danLV, danLVLimit), winner.playerID)
-    if loser.danLV >= danLVLimit:
-        upBillboardList.append(loser)
-    else:
-        GameWorld.DebugLog("    段位不足,无法上榜! loserDanLV=%s < danLVLimit=%s" % (loser.danLV, danLVLimit), loser.playerID)
+    if winner:
+        if winner.danLV >= danLVLimit:
+            upBillboardList.append(winner)
+        else:
+            GameWorld.DebugLog("    段位不足,无法上榜! winnerDanLV=%s < danLVLimit=%s" % (winner.danLV, danLVLimit), winner.playerID)
+    if loser:
+        if loser.danLV >= danLVLimit:
+            upBillboardList.append(loser)
+        else:
+            GameWorld.DebugLog("    段位不足,无法上榜! loserDanLV=%s < danLVLimit=%s" % (loser.danLV, danLVLimit), loser.playerID)
     if not upBillboardList:
         return
     
@@ -315,6 +317,40 @@
             
     return
 
+def ClientServerMsg_PKScore(serverGroupID, playerInfoDict, tick):
+    ## 收到子服同步的PK积分信息,子服可能直接更新积分,比如与机器人PK等
+    
+    if not GameWorld.IsCrossServer():
+        GameWorld.ErrLog("非跨服服务器不处理跨服PK匹配请求!")
+        return
+    
+    seasonID = playerInfoDict["seasonID"] # 赛季ID
+    pkZoneID = playerInfoDict["pkZoneID"] # 所属赛区
+    accID = playerInfoDict["accID"] # 角色账号
+    playerID = playerInfoDict["playerID"] # 角色ID
+    playerName = playerInfoDict["playerName"] # 玩家名
+    job = playerInfoDict["playerJob"] # 职业
+    fightPower = playerInfoDict["fightPower"] # 战斗力
+    realmLV = playerInfoDict["realmLV"] # 境界
+    pkScore = playerInfoDict["pkScore"] # 当前积分
+    danLV = playerInfoDict["danLV"] # 当前段位
+    
+    pkPlayer = CrossPKPlayer()
+    pkPlayer.accID = accID
+    pkPlayer.playerID = playerID
+    pkPlayer.playerName = playerName
+    pkPlayer.playerJob = job
+    pkPlayer.pkScore = pkScore
+    pkPlayer.danLV = danLV
+    pkPlayer.fightPower = fightPower
+    pkPlayer.realmLV = realmLV
+    pkPlayer.serverGroupID = serverGroupID
+    pkPlayer.pkZoneID = pkZoneID
+    pkPlayer.seasonID = seasonID
+    
+    UpdateCrossPKBillboard(pkZoneID, seasonID, pkPlayer, None)
+    return
+
 #// C0 01 查看跨服竞技场赛季排行榜 #tagCGViewCrossPKBillboard
 #
 #struct    tagCGViewCrossPKBillboard

--
Gitblit v1.8.0