From 033a680f4c973fbac074a95152c6d313d4a71091 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 12 六月 2019 17:12:39 +0800
Subject: [PATCH] 7220 【后端】【2.0】灵器开发1.0版(增加灵器属性表,灵器战力由评分计算,评分由基础属性+灵器属性组成,原翅膀模块改为灵器模块)

---
 ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py |   67 ++++++++++++++++++++-------------
 1 files changed, 40 insertions(+), 27 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
index b159e71..5cbad3a 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
@@ -27,28 +27,21 @@
 import GMCommon
 import ShareDefine
 #import PlayerFamilyTech
-import PlayerDataCollect
 import time
 import ChPyNetSendPack
 import NetPackCommon
 import GameDataRecord
-import GameConfig
-import ReadChConfig
 import UpdatePlayerName
 import GameWorldBoss
 import PlayerFamilyBoss
-#import PlayerManorWar
 import PlayerBourse
 import PlayerZhuXianBoss
 import PlayerXMZZ
-import GameWorldShopItem
 import PlayerTruck
-import HighLadder
-import EventReport
+import PlayerHorsePetBoss
 import PlayerCompensation
 import PlayerFamilyRedPacket
-import PlayerFamilyStore
-import PyDataManager
+#import PlayerFamilyStore
 import PlayerSocial
 import PlayerFamilyParty
 import PlayerSealDemon
@@ -61,6 +54,7 @@
 import PlayerGeTui
 import PlayerStore
 import GameWorldActionControl
+import GameWorldFamilyWar
 import PlayerFBHelpBattle
 import GMT_CTG
 import PyGameData
@@ -68,6 +62,7 @@
 import IPY_PlayerDefine
 import CrossRealmPK
 import AuctionHouse
+import PlayerFB
 #---------------------------------------------------------------------
 
 #---------------------------------------------------------------------
@@ -159,7 +154,7 @@
         #仙盟红包
         PlayerFamilyRedPacket.OnPlayerLogin(curPlayer)
         #仙盟仓库
-        PlayerFamilyStore.OnPlayerLogin(curPlayer)
+        #PlayerFamilyStore.OnPlayerLogin(curPlayer)
         #仙盟宴会
         PlayerFamilyParty.OnPlayerLogin(curPlayer)
         #封魔坛
@@ -190,7 +185,8 @@
         CrossRealmPK.OnPlayerLogin(curPlayer)
         #诛仙BOSS
         PlayerZhuXianBoss.OnPlayerLogin(curPlayer)
-        
+        #骑宠boss状态通知
+        PlayerHorsePetBoss.OnLogin(curPlayer)
         GMT_CTG.OnPlayerLogin(curPlayer)
     return
 
@@ -222,9 +218,6 @@
             if checkMark not in ShareDefine.BillboardTypeList:
                 continue
             
-            if checkMark in [ShareDefine.Def_BT_HighLadder]:
-                continue
-            
             billboard = GameWorld.GetBillboard().FindBillboard(checkMark)
             if not billboard:
                 continue
@@ -243,11 +236,7 @@
                 objBillboard = billboard.At(index)
                 if curPlayer.GetID() == objBillboard.GetID():
                     msgMark = notifyDict[order]
-                    break
-#        # 竞技场
-#        elif checkMark == "HighLadder":
-#            highLadderOrder = HighLadder.GetPlayerOrder(curPlayer.GetID()) + 1
-#            msgMark = notifyDict.get(highLadderOrder, "")             
+                    break           
         
         # 有可以广播的,马上广播,退出,不再检查
         if msgMark:
@@ -503,6 +492,9 @@
 #  @remarks 函数详细说明.
 def __Func_PlayerDisconnect(curPlayer, tick):
     
+    if GameWorld.IsCrossServer():
+        PlayerFB.OnPlayerDisconnectCrossServer(curPlayer)
+        
     #跨服匹配PK
     CrossRealmPK.OnLeaveServer(curPlayer)
     
@@ -623,8 +615,6 @@
 
     elif packType == IPY_GameServer.CDBPlayerRefresh_Job:
         curPlayer.SetJob(packValue)
-    elif packType == IPY_GameServer.CDBPlayerRefresh_ExAttr1:
-        PlayerControl.SetJobRank(curPlayer, packValue)
         
 #    elif packType == IPY_GameServer.CDBPlayerRefresh_CurrentPlayerType:
 #        #这里应该通知组队那边刷新
@@ -646,6 +636,10 @@
     elif packType == IPY_GameServer.CDBPlayerRefresh_VIPLv:
         curPlayer.SetVIPLv(packValue);
 #        __RefreshTeamState(curPlayer)
+    
+    elif packType == IPY_GameServer.CDBPlayerRefresh_ExAttr5:
+        PlayerControl.SetCrossMapID(curPlayer, packValue, False)
+        
     elif packType == IPY_GameServer.CDBPlayerRefresh_ExAttr9:
         PlayerControl.SetVIPExpireTime(curPlayer, packValue)
         
@@ -654,7 +648,10 @@
         
     elif packType == IPY_GameServer.CDBPlayerRefresh_ExAttr11:
         PlayerControl.SetTodayXianyuanCoin(curPlayer, packValue)
-
+        
+    elif packType == IPY_GameServer.CDBPlayerRefresh_ExAttr13:
+        PlayerControl.SetPlayerServerGroupID(curPlayer, packValue)
+        
     elif packType == IPY_GameServer.CDBPlayerRefresh_OperateInfo:
         curPlayer.SetOperateInfo(packValue);
     
@@ -688,6 +685,7 @@
     GameWorldBoss.OnPlayerChangeMap(curPlayer)
     PlayerFamily.OnPlayerChangeMap(curPlayer, tick)
     PlayerFamilyParty.OnPlayerChangeMap(curPlayer, tick)
+    GameWorldFamilyWar.OnPlayerChangeMap(curPlayer)
     return 
 
 ## 玩家切换真实地图
@@ -765,6 +763,9 @@
     #改到mapServer登录成功通知
     #Sync_PyServerDataTimeToClient(curPlayer, tick)
     
+    if GameWorld.IsCrossServer():
+        PlayerFB.PlayerLoginLoadCrossMapOK(curPlayer)
+        
     PlayerTeam.OnPlayerReadMapOK(curPlayer, tick)
     
     #刷新人物日期状态
@@ -878,17 +879,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