From 51ebe08557412b702cc897409bbbf20eaf16903f Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 06 十一月 2024 16:44:44 +0800
Subject: [PATCH] 10261 【越南】【砍树】【英文】【tqxbqy】头像框,头像(补充通知:C001、C005、B207; 0320宗门扫荡结算助战玩家头像信息; A003王者仙盟徽章;)

---
 ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py |   36 ++++++++++++++++++++++++++++++++----
 1 files changed, 32 insertions(+), 4 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
index ec8d8a6..3ede928 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
@@ -79,8 +79,10 @@
 import PlayerFuncTeam
 import PyDataManager
 import GameWorldMineArea
+import PlayerPackData
 import PlayerRecData
 import GameWorship
+import GameXiangong
 #---------------------------------------------------------------------
 
 #---------------------------------------------------------------------
@@ -297,7 +299,7 @@
         CrossYaomoBoss.OnPlayerLogin(curPlayer)
         #玩家记录
         PlayerRecData.OnPlayerLogin(curPlayer)
-        
+        PlayerPackData.OnPlayerLogin(curPlayer)
         #在线状态变更,放最后
         __OnPlayerOnlineStateChange(curPlayer, True)
         
@@ -666,6 +668,7 @@
     if not PlayerControl.GetIsTJG(curPlayer):
         playerID = curPlayer.GetPlayerID()
         PyGameData.g_unTJLogoffTime[playerID] = int(time.time())
+        PyGameData.g_xiangongCanLikeTimeDict.pop(playerID, None)
         
         #在线状态变更,放最后
         __OnPlayerOnlineStateChange(curPlayer, False)
@@ -702,7 +705,20 @@
     cacheBase = msgData["cacheBase"]
     
     isLogout = not isOnline
+    olMgr = GetOnlinePlayerMgr()
+    olMgr.SetOnlineState(playerID, isOnline, cacheBase.get("ServerGroupID", 0))
+    
     PlayerViewCache.UpdCrossCacheBase(playerID, cacheBase, isLogout)
+    serverID = GameWorld.GetAccIDServerID(cacheBase["AccID"])
+    
+    # 上线
+    if isOnline:
+        PlayerPackData.OnPlayerLogin_CrossLogic(serverGroupID, serverID, playerID)
+        GameXiangong.OnPlayerLogin_CrossLogic(serverGroupID, serverID, playerID)
+        
+    # 下线
+    else:
+        pass
     
     SyncCrossPlayerOnlineStateToRelatedPlayer(playerID)
     return
@@ -824,6 +840,7 @@
     packValue = playerStatePack.GetValue()
     packValueEx = playerStatePack.GetValueEx()
     packType = playerStatePack.GetType()
+    packValueTotal = packValue + packValueEx * ChConfig.Def_PerPointValue
     
     #---特殊逻辑处理---
     if packType == ShareDefine.CDBPlayerRefresh_ForbidenTalk:
@@ -833,7 +850,11 @@
     if packType == ShareDefine.CDBPlayerRefresh_ExAttr17:
         PlayerControl.SetPlayerAccState(curPlayer, packValue)
         return
-
+    
+    if packType == ShareDefine.CDBPlayerRefresh_ExAttr19:
+        PlayerControl.SetLeaveFamilyTimeEx(curPlayer, packValueTotal)
+        return
+    
     if packType == IPY_GameServer.CDBPlayerRefresh_State:
         # 脱机在线
         PlayerControl.SetIsTJG(curPlayer, packValue)
@@ -869,7 +890,6 @@
         
     elif packType == IPY_GameServer.CDBPlayerRefresh_LV:
         curPlayer.SetLV(packValue)
-        PlayerSocial.UpdateSocialInfo(curPlayer.GetID(), packType, packValue)
         #玩家等级记录
         playerID = curPlayer.GetID()
         if playerID in PyGameData.g_todayPlayerLVDict:
@@ -919,10 +939,18 @@
     
     elif packType == IPY_GameServer.CDBPlayerRefresh_OfficialRank:
         curPlayer.SetOfficialRank(packValue)
-        PlayerSocial.UpdateSocialInfo(curPlayer.GetID(), packType, packValue)
         #更新排行榜的境界
         PlayerBillboard.UpdateBillboardRealm(curPlayer)
+    elif packType == IPY_GameServer.CDBPlayerRefresh_Face:
+        curPlayer.SetFace(packValue)
+        PlayerBillboard.UpdateBillboardFace(curPlayer)
+    elif packType == IPY_GameServer.CDBPlayerRefresh_HairColor:
+        #c++头像外框 用头发颜色通知  - 遗漏问题
+        curPlayer.SetFacePic(packValue)
+        PlayerBillboard.UpdateBillboardFacePic(curPlayer)
         
+    #社交信息
+    PlayerSocial.UpdateSocialInfo(curPlayer.GetID(), packType, packValue)
     #组队成员刷新
     PlayerTeam.PlayerTeamMemberRefresh(curPlayer, packType, packValue, tick)
     #家族刷新

--
Gitblit v1.8.0