From 05fa532f5bd8b842208fa4a2768f5bcb97f60cff Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 23 五月 2022 17:00:34 +0800
Subject: [PATCH] 9415 【BT】【后端】古神战场(进场设置仙盟ID为0,防止同盟玩家在不同阵营时无法选中PK)
---
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFB.py | 32 ++++++++++++++++++--------------
1 files changed, 18 insertions(+), 14 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFB.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFB.py
index 48853d9..7f38e29 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFB.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFB.py
@@ -33,6 +33,7 @@
import IPY_PlayerDefine
import CrossBattlefield
import CrossRealmPlayer
+import DataRecordPack
import CrossRealmMsg
import ShareDefine
import CrossBoss
@@ -168,10 +169,9 @@
pass
elif mapID == ChConfig.Def_FBMapID_CrossBattlefield:
- openTimeInfo = CrossBattlefield.GetCrossBattlefieldOpenTime(zoneID)
+ openTimeInfo = CrossBattlefield.GetCrossBattlefieldOpenTime(serverGroupID, zoneID, playerID)
if not openTimeInfo:
- PlayerControl.NotifyCodeCross(serverGroupID, playerID, "FBIsNotOpen")
- GameWorld.ErrLog("非活动时间或未开启! funcLineID=%s,zoneID=%s" % (funcLineID, zoneID), playerID)
+ #GameWorld.ErrLog("非活动时间或未开启! funcLineID=%s,zoneID=%s" % (funcLineID, zoneID), playerID)
return
dynamicShuntType = DynamicShuntType_Equally
isCallBattle, openHour, openMinute = openTimeInfo
@@ -262,21 +262,25 @@
if openState == IPY_PlayerDefine.fbosOpen:
funcLineID = tagCopyMapObj.funcLineID
playerIDList = [playerID]
- retInfo = [playerIDList, mapID, realMapID, copyMapID, funcLineID]
+ # 分流地图的地图数据ID直接使用场景ID,因为分流地图实际上是两张不同的地图,所以直接使用场景ID,不然会导致上传跨服玩家数据时坐标为0
+ retInfo = [playerIDList, mapID, realMapID, realMapID, copyMapID, funcLineID]
CrossRealmMsg.SendMsgToClientServer(ShareDefine.CrossServerMsg_EnterFBRet, retInfo, [serverGroupID])
+ dataDict = {}
+ dataDict.update(msgData)
+ dataDict.update({"mapID":mapID, "realMapID":realMapID, "copyMapID":copyMapID, "realFuncLineID":funcLineID, "openState":openState})
+ DataRecordPack.SendEventPack("CrossFBRequest", dataDict)
return tagCopyMapObj
def CrossServerMsg_EnterFBRet(msgData, tick):
## 收到跨服服务器动态分配的跨服副本进入信息
-
- playerIDList, dataMapID, mapID, copyMapID, funcLineID = msgData
+ playerIDList, dataMapID, mapID, realMapID, copyMapID, funcLineID = msgData
for playerID in playerIDList:
curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(playerID)
if not curPlayer:
continue
- CrossRealmPlayer.SendCrossRealmReg(curPlayer, dataMapID, mapID, dataMapID, copyMapID, lineID=funcLineID)
+ CrossRealmPlayer.SendCrossRealmReg(curPlayer, dataMapID, realMapID, mapID, copyMapID, lineID=funcLineID)
return
@@ -502,7 +506,7 @@
return 0
def OnCrossDynamicLineStateChange(msgList):
- realMapID, copyMapID, state = msgList[:3]
+ mapID, realMapID, copyMapID, state = msgList[:4]
if state == IPY_PlayerDefine.fbosWaitForClose:
funcLineDataCache = msgList[3]
@@ -510,11 +514,11 @@
elif state == IPY_PlayerDefine.fbosClosed:
OnCrossDynamicLineClose(realMapID, copyMapID)
elif state == IPY_PlayerDefine.fbosOpen:
- OnCrossDynamicLineOpen(realMapID, copyMapID)
+ OnCrossDynamicLineOpen(mapID, realMapID, copyMapID)
return
-def OnCrossDynamicLineOpen(realMapID, copyMapID):
+def OnCrossDynamicLineOpen(mapID, realMapID, copyMapID):
## 动态分配线路的地图虚拟线路启动成功
key = (realMapID, copyMapID)
@@ -533,11 +537,11 @@
playerIDList = serverPlayerIDListDict[serverGroupID]
playerIDList.append(playerID)
- mapID = GetRecordMapID(realMapID)
- GameWorld.Log("动态分配虚拟线路启动成功,通知子服等待玩家可进入: mapID=%s,realMapID=%s,copyMapID=%s,serverPlayerIDListDict=%s"
- % (mapID, realMapID, copyMapID, serverPlayerIDListDict))
+ recordMapID = GetRecordMapID(realMapID)
+ GameWorld.Log("动态分配虚拟线路启动成功,通知子服等待玩家可进入: recordMapID=%s,mapID=%s,realMapID=%s,copyMapID=%s,serverPlayerIDListDict=%s"
+ % (recordMapID, mapID, realMapID, copyMapID, serverPlayerIDListDict))
for serverGroupID, playerIDList in serverPlayerIDListDict.items():
- retInfo = [playerIDList, mapID, realMapID, copyMapID, funcLineID]
+ retInfo = [playerIDList, recordMapID, mapID, realMapID, copyMapID, funcLineID]
CrossRealmMsg.SendMsgToClientServer(ShareDefine.CrossServerMsg_EnterFBRet, retInfo, [serverGroupID])
#GameWorld.DebugLog(" PyGameData.g_crossDynamicLineInfo=%s" % PyGameData.g_crossDynamicLineInfo)
--
Gitblit v1.8.0