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