From f4ba71b4f1f541fbf705ec7ccee1e49d097cb57f Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 08 一月 2019 15:10:26 +0800
Subject: [PATCH] 5722 【后端】【1.5】跨服BOSS开发(登录、退出跨服流程优化)

---
 ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmPK.py |  110 ++++++++++++++++++++++++++++---------------------------
 1 files changed, 56 insertions(+), 54 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmPK.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmPK.py
index a49ec94..414e290 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmPK.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmPK.py
@@ -708,61 +708,63 @@
                 return zoneIpyData.GetZoneID()
     return 0
 
-def OnPlayerLogin(curPlayer):
-    
-    # 本服登录处理
-    if not GameWorld.IsCrossServer():
-        # 本服没有分配赛区不处理
-        if not GameWorld.GetGameWorld().GetDictByKey(ShareDefine.Def_Notify_WorldKey_CrossPKZoneID):
-            return
-        __OnLoginNotifyPKOverInfo(curPlayer)
-        
-        # 同步所有赛区赛季信息
-        zoneSeasonInfo = ChPyNetSendPack.tagGCCrossRealmPKSeasonInfo()
-        zoneSeasonInfo.ZoneList = []
-        ipyDataMgr = IpyGameDataPY.IPY_Data()
-        for index in xrange(ipyDataMgr.GetCrossRealmPKZoneCount()):
-            zoneIpyData = ipyDataMgr.GetCrossRealmPKZoneByIndex(index)
-            zoneID = zoneIpyData.GetZoneID()
-            zoneInfo = ChPyNetSendPack.tagGCCrossRealmPKZone()
-            zoneInfo.ZoneID = zoneID
-            zoneInfo.ZoneName = zoneIpyData.GetZoneName().decode(ShareDefine.Def_Game_Character_Encoding).encode(GameWorld.GetCharacterEncoding())
-            zoneInfo.ZoneNameLen = len(zoneInfo.ZoneName)
-            zoneInfo.SeasonList = []
-            seasonList = IpyGameDataPY.GetIpyGameDataList("CrossRealmPKSeason", zoneID)
-            seasonList = [] if not seasonList else seasonList
-            for seasonIpyData in seasonList:
-                seasonInfo = ChPyNetSendPack.tagGCCrossRealmPKSeason()
-                seasonInfo.SeasonID = seasonIpyData.GetSeasonID()
-                seasonInfo.StartDate = seasonIpyData.GetStartDate()
-                seasonInfo.EndDate = seasonIpyData.GetEndDate()
-                seasonInfo.EndTime = seasonIpyData.GetEndTime()
-                zoneInfo.SeasonList.append(seasonInfo)
-            zoneInfo.SeasonCount = len(zoneInfo.SeasonList)
-            zoneSeasonInfo.ZoneList.append(zoneInfo)
-        zoneSeasonInfo.ZoneCount = len(zoneSeasonInfo.ZoneList)
-        NetPackCommon.SendFakePack(curPlayer, zoneSeasonInfo)
-        
-        # 同步本服赛季状态
-        gameWorld = GameWorld.GetGameWorld()
-        seasonStatePack = ChPyNetSendPack.tagGCCrossRealmPKSeasonState()
-        seasonStatePack.ZoneID = gameWorld.GetDictByKey(ShareDefine.Def_Notify_WorldKey_CrossPKZoneID)
-        seasonStatePack.SeasonID = gameWorld.GetDictByKey(ShareDefine.Def_Notify_WorldKey_CrossPKSeasonID)
-        seasonStatePack.SeasonState = gameWorld.GetDictByKey(ShareDefine.Def_Notify_WorldKey_CrossPKSeasonState)
-        seasonStatePack.MatchState = gameWorld.GetDictByKey(ShareDefine.Def_Notify_WorldKey_CrossDailyActionState % ShareDefine.DailyActionID_CrossReamPK)
-        NetPackCommon.SendFakePack(curPlayer, seasonStatePack)
-        
+def OnPlayerLoginCrossServer(curPlayer):
     # 跨服登录处理
