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