| | |
| | | def ClientServerMsg_PKMatch(serverGroupID, playerInfoDict, tick):
|
| | | ## 请求匹配
|
| | |
|
| | | if not GameWorld.IsMergeServer():
|
| | | if not GameWorld.IsCrossServer():
|
| | | GameWorld.ErrLog("非跨服服务器不处理跨服PK匹配请求!")
|
| | | return
|
| | |
|
| | |
| | | def ClientServerMsg_PKCancel(playerInfoDict, tick):
|
| | | ## 取消匹配
|
| | |
|
| | | if not GameWorld.IsMergeServer():
|
| | | if not GameWorld.IsCrossServer():
|
| | | GameWorld.ErrLog("非跨服服务器不处理取消跨服PK匹配!")
|
| | | return
|
| | |
|
| | |
| | | def ClientServerMsg_PKPrepareOK(playerInfoDict, tick):
|
| | | ## 玩家跨服对战数据准备OK
|
| | |
|
| | | if not GameWorld.IsMergeServer():
|
| | | if not GameWorld.IsCrossServer():
|
| | | GameWorld.ErrLog("非跨服服务器不处理取消跨服PK匹配!")
|
| | | return
|
| | |
|
| | |
| | | ## 玩家跨服PK匹配定时处理逻辑
|
| | |
|
| | | # 非跨服服务器不处理跨服PK匹配逻辑
|
| | | if not GameWorld.IsMergeServer():
|
| | | if not GameWorld.IsCrossServer():
|
| | | return
|
| | |
|
| | | if not IsCrossRealmPKOpen():
|
| | |
| | | # 同步子服排行榜
|
| | | #__SyncBillboardToClientServer(False, tick)
|
| | |
|
| | | processTick = IpyGameDataPY.GetFuncCfg("CrossRealmPKMatch", 1)
|
| | | processTick = IpyGameDataPY.GetFuncCfg("CrossRealmPKMatch", 1) * 1000
|
| | | processTickKey = "PKMatchLastTick"
|
| | | lastProcessTick = GameWorld.GetGameWorld().GetDictByKey(processTickKey)
|
| | | if tick - lastProcessTick < processTick:
|
| | |
| | | __ReadyOKRoomPlayerProcess(tick)
|
| | |
|
| | | maxGroupCnt = IpyGameDataPY.GetFuncCfg("CrossRealmPKMatch", 2)
|
| | | outTimeTick = IpyGameDataPY.GetFuncCfg("CrossRealmPKMatch", 3)
|
| | | outTimeTick = IpyGameDataPY.GetFuncCfg("CrossRealmPKMatch", 3) * 1000
|
| | |
|
| | | # 每个赛区单独匹配
|
| | | for pkZoneID, matchPlayerIDList in PyGameData.g_crossPKZoneMatchPlayerDict.items():
|