-    else:
-        mapID = curPlayer.GetMapID()
-        mapIDList = IpyGameDataPY.GetFuncCfg("CrossRealmPKMatch", 4)
-        if mapID not in mapIDList:
-            return
-        
-        GameWorld.Log("玩家登录跨服PK地图, mapID=%s" % mapID, curPlayer.GetPlayerID())
-        if not __CheckCanLoginCrossServerPKMap(curPlayer):
-            CrossRealmPlayer.PlayerExitCrossServer(curPlayer)
-            return
+    
+    mapID = curPlayer.GetMapID()
+    mapIDList = IpyGameDataPY.GetFuncCfg("CrossRealmPKMatch", 4)
+    if mapID not in mapIDList:
+        return
+    
+    GameWorld.Log("玩家登录跨服PK地图, mapID=%s" % mapID, curPlayer.GetPlayerID())
+    if not __CheckCanLoginCrossServerPKMap(curPlayer):
+        CrossRealmPlayer.PlayerExitCrossServer(curPlayer)
+        return
+    
+    return
+
+def OnPlayerLogin(curPlayer):
+    # 本服登录处理
+    
+    # 本服没有分配赛区不处理
+    if not GameWorld.GetGameWorld().GetDictByKey(ShareDefine.Def_Notify_WorldKey_CrossPKZoneID):
+        return
+    __OnLoginNotifyPKOverInfo(curPlayer)
+    
+    # 同步所有赛区赛季信息
+    zoneSeasonInfo = ChPyNetSendPack.tagGCCrossRealmPKSeasonInfo()
+    zoneSeasonInfo.ZoneList = []
+    ipyDataMgr = IpyGameDataPY.IPY_Data()
+    for index in xrange(ipyDataMgr.GetCrossRealmPKZoneCount()):
+        zoneIpyData = ipyDataMgr.GetCrossRealmPKZoneByIndex(index)
+        zoneID = zoneIpyData.GetZoneID()
+        zoneInfo = ChPyNetSendPack.tagGCCrossRealmPKZone()
+        zoneInfo.ZoneID = zoneID
+        zoneInfo.ZoneName = zoneIpyData.GetZoneName().decode(ShareDefine.Def_Game_Character_Encoding).encode(GameWorld.GetCharacterEncoding())
+        zoneInfo.ZoneNameLen = len(zoneInfo.ZoneName)
+        zoneInfo.SeasonList = []
+        seasonList = IpyGameDataPY.GetIpyGameDataList("CrossRealmPKSeason", zoneID)
+        seasonList = [] if not seasonList else seasonList
+        for seasonIpyData in seasonList:
+            seasonInfo = ChPyNetSendPack.tagGCCrossRealmPKSeason()
+            seasonInfo.SeasonID = seasonIpyData.GetSeasonID()
+            seasonInfo.StartDate = seasonIpyData.GetStartDate()
+            seasonInfo.EndDate = seasonIpyData.GetEndDate()
+            seasonInfo.EndTime = seasonIpyData.GetEndTime()
+            zoneInfo.SeasonList.append(seasonInfo)
+        zoneInfo.SeasonCount = len(zoneInfo.SeasonList)
+        zoneSeasonInfo.ZoneList.append(zoneInfo)
+    zoneSeasonInfo.ZoneCount = len(zoneSeasonInfo.ZoneList)
+    NetPackCommon.SendFakePack(curPlayer, zoneSeasonInfo)
+    
+    # 同步本服赛季状态
+    gameWorld = GameWorld.GetGameWorld()
+    seasonStatePack = ChPyNetSendPack.tagGCCrossRealmPKSeasonState()
+    seasonStatePack.ZoneID = gameWorld.GetDictByKey(ShareDefine.Def_Notify_WorldKey_CrossPKZoneID)
+    seasonStatePack.SeasonID = gameWorld.GetDictByKey(ShareDefine.Def_Notify_WorldKey_CrossPKSeasonID)
+    seasonStatePack.SeasonState = gameWorld.GetDictByKey(ShareDefine.Def_Notify_WorldKey_CrossPKSeasonState)
+    seasonStatePack.MatchState = gameWorld.GetDictByKey(ShareDefine.Def_Notify_WorldKey_CrossDailyActionState % ShareDefine.DailyActionID_CrossReamPK)
+    NetPackCommon.SendFakePack(curPlayer, seasonStatePack)
         
     return
 

--
Gitblit v1.8.0