From ff8efc0ccf9fa6d66d873673afd07d2adfd87252 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 18 十二月 2024 15:43:33 +0800
Subject: [PATCH] 10297 【越南】【英语】【砍树】【tqxbqy】轮回殿-服务端(增加GM命令: Lunhui)

---
 ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py |   22 ++++++++++++++++------
 1 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
index 49fb490..16a2c76 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
@@ -78,6 +78,7 @@
 import PlayerFuncTeam
 import PyDataManager
 import GameWorldMineArea
+import PlayerPackData
 import PlayerRecData
 import GameWorship
 import GameXiangong
@@ -296,7 +297,7 @@
         CrossYaomoBoss.OnPlayerLogin(curPlayer)
         #玩家记录
         PlayerRecData.OnPlayerLogin(curPlayer)
-        
+        PlayerPackData.OnPlayerLogin(curPlayer)
         #在线状态变更,放最后
         __OnPlayerOnlineStateChange(curPlayer, True)
         
@@ -683,9 +684,8 @@
     #offlineValue = olMgr.GetOfflineValue(playerID, PlayerViewCache.FindViewCache(playerID))
     #SyncRelatedPlayerOnlineState(playerID, offlineValue, relatedPlayerIDList)
     
-    if not PlayerControl.GetFuncCanUse(curPlayer, ShareDefine.GameFuncID_CrossRealmPK) \
-        and not PlayerControl.GetFuncCanUse(curPlayer, ShareDefine.GameFuncID_CrossBattlefield):
-        GameWorld.DebugLog("跨服相关功能未开启,不同步在线状态到跨服服务器! LV=%s" % curPlayer.GetLV(), curPlayer.GetPlayerID())
+    if curPlayer.GetLV() < 50:
+        #GameWorld.DebugLog("跨服相关功能未开启,不同步在线状态到跨服服务器! LV=%s" % curPlayer.GetLV(), curPlayer.GetPlayerID())
         return
     
     cacheBase = PlayerViewCache.GetSyncCrossCacheBase(curPlayer)
@@ -701,11 +701,21 @@
     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:
+        # 需要管理跨服在线状态时,默认需要同步缓存信息
+        syncStateInfo = {"playerID":playerID, "ViewCacheCross":1}
+        packDataMgr = PyDataManager.GetDBPlayerPackDataManager()
+        if playerID in packDataMgr.playerPackDataDict:
+            syncStateInfo["PackDataCross"] = 1
+        CrossRealmMsg.SendMsgToClientServer(ShareDefine.CrossServerMsg_PlayerPackDataState, syncStateInfo, [serverGroupID])
+        
         GameXiangong.OnPlayerLogin_CrossLogic(serverGroupID, serverID, playerID)
         
     # 下线
@@ -832,7 +842,7 @@
     packValue = playerStatePack.GetValue()
     packValueEx = playerStatePack.GetValueEx()
     packType = playerStatePack.GetType()
-    packValueTotal = packValue + packValueEx * ChConfig.Def_PerPointValue
+    #packValueTotal = packValue + packValueEx * ChConfig.Def_PerPointValue
     
     #---特殊逻辑处理---
     if packType == ShareDefine.CDBPlayerRefresh_ForbidenTalk:
@@ -844,7 +854,7 @@
         return
     
     if packType == ShareDefine.CDBPlayerRefresh_ExAttr19:
-        PlayerControl.SetLeaveFamilyTimeEx(curPlayer, packValueTotal)
+        PlayerControl.SetLeaveFamilyTimeEx(curPlayer, packValue)
         return
     
     if packType == IPY_GameServer.CDBPlayerRefresh_State:

--
Gitblit v1.8.0