From f12bbdcbaebff76914ae6dc735941d19f8f4e87f Mon Sep 17 00:00:00 2001 From: hch <305670599@qq.com> Date: 星期二, 25 六月 2019 02:00:11 +0800 Subject: [PATCH] 860312 印记飘字的优先级高于压制 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_CrossRealmReg.py | 53 +++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 39 insertions(+), 14 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_CrossRealmReg.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_CrossRealmReg.py index 57fb5d0..1fabaab 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_CrossRealmReg.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_CrossRealmReg.py @@ -20,8 +20,11 @@ import CrossRealmPlayer import IPY_GameWorld import ChPyNetSendPack +import CrossPlayerData import NetPackCommon import ChConfig +import FBCommon +import FBLogic #------------------------------------------------------------------------------ @@ -49,11 +52,11 @@ GameWorld.Log("GY_Query_CrossRealmReg DoResult %s" % funResult, curPlayer.GetPlayerID()) if not resultInfo: return - registerMap, mapID, dataMapID, copyMapID, posX, posY = resultInfo - RegisterEnterCrossServer(curPlayer, registerMap, mapID, dataMapID, copyMapID, posX, posY) + registerMap, mapID, dataMapID, copyMapID, posX, posY, lineID = resultInfo + RegisterEnterCrossServer(curPlayer, registerMap, mapID, dataMapID, copyMapID, posX, posY, lineID) return -def RegisterEnterCrossServer(curPlayer, registerMap, mapID=0, dataMapID=0, copyMapID=0, posX=0, posY=0): +def RegisterEnterCrossServer(curPlayer, registerMap, mapID=0, dataMapID=0, copyMapID=0, posX=0, posY=0, lineID=0): ''' @param registerMap: 一般是dataMapID ''' @@ -67,31 +70,52 @@ GameWorld.ErrLog("跨服已经在上传数据,不重复提交!playerRegisterMap=%s,registerMap=%s" % (playerRegisterMap, registerMap), curPlayer.GetPlayerID()) return - zoneID = 0 + #跨服前更新自己所属服务器组ID + PlayerControl.UpdPlayerServerGroupID(curPlayer) + serverGroupID = PlayerControl.GetPlayerServerGroupID(curPlayer) + zoneIpyData = CrossRealmPlayer.GetCrossZoneIpyDataByServerGroupID(registerMap, serverGroupID) + if not zoneIpyData: + return + zoneID = zoneIpyData.GetZoneID() + if not mapID: - zoneIpyData = CrossRealmPlayer.GetServerCrossZoneIpyData(registerMap) + zoneIpyData = CrossRealmPlayer.GetServerCrossZoneMapIpyData(zoneID, registerMap) if not zoneIpyData: GameWorld.ErrLog("找不到该服务器对应跨服分区: registerMap=%s" % (registerMap)) return - zoneID, mapID, dataMapID, copyMapID, posX, posY = zoneIpyData.GetZoneID(), zoneIpyData.GetMapID(), \ - zoneIpyData.GetDataMapID(), zoneIpyData.GetCopyMapID(), zoneIpyData.GetPosX(), zoneIpyData.GetPosY() + mapID, dataMapID, copyMapID, posX, posY = zoneIpyData.GetMapID(), zoneIpyData.GetDataMapID(), zoneIpyData.GetCopyMapID(), zoneIpyData.GetPosX(), zoneIpyData.GetPosY() + + if not posX or not posY: + fbLineIpyData = FBCommon.GetFBLineIpyData(mapID, lineID) + if fbLineIpyData: + tick = GameWorld.GetGameWorld().GetTick() + ipyEnterPosInfo = FBCommon.GetFBLineEnterPosInfo(mapID, lineID, fbLineIpyData) + retPos = FBLogic.OnGetFBEnterPos(curPlayer, mapID, lineID, ipyEnterPosInfo, tick) + if not retPos: + GameWorld.ErrLog("未找到进入副本坐标!mapID=%s,lineID=%s" % (mapID, lineID)) + return + posX, posY = retPos - if not mapID: + if not mapID or not posX or not posY: return - #跨服前更新自己所属服务器组ID - PlayerControl.UpdPlayerServerGroupID(curPlayer) + if not FBLogic.OnRegEnterCrossFB(curPlayer, mapID, lineID): + GameWorld.ErrLog("OnRegEnterCrossFB 进入跨服副本注册失败,进入条件不足!无法注册! mapID=%s,lineID=%s" % (mapID, lineID), playerID) + return if registerMap in ChConfig.RegisterEnter_CrossServerMapIDList: prepareEnterCrossServer = ChPyNetSendPack.tagMCPrepareEnterCrossServer() prepareEnterCrossServer.DataMapID = registerMap NetPackCommon.SendFakePack(curPlayer, prepareEnterCrossServer) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PlayerKey_CrossRegisterMap, registerMap) + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_ReqCrossFBFuncLine, lineID) + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_ReqCrossFBZoneID, zoneID) + CrossPlayerData.OnPlayerCrossReg(curPlayer) #curPlayer.SendMergeRegisterPlayer(mapID, dataMapID, copyMapID, posX, posY) curPlayer.SendMergeRegisterPlayerAfterChange(CrossRealmPlayer.GetCrossPlayerName(curPlayer), mapID, dataMapID, copyMapID, posX, posY) - GameWorld.Log(" 发送跨服玩家数据注册: registerMap=%s,zoneID=%s,mapID=%s,dataMapID=%s,copyMapID=%s,posX=%s,posY=%s,GetVsRoomId=%s" - % (registerMap, zoneID, mapID, dataMapID, copyMapID, posX, posY, curPlayer.GetVsRoomId()), playerID) - return + GameWorld.Log(" 发送跨服玩家数据注册: registerMap=%s,lineID=%s,zoneID=%s,mapID=%s,dataMapID=%s,copyMapID=%s,posX=%s,posY=%s,GetVsRoomId=%s" + % (registerMap, lineID, zoneID, mapID, dataMapID, copyMapID, posX, posY, curPlayer.GetVsRoomId()), playerID) + return True ## 跨服赛报名结果(上传数据) # @param index 玩家索引 @@ -102,6 +126,7 @@ curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index) registerMap = curPlayer.NomalDictGetProperty(ChConfig.Def_PlayerKey_CrossRegisterMap) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PlayerKey_CrossRegisterMap, 0) + curPlayer.SetDict(ChConfig.Def_PlayerKey_RequestEnterCrossServerTick, 0) playerID = curPlayer.GetPlayerID() result = registerResult.GetResult() GameWorld.Log("GameServer_MergeRegisterResult registerMap=%s,result=%s" % (registerMap, result), playerID) @@ -113,7 +138,7 @@ if registerMap in ChConfig.RegisterEnter_CrossServerMapIDList: CrossRealmPlayer.DoEnterCrossRealm(curPlayer) - PlayerControl.SetCrossRealmState(curPlayer, registerMap) + PlayerControl.SetCrossMapID(curPlayer, registerMap) NetPackCommon.SendFakePack(curPlayer, ChPyNetSendPack.tagMCStartEnterCrossServer()) return -- Gitblit v1.8.0