From cdf7a25b04904eb5a2f6ae4bd6c5cb7226961b4e Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 11 八月 2022 14:46:23 +0800
Subject: [PATCH] 9685 【后台】开服时间整合(邮件内容附加MsgInfo信息默认字符串)

---
 ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py |   54 ++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 46 insertions(+), 8 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
index 2189b3c..9871848 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
@@ -62,10 +62,15 @@
 import GMShell
 import IPY_PlayerDefine
 import GameWorldArena
+import CrossLuckyCloudBuy
 import CrossRealmPK
 import AuctionHouse
 import PlayerAssist
 import PlayerFB
+import PlayerLove
+import PlayerCharm
+import CrossRealmPlayer
+import CrossBattlefield
 #---------------------------------------------------------------------
 
 #---------------------------------------------------------------------
@@ -121,6 +126,8 @@
     if GameWorld.IsCrossServer():
         #跨服PK
         CrossRealmPK.OnPlayerLoginCrossServer(curPlayer)
+        #协助
+        PlayerAssist.OnPlayerLoginCrossServer(curPlayer)
         return
     
     #玩家家族刷新
@@ -130,6 +137,7 @@
     PlayerTeam.OnPlayerLoginRefreshTeam(curPlayer, tick)
     PlayerCompensation.NotifyPlayerCompensation(curPlayer)
     __UpdOnedayJobPlayerLoginoffTime(curPlayer)
+    CrossRealmPlayer.OnPlayerLogin(curPlayer)
     
     if not PlayerControl.GetIsTJG(curPlayer):
         # 只有通知逻辑的应该放此处减少IO,如有逻辑处理存储等不可放在此处
@@ -169,8 +177,6 @@
         PlayerStore.OnPlayerLogin(curPlayer)
         #通知世界boss信息
         GameWorldBoss.OnPlayerLogin(curPlayer)
-        #家族副本boss状态通知
-        PlayerFamilyBoss.OnLogin(curPlayer)
         #渡劫
         PlayerDuJie.OnPlayerLogin(curPlayer)
         #守卫人皇
@@ -186,19 +192,48 @@
         GameWorldArena.OnPlayerLogin(curPlayer)
         #跨服PK
         CrossRealmPK.OnPlayerLogin(curPlayer)
+        #幸运云购
+        CrossLuckyCloudBuy.OnPlayerLogin(curPlayer)
         #诛仙BOSS
         PlayerZhuXianBoss.OnPlayerLogin(curPlayer)
         #骑宠boss状态通知
         PlayerHorsePetBoss.OnLogin(curPlayer)
         #协助
-        PlayerAssist.OnPlayerLogin(curPlayer, False)
+        PlayerAssist.OnPlayerLogin(curPlayer)
         #天星塔
         GameWorldSkyTower.OnPlayerLogin(curPlayer)
         GMT_CTG.OnPlayerLogin(curPlayer)
         
     else:
-        #协助
-        PlayerAssist.OnPlayerLogin(curPlayer, True)
+        pass
+        
+    return
+
+def DoPlayerRealLoginOK(curPlayer, loginMsg, tick):
+    ''' 玩家最终登录成功处理, 由  MapServer  DoPlayerRealLoginOK  通知
+        该函数为地图最终登录成功才会执行到,以后一些功能类的登录处理建议均写到这里
+        旧的功能先不动( __DoPlayerLoginServer 函数中的功能),如果有登录相关的bug再考虑是否移动到此函数
+    '''
+    isMixServerFirstLogin = loginMsg[0]
+    GameWorld.Log("GameServer->DoPlayerRealLoginOK, isMixServerFirstLogin=%s" % isMixServerFirstLogin, curPlayer.GetPlayerID())
+    
+    if GameWorld.IsCrossServer():
+        return
+    
+    PyGameData.g_dbPlayerIDMap[curPlayer.GetPlayerID()] = curPlayer.GetAccID()
+    
+    if not PlayerControl.GetIsTJG(curPlayer):
+        #家族副本boss状态通知
+        PlayerFamilyBoss.OnLogin(curPlayer)
+        #魅力
+        PlayerCharm.OnPlayerLogin(curPlayer)
+        #情缘
+        PlayerLove.OnPlayerLogin(curPlayer)
+        #跨服战场
+        CrossBattlefield.OnPlayerLogin(curPlayer)
+        
+    if isMixServerFirstLogin:
+        PlayerCharm.OnMixServerFirstLogin(curPlayer)
         
     return
 
@@ -552,6 +587,8 @@
     AuctionHouse.OnPlayerLeaveServer(curPlayer)
     #协助
     PlayerAssist.OnLeaveServer(curPlayer)
+    #红包
+    PlayerFamilyRedPacket.OnLeaveServer(curPlayer)
     #------------镖车逻辑
     #TruckPlayerDisconnectProcess(curPlayer, tick)
     
@@ -668,7 +705,7 @@
         
     elif packType == IPY_GameServer.CDBPlayerRefresh_LV:
         curPlayer.SetLV(packValue)
-        PlayerSocial.UpdateSocialInfo(curPlayer, packType, packValue)
+        PlayerSocial.UpdateSocialInfo(curPlayer.GetID(), packType, packValue)
         #玩家等级记录
         playerID = curPlayer.GetID()
         if playerID in PyGameData.g_todayPlayerLVDict:
@@ -715,7 +752,7 @@
     
     elif packType == IPY_GameServer.CDBPlayerRefresh_OfficialRank:
         curPlayer.SetOfficialRank(packValue)
-        PlayerSocial.UpdateSocialInfo(curPlayer, packType, packValue)
+        PlayerSocial.UpdateSocialInfo(curPlayer.GetID(), packType, packValue)
         #更新排行榜的境界
         PlayerBillboard.UpdateBillboardRealm(curPlayer)
         
@@ -1190,7 +1227,8 @@
     serverDateTime.Hour = serverTime.hour
     serverDateTime.Minute = serverTime.minute
     serverDateTime.Second = serverTime.second
-    serverDateTime.MicSecond = serverTime.microsecond   
+    serverDateTime.MicSecond = serverTime.microsecond
+    serverDateTime.CrossServerTime = GameWorld.GetCrossServerTimeStr()
     
     # 通知客户端同步时间
     NetPackCommon.SendFakePack(curPlayer, serverDateTime)

--
Gitblit v1.8.0