From ef4898f247f88410fa8e3316a563cdb1de56c1c7 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期三, 21 八月 2024 10:58:33 +0800 Subject: [PATCH] 10229 【越南】【主干】【港台】【砍树】古神战场修改(功能队伍增加队员在线状态同步;相关玩家在线状态管理,支持跨服;优化查找玩家相关联队伍同步玩家所在队伍及已申请的队伍;修复队伍成员找不到缓存时报错;优化玩家缓存判断是否保存统一逻辑,防止过天可能被删除;) --- ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmPK.py | 27 +++++++++++++++++++++++++++ 1 files changed, 27 insertions(+), 0 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmPK.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmPK.py index 58ef254..44c7dd4 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmPK.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmPK.py @@ -2240,3 +2240,30 @@ DataRecordPack.SendEventPack("CrossPK_%s" % eventName, drDataDict) return +def IsCrossRealmPKPlayer(playerID, checkPreSeason=False, checkAllSeason=False): + ## 仅跨服服务器判断用 + # @param checkPreSeason: 检查上一赛季 + # @param checkAllSeason: 检查所有赛季 + + # 默认取分区1的赛季作为当前赛季,所有分区赛季ID相同,且递增 + gameWorld = GameWorld.GetGameWorld() + nowSeasonID = gameWorld.GetDictByKey(ChConfig.Def_WorldKey_CrossPKZoneSeasonID % 1) + preSeasonID = nowSeasonID - 1 + crossPKBillboardMgr = PyDataManager.GetCrossPKBillboardManager() + crossZoneName = GameWorld.GetCrossZoneName() + ipyDataMgr = IpyGameDataPY.IPY_Data() + for index in range(ipyDataMgr.GetCrossRealmPKSeasonCount()): + seasonIpyData = ipyDataMgr.GetCrossRealmPKSeasonByIndex(index) + if crossZoneName != seasonIpyData.GetCrossZoneName(): + continue + zoneID = seasonIpyData.GetZoneID() + seasonID = seasonIpyData.GetSeasonID() + if checkAllSeason or seasonID == nowSeasonID or (checkPreSeason and seasonID == preSeasonID): + pass + else: + continue + _, orderDict = crossPKBillboardMgr.GetCrossPKBillboardInfo(zoneID, seasonID) + if orderDict and playerID in orderDict: + return True + + return False -- Gitblit v1.8.0