From efb45afae0f9f1f8471ef89505fd6a68d03d1ed9 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期日, 28 四月 2019 13:47:16 +0800
Subject: [PATCH] 6607 【2.0】【后端】技能升级功能改版(点数变更刷新修改)

---
 ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py |   29 ++++++++++++++++++++++++-----
 1 files changed, 24 insertions(+), 5 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
index 9ab6681..abd0868 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
@@ -61,6 +61,7 @@
 import IPY_PlayerDefine
 import CrossRealmPK
 import AuctionHouse
+import PlayerFB
 #---------------------------------------------------------------------
 
 #---------------------------------------------------------------------
@@ -490,6 +491,9 @@
 #  @remarks 函数详细说明.
 def __Func_PlayerDisconnect(curPlayer, tick):
     
+    if GameWorld.IsCrossServer():
+        PlayerFB.OnPlayerDisconnectCrossServer(curPlayer)
+        
     #跨服匹配PK
     CrossRealmPK.OnLeaveServer(curPlayer)
     
@@ -753,6 +757,9 @@
     #改到mapServer登录成功通知
     #Sync_PyServerDataTimeToClient(curPlayer, tick)
     
+    if GameWorld.IsCrossServer():
+        PlayerFB.PlayerLoginLoadCrossMapOK(curPlayer)
+        
     PlayerTeam.OnPlayerReadMapOK(curPlayer, tick)
     
     #刷新人物日期状态
@@ -866,17 +873,29 @@
 #{
 #    tagHead        Head;
 #    DWORD        MapID;
-#    BYTE        FBLineID;
-#    BYTE        IsAllLine;
+#    BYTE        LineCount;
+#    BYTE        LineIDList[LineCount];    //个数为0时代表查全部
 #};
 def ClinetQueryFBLinePlayerCnt(index, clientData, tick):
     curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
     queryMapID = clientData.MapID
-    fbLineID = clientData.FBLineID
-    isAllLine = clientData.IsAllLine
+    queryFBLineIDList = clientData.LineIDList
     playerManager = GameWorld.GetPlayerManager()
     
-    sendCMD = str([queryMapID, fbLineID, isAllLine])
+    if queryMapID in ChConfig.Def_CrossMapIDList:
+        fbLinePlayerInfoDict = PyGameData.g_crossFBFuncLinePlayerCountInfo.get(queryMapID, {})
+        if not queryFBLineIDList:
+            resultInfo = [queryMapID, fbLinePlayerInfoDict]
+        else:
+            defaultInfo = [0] # 与本服结构相同,默认0人
+            queryFBLineInfo = {}
+            for lineID in queryFBLineIDList:
+                queryFBLineInfo[lineID] = fbLinePlayerInfoDict.get(lineID, defaultInfo)
+            resultInfo = [queryMapID, queryFBLineInfo]
+        QueryFBLinePlayerCntResult(curPlayer, resultInfo)
+        return
+    
+    sendCMD = str([queryMapID, queryFBLineIDList])
     playerManager.MapServer_QueryPlayer(curPlayer.GetPlayerID(), 0, 0, queryMapID,
                 'FBLinePlayerCnt', sendCMD, len(sendCMD), curPlayer.GetRouteServerIndex())
     return

--
Gitblit v1.8.0