From 133a8b5682a9b7637b20f2be88d27628fb6ca39a Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期二, 12 二月 2019 15:53:56 +0800
Subject: [PATCH] 5819 【后端】【1.6】运营活动支持对应不同的职业和世界等级(累计充值修改)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_CrossRealmReg.py | 72 ++++++++++++++---------------------
1 files changed, 29 insertions(+), 43 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 f3ff343..f0bdca9 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,8 @@
import CrossRealmPlayer
import IPY_GameWorld
import ChPyNetSendPack
+import CrossPlayerData
import NetPackCommon
-import IpyGameDataPY
import ChConfig
@@ -50,63 +50,49 @@
GameWorld.Log("GY_Query_CrossRealmReg DoResult %s" % funResult, curPlayer.GetPlayerID())
if not resultInfo:
return
- registerType, mapID, dataMapID, copyMapID, posX, posY = resultInfo
- RegisterEnterCrossServer(curPlayer, registerType, mapID, dataMapID, copyMapID, posX, posY)
+ registerMap, mapID, dataMapID, copyMapID, posX, posY = resultInfo
+ RegisterEnterCrossServer(curPlayer, registerMap, mapID, dataMapID, copyMapID, posX, posY)
return
-def RegisterEnterCrossServer(curPlayer, registerType, mapID=0, dataMapID=0, copyMapID=0, posX=0, posY=0):
+def RegisterEnterCrossServer(curPlayer, registerMap, mapID=0, dataMapID=0, copyMapID=0, posX=0, posY=0):
+ '''
+ @param registerMap: 一般是dataMapID
+ '''
playerID = curPlayer.GetPlayerID()
if GameWorld.IsCrossServer():
GameWorld.Log(" 跨服服务器不允许上传报名数据!", playerID)
return
- playerRegisterType = curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_CrossRegisterType)
- if playerRegisterType in ChConfig.RegisterEnter_CrossServerMapIDList:
- GameWorld.ErrLog("跨服已经在上传数据,不重复提交!playerRegisterType=%s,registerType=%s" % (playerRegisterType, registerType), curPlayer.GetPlayerID())
+ playerRegisterMap = curPlayer.NomalDictGetProperty(ChConfig.Def_PlayerKey_CrossRegisterMap)
+ if playerRegisterMap in ChConfig.RegisterEnter_CrossServerMapIDList:
+ GameWorld.ErrLog("跨服已经在上传数据,不重复提交!playerRegisterMap=%s,registerMap=%s" % (playerRegisterMap, registerMap), curPlayer.GetPlayerID())
return
+ zoneID = 0
if not mapID:
- if registerType in ChConfig.RegisterEnter_CrossServerMapIDList:
- registerTableName = "CrossPenglaiZone"
- else:
+ zoneIpyData = CrossRealmPlayer.GetServerCrossZoneMapIpyData(registerMap)
+ if not zoneIpyData:
+ GameWorld.ErrLog("找不到该服务器对应跨服分区: registerMap=%s" % (registerMap))
return
- RegisterMapInfo = GetCurServerGroupIDRegisterMapInfo(registerTableName)
- if not RegisterMapInfo:
- GameWorld.ErrLog("找不到该服务器对应跨服分区: registerType=%s,registerTableName=%s" % (registerType, registerTableName))
- return
- mapID, copyMapID, posX, posY = RegisterMapInfo
- dataMapID = mapID
-
+ zoneID, mapID, dataMapID, copyMapID, posX, posY = zoneIpyData.GetZoneID(), zoneIpyData.GetMapID(), \
+ zoneIpyData.GetDataMapID(), zoneIpyData.GetCopyMapID(), zoneIpyData.GetPosX(), zoneIpyData.GetPosY()
+
if not mapID:
return
#跨服前更新自己所属服务器组ID
PlayerControl.UpdPlayerServerGroupID(curPlayer)
- if registerType in ChConfig.RegisterEnter_CrossServerMapIDList:
+ if registerMap in ChConfig.RegisterEnter_CrossServerMapIDList:
prepareEnterCrossServer = ChPyNetSendPack.tagMCPrepareEnterCrossServer()
- prepareEnterCrossServer.DataMapID = registerType
+ prepareEnterCrossServer.DataMapID = registerMap
NetPackCommon.SendFakePack(curPlayer, prepareEnterCrossServer)
- curPlayer.SetDict(ChConfig.Def_PlayerKey_CrossRegisterType, registerType)
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PlayerKey_CrossRegisterMap, registerMap)
+ CrossPlayerData.OnPlayerCrossReg(curPlayer)
#curPlayer.SendMergeRegisterPlayer(mapID, dataMapID, copyMapID, posX, posY)
curPlayer.SendMergeRegisterPlayerAfterChange(CrossRealmPlayer.GetCrossPlayerName(curPlayer), mapID, dataMapID, copyMapID, posX, posY)
- GameWorld.Log(" 发送跨服玩家数据注册: registerType=%s,mapID=%s,dataMapID=%s,copyMapID=%s,posX=%s,posY=%s,GetVsRoomId=%s"
- % (registerType, mapID, dataMapID, copyMapID, posX, posY, curPlayer.GetVsRoomId()), playerID)
- return
-
-def GetCurServerGroupIDRegisterMapInfo(tableName):
- ipyDataMgr = IpyGameDataPY.IPY_Data()
- if not hasattr(ipyDataMgr, "Get%sCount" % tableName):
- return
-
- serverGroupID = GameWorld.GetServerGroupID()
- for i in xrange(getattr(ipyDataMgr, "Get%sCount" % tableName)()):
- ipyData = getattr(ipyDataMgr, "Get%sByIndex" % tableName)(i)
- 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.GetMapID(), ipyData.GetCopyMapID(), ipyData.GetPosX(), ipyData.GetPosY()
+ 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
## 跨服赛报名结果(上传数据)
@@ -116,27 +102,27 @@
def GameServer_MergeRegisterResult(index, tick):
registerResult = IPY_GameWorld.IPY_GMMergeRegisterPlayerResult()
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
- registerType = curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_CrossRegisterType)
- curPlayer.SetDict(ChConfig.Def_PlayerKey_CrossRegisterType, 0)
+ registerMap = curPlayer.NomalDictGetProperty(ChConfig.Def_PlayerKey_CrossRegisterMap)
+ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PlayerKey_CrossRegisterMap, 0)
playerID = curPlayer.GetPlayerID()
result = registerResult.GetResult()
- GameWorld.Log("GameServer_MergeRegisterResult registerType=%s,result=%s" % (registerType, result), playerID)
+ GameWorld.Log("GameServer_MergeRegisterResult registerMap=%s,result=%s" % (registerMap, result), playerID)
if not result:
errorMsg = registerResult.GetErrorMsg()
GameWorld.Log("CrossRealmReg result Error:%s" % errorMsg, playerID)
NetPackCommon.SendFakePack(curPlayer, ChPyNetSendPack.tagMCEnterCrossServerError())
return
- if registerType in ChConfig.RegisterEnter_CrossServerMapIDList:
+ if registerMap in ChConfig.RegisterEnter_CrossServerMapIDList:
CrossRealmPlayer.DoEnterCrossRealm(curPlayer)
- PlayerControl.SetCrossRealmState(curPlayer, 1)
+ PlayerControl.SetCrossMapID(curPlayer, registerMap)
NetPackCommon.SendFakePack(curPlayer, ChPyNetSendPack.tagMCStartEnterCrossServer())
return
#newAccount = registerResult.GetAccount()
#newName = registerResult.GetPwd()
- msgList = str([registerType])
+ msgList = str([registerMap])
GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(curPlayer.GetID(), 0, 0, "CrossRealmReg", msgList, len(msgList))
return
--
Gitblit v1.8.0