|  |  | 
 |  |  |     
 | 
 |  |  |     # 进行匹配
 | 
 |  |  |     if requestType == 1:
 | 
 |  |  |         dayFreeMatchCountMax = IpyGameDataPY.GetFuncCfg("CrossRealmPKMatchCount", 1)
 | 
 |  |  |         if dayFreeMatchCountMax:
 | 
 |  |  |             todayPKCount  = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CrossPK_TodayPKCount)
 | 
 |  |  |             todayBuyCount  = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CrossPK_TodayBuyCount)
 | 
 |  |  |             todayItemAddCount  = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CrossPK_ItemAddCount)
 | 
 |  |  |              | 
 |  |  |             if todayPKCount >= (dayFreeMatchCountMax + todayBuyCount + todayItemAddCount):
 | 
 |  |  |                 GameWorld.DebugLog("PK次数不足,无法发起匹配! todayPKCount=%s >= (dayFreeMatchCountMax=%s + todayBuyCount=%s + todayItemAddCount=%s)"  | 
 |  |  |                                    % (todayPKCount, dayFreeMatchCountMax, todayBuyCount, todayItemAddCount), playerID)
 | 
 |  |  |                 return
 | 
 |  |  |              | 
 |  |  |         if not CheckHavePKCount(curPlayer):
 | 
 |  |  |             GameWorld.DebugLog("PK次数不足,无法发起匹配!", curPlayer.GetPlayerID())
 | 
 |  |  |             return
 | 
 |  |  |          | 
 |  |  |         dataMsg = {
 | 
 |  |  |                    "seasonID":GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_CrossPKSeasonID), # 赛季ID
 | 
 |  |  |                    "pkZoneID":GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_CrossPKZoneID), # PK赛区
 | 
 |  |  | 
 |  |  |         GameWorld.Log("    发送取消匹配到GameServer sendMsg=%s" % str(sendMsg), playerID)
 | 
 |  |  |         
 | 
 |  |  |     return
 | 
 |  |  | 
 | 
 |  |  | def CheckHavePKCount(curPlayer):
 | 
 |  |  |     ## 检查是否有PK次数
 | 
 |  |  |     dayFreeMatchCountMax = IpyGameDataPY.GetFuncCfg("CrossRealmPKMatchCount", 1)
 | 
 |  |  |     if dayFreeMatchCountMax:
 | 
 |  |  |         todayPKCount  = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CrossPK_TodayPKCount)
 | 
 |  |  |         todayBuyCount  = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CrossPK_TodayBuyCount)
 | 
 |  |  |         todayItemAddCount  = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CrossPK_ItemAddCount)
 | 
 |  |  |          | 
 |  |  |         if todayPKCount >= (dayFreeMatchCountMax + todayBuyCount + todayItemAddCount):
 | 
 |  |  |             return False
 | 
 |  |  |     return True
 | 
 |  |  | 
 | 
 |  |  | def CrossServerMsg_PKOverInfo(curPlayer, overInfo):
 | 
 |  |  |     ## 收到跨服服务器的PK结算信息
 | 
 |  |  | 
 |  |  |     if not IsCrossRealmPKMatchState():
 | 
 |  |  |         GameWorld.DebugLog("跨服匹配未开启,不可进行购买次数!", playerID)
 | 
 |  |  |         return
 | 
 |  |  |     dayFreeMatchCountMax = IpyGameDataPY.GetFuncCfg("CrossRealmPKMatchCount", 1)
 | 
 |  |  |     if not dayFreeMatchCountMax:
 | 
 |  |  |         GameWorld.DebugLog("每日匹配次数没有限制,不需要购买次数!", playerID)
 | 
 |  |  |     if CheckHavePKCount(curPlayer):
 | 
 |  |  |         GameWorld.DebugLog("有PK次数,不需要购买次数!", playerID)
 | 
 |  |  |         return
 | 
 |  |  |     dayBuyCountMax = IpyGameDataPY.GetFuncCfg("CrossRealmPKMatchCount", 2)
 | 
 |  |  |     todayBuyCount  = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CrossPK_TodayBuyCount)
 |