From b3c6d36f5ae851f09a3c2e73494ff19956b06fb0 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期五, 11 四月 2025 16:56:14 +0800 Subject: [PATCH] 10367 【越南】【英语】【BT】【砍树】仙盟攻城战-服务端(跨服仙盟支持;后台查询区服仙盟支持;活动时间流程支持;攻城战主活动功能完整流程:公示、分组、战备、战斗、榜单、竞猜、领奖等;) --- ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerViewCache.py | 32 ++++++++++++++++++++------------ 1 files changed, 20 insertions(+), 12 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerViewCache.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerViewCache.py index dcadebf..e087772 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerViewCache.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerViewCache.py @@ -132,10 +132,14 @@ PlayerPackData.DelOutofTimePackData() + onlineMgr = ChPlayer.GetOnlinePlayerMgr() pyViewCacheMgr = PyDataManager.GetPlayerViewCachePyManager() playerViewCachePyDict = pyViewCacheMgr.playerViewCachePyDict for playerID, viewCache in playerViewCachePyDict.items(): if IsSaveDBViewCache(viewCache): + continue + if onlineMgr.IsOnline(playerID): + #在线的先不删除 continue playerViewCachePyDict.pop(playerID) @@ -234,24 +238,28 @@ def GetSyncCrossCacheBase(curPlayer): ## 获取同步跨服基础查看缓存,主要用于个别功能需要提前先同步玩家基础缓存到跨服,因为跨服不一定有玩家缓存,需要提前同步 - playerID = curPlayer.GetPlayerID() + if isinstance(curPlayer, int): + playerID = curPlayer + curPlayer = None + else: + playerID = curPlayer.GetPlayerID() cacheDict = GetCachePropDataDict(FindViewCache(playerID)) cacheBase = { - "AccID":curPlayer.GetAccID(), - "LV":curPlayer.GetLV(), - "RealmLV":curPlayer.GetOfficialRank(), - "Job":curPlayer.GetJob(), - "VIPLV":curPlayer.GetVIPLv(), - "Name":CrossRealmPlayer.GetCrossPlayerName(curPlayer), - "Face":curPlayer.GetFace(), - "FacePic":curPlayer.GetFacePic(), - "FamilyID":curPlayer.GetFamilyID(), + "AccID":curPlayer.GetAccID() if curPlayer else cacheDict.get("AccID", ""), + "LV":curPlayer.GetLV() if curPlayer else cacheDict.get("LV", 1), + "RealmLV":curPlayer.GetOfficialRank() if curPlayer else cacheDict.get("RealmLV", 1), + "Job":curPlayer.GetJob() if curPlayer else cacheDict.get("Job", 1), + "VIPLV":curPlayer.GetVIPLv() if curPlayer else cacheDict.get("VIPLV", 0), + "Name":curPlayer.GetName() if curPlayer else cacheDict.get("Name", ""), # 此处不用跨服名称,如前端需要展示跨服名称,可通过ServerID或AccID取得ServerID展示 + "Face":curPlayer.GetFace() if curPlayer else cacheDict.get("Face", 0), + "FacePic":curPlayer.GetFacePic() if curPlayer else cacheDict.get("FacePic", 0), + "FamilyID":curPlayer.GetFamilyID() if curPlayer else cacheDict.get("FacmilyID", 0), "FamilyName":cacheDict.get("FamilyName", ""), "TitleID":cacheDict.get("TitleID", 0), - "FightPower":PlayerControl.GetFightPower(curPlayer), + "FightPower":PlayerControl.GetFightPower(curPlayer) if curPlayer else cacheDict.get("FightPower", 0), "EquipShowSwitch":cacheDict.get("EquipShowSwitch", 0), "EquipShowID":cacheDict.get("EquipShowID", []), - "ServerGroupID":PlayerControl.GetPlayerServerGroupID(curPlayer), + "ServerGroupID":PlayerControl.GetPlayerServerGroupID(curPlayer) if curPlayer else cacheDict.get("ServerGroupID", GameWorld.GetServerGroupID()), } return cacheBase -- Gitblit v1.8.0