| | |
| | | return
|
| | | zoneID = zoneIpyData.GetZoneID()
|
| | |
|
| | | copyMapPlayerMax = 0 # 0为不限制人数,默认不限制
|
| | | dynamicLineMaxPlayerCountDict = IpyGameDataPY.GetFuncEvalCfg("CrossDynamicLineMap", 2)
|
| | | copyMapPlayerMax = dynamicLineMaxPlayerCountDict.get(mapID, 0) # 0为不限制人数,默认不限制
|
| | | if mapID == ChConfig.Def_FBMapID_CrossDemonKing:
|
| | | bossID = msgData["BossID"]
|
| | | if not CrossBoss.GetCrossBossIsAliveOrCanReborn(zoneID, bossID):
|
| | |
| | | return
|
| | |
|
| | | elif mapID in [ChConfig.Def_FBMapID_CrossGrasslandLing, ChConfig.Def_FBMapID_CrossGrasslandXian]:
|
| | | copyMapPlayerMax = 10
|
| | | pass
|
| | |
|
| | | else:
|
| | | return
|
| | |
| | |
|
| | | playerIDList, dataMapID, mapID, copyMapID, funcLineID = msgData
|
| | |
|
| | | dynamicLineMapDict = IpyGameDataPY.GetFuncEvalCfg("CrossDynamicLineMap", 1)
|
| | | if dataMapID not in dynamicLineMapDict:
|
| | | return
|
| | | mapPosInfo = dynamicLineMapDict[dataMapID][0]
|
| | | posX, posY = mapPosInfo[:2]
|
| | | dist = mapPosInfo[2] if len(mapPosInfo) > 2 else 0
|
| | | if dist > 0:
|
| | | posX, posY = random.randint(posX - dist, posX + dist), random.randint(posY - dist, posY + dist)
|
| | | |
| | | for playerID in playerIDList:
|
| | | curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(playerID)
|
| | | if not curPlayer:
|
| | | continue
|
| | | CrossRealmPlayer.SendCrossRealmReg(curPlayer, dataMapID, mapID, dataMapID, copyMapID, posX, posY, lineID=funcLineID)
|
| | | CrossRealmPlayer.SendCrossRealmReg(curPlayer, dataMapID, mapID, dataMapID, copyMapID, lineID=funcLineID)
|
| | |
|
| | | return
|
| | |
|
| | |
| | | return realMapID, copyMapID, openState
|
| | |
|
| | | dynamicLineMapDict = IpyGameDataPY.GetFuncEvalCfg("CrossDynamicLineMap", 1)
|
| | | if mapID not in dynamicLineMapDict:
|
| | | return
|
| | | dynamicMapIDList = dynamicLineMapDict[mapID][1]
|
| | | dynamicMapIDList = dynamicLineMapDict.get(mapID, [mapID])
|
| | |
|
| | | openMapID, openCopyMapID = 0, 0
|
| | | for realMapID in dynamicMapIDList:
|