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