From 5318fdbf2db65e9fe8dc1eaa0fbc3039571ec441 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期四, 20 六月 2019 17:06:32 +0800
Subject: [PATCH] 7320 【2.0】【后端】掉落记录置顶优先级变更
---
ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py | 40 ++++++++++++++++++++++++++++++----------
1 files changed, 30 insertions(+), 10 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
index d2f7655..5cbad3a 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
@@ -27,13 +27,10 @@
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
@@ -42,11 +39,9 @@
import PlayerXMZZ
import PlayerTruck
import PlayerHorsePetBoss
-import EventReport
import PlayerCompensation
import PlayerFamilyRedPacket
#import PlayerFamilyStore
-import PyDataManager
import PlayerSocial
import PlayerFamilyParty
import PlayerSealDemon
@@ -59,6 +54,7 @@
import PlayerGeTui
import PlayerStore
import GameWorldActionControl
+import GameWorldFamilyWar
import PlayerFBHelpBattle
import GMT_CTG
import PyGameData
@@ -66,6 +62,7 @@
import IPY_PlayerDefine
import CrossRealmPK
import AuctionHouse
+import PlayerFB
#---------------------------------------------------------------------
#---------------------------------------------------------------------
@@ -495,6 +492,9 @@
# @remarks 函数详细说明.
def __Func_PlayerDisconnect(curPlayer, tick):
+ if GameWorld.IsCrossServer():
+ PlayerFB.OnPlayerDisconnectCrossServer(curPlayer)
+
#跨服匹配PK
CrossRealmPK.OnLeaveServer(curPlayer)
@@ -636,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)
@@ -681,6 +685,7 @@
GameWorldBoss.OnPlayerChangeMap(curPlayer)
PlayerFamily.OnPlayerChangeMap(curPlayer, tick)
PlayerFamilyParty.OnPlayerChangeMap(curPlayer, tick)
+ GameWorldFamilyWar.OnPlayerChangeMap(curPlayer)
return
## 玩家切换真实地图
@@ -758,6 +763,9 @@
#改到mapServer登录成功通知
#Sync_PyServerDataTimeToClient(curPlayer, tick)
+ if GameWorld.IsCrossServer():
+ PlayerFB.PlayerLoginLoadCrossMapOK(curPlayer)
+
PlayerTeam.OnPlayerReadMapOK(curPlayer, tick)
#刷新人物日期状态
@@ -871,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