From bc433db8262081f0400bcb9c2c3476000662daf3 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 10 七月 2024 14:24:53 +0800
Subject: [PATCH] 10205 【越南】【主干】【港台】【砍树】自选礼包(支持一次性放入超65535个数叠加物品;邮件同步支持一次性领取超65535个数叠加物品)
---
ServerPython/CoreServerGroup/GameServer/Script/Player/CrossRealmPlayer.py | 23 +++++++++++++++++++++--
1 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/CrossRealmPlayer.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/CrossRealmPlayer.py
index a4815ec..a59b095 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/CrossRealmPlayer.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/CrossRealmPlayer.py
@@ -92,6 +92,21 @@
ipyDataList = IpyGameDataPY.GetIpyGameDataByCondition(zoneTypeName, {"CrossZoneName":crossZoneName}, True)
return ipyDataList
+def GetServerCommCrossZoneID(serverGroupID):
+ ## 获取跨服常规分区
+ zoneTypeName = "CrossZoneComm"
+ crossZoneName = GameWorld.GetCrossZoneName()
+ ipyDataList = IpyGameDataPY.GetIpyGameDataByCondition(zoneTypeName, {"CrossZoneName":crossZoneName}, True)
+ if not ipyDataList:
+ return 0
+ for ipyData in ipyDataList:
+ serverGroupIDList = ipyData.GetServerGroupIDList()
+ for serverGroupIDInfo in serverGroupIDList:
+ if (isinstance(serverGroupIDInfo, tuple) and serverGroupIDInfo[0] <= serverGroupID <= serverGroupIDInfo[1]) \
+ or (isinstance(serverGroupIDInfo, int) and serverGroupIDInfo == serverGroupID):
+ return ipyData.GetZoneID()
+ return 0
+
def GetServerCrossZoneMapIpyData(zoneID, mapID):
## 获取本服对应跨服玩法分区地图信息 - 仅适用于固定地图及虚拟分线的跨服玩法
if mapID not in ChConfig.Def_CrossZoneMapTableName:
@@ -434,6 +449,7 @@
if not IsCrossServerOpen():
return
+ Sync_CrossZoneInfo(curPlayer)
LoginDoUnNotifyCrossMsg(curPlayer)
return
@@ -467,5 +483,8 @@
curPlayer.MapServer_QueryPlayerResult(0, 0, callName, msgInfo, len(msgInfo))
return
-
-
\ No newline at end of file
+def Sync_CrossZoneInfo(curPlayer):
+ clientPack = ChPyNetSendPack.tagGCCrossZoneInfo()
+ clientPack.CommZoneID = GetServerCommCrossZoneID(GameWorld.GetServerGroupID())
+ NetPackCommon.SendFakePack(curPlayer, clientPack)
+ return
--
Gitblit v1.8.0