|  |  | 
 |  |  |     if not GameFuncComm.GetFuncCanUse(curPlayer, ShareDefine.GameFuncID_Arena):
 | 
 |  |  |         return
 | 
 |  |  |     
 | 
 |  |  |     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ArenaItemAddCount, 0)
 | 
 |  |  |     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ArenaBattleCountDay, 0)
 | 
 |  |  |     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ArenaMatchRefreshCount, 0)
 | 
 |  |  |     Sync_ArenaInfo(curPlayer)
 | 
 |  |  |     
 | 
 |  |  | 
 |  |  |         GameWorld.DebugLog("竞技场赛季重置! preSeasonscore=%s,setScore=%s" % (preSeasonscore, setScore))
 | 
 |  |  |         
 | 
 |  |  |     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ArenaScore, setScore)
 | 
 |  |  |     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ArenaItemAddCount, 0)
 | 
 |  |  |     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ArenaBattleCountDay, 0)
 | 
 |  |  |     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ArenaMatchRefreshCount, 0)
 | 
 |  |  |     Sync_ArenaInfo(curPlayer, True)
 | 
 |  |  |     return
 | 
 |  |  | 
 | 
 |  |  | def CheckArenaBattleCount(curPlayer):
 | 
 |  |  |     ## 验证是否还有对战次数
 | 
 |  |  |     todayBattleCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ArenaBattleCountDay)
 | 
 |  |  |     itemAddCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ArenaItemAddCount)
 | 
 |  |  |     dayFreeCount = IpyGameDataPY.GetFuncCfg("ArenaSet", 3)
 | 
 |  |  |     return todayBattleCount < (dayFreeCount + itemAddCount)
 | 
 |  |  | def AddArenaBattleCount(curPlayer, addCount):
 | 
 |  |  |     updCount = min(ChConfig.Def_UpperLimit_DWord, curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ArenaBattleCount) + addCount)
 | 
 |  |  |     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ArenaBattleCount, updCount)
 | 
 |  |  |     Sync_ArenaInfo(curPlayer)
 | 
 |  |  |     return
 | 
 |  |  | 
 | 
 |  |  | def GetArenaBattleCount(curPlayer):
 | 
 |  |  |     ## 获取当前可对战次数
 | 
 |  |  |     return curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ArenaBattleCount)
 | 
 |  |  | 
 | 
 |  |  | def GetArenaBattleCountMax(curPlayer):
 | 
 |  |  |     ## 最大可累计挑战次数
 | 
 |  |  |     initMax = IpyGameDataPY.GetFuncCfg("ArenaSet", 3) # 初始最大次数
 | 
 |  |  |      | 
 |  |  |     # 其他功能增加上限...
 | 
 |  |  |      | 
 |  |  |     maxCount = initMax
 | 
 |  |  |     return maxCount
 | 
 |  |  | 
 | 
 |  |  | def CheckCanGiveBattleCountItem(curPlayer, itemID):
 | 
 |  |  |     ## 可否给加挑战次数道具
 | 
 |  |  |     itemData = GameWorld.GetGameData().GetItemByTypeID(itemID)
 | 
 |  |  |     if not itemData:
 | 
 |  |  |         return False
 | 
 |  |  |     itemEff = itemData.GetEffectByIndex(0)
 | 
 |  |  |     if itemEff.GetEffectID() != ChConfig.Def_Effect_AddArenaBattleCount:
 | 
 |  |  |         GameWorld.DebugLog("非挑战券可给! itemID=%s" % itemID)
 | 
 |  |  |         return True
 | 
 |  |  |     canGive = GetArenaBattleCount(curPlayer) < GetArenaBattleCountMax(curPlayer)
 | 
 |  |  |     GameWorld.DebugLog("可否给挑战券: canGive=%s" % canGive)
 | 
 |  |  |     return canGive
 | 
 |  |  | 
 | 
 |  |  | #// B2 09 竞技场匹配玩家 #tagCMArenaMatch
 | 
 |  |  | #
 | 
 |  |  | 
 |  |  |     updOrder = retDict["updOrder"]
 | 
 |  |  |     
 | 
 |  |  |     # 扣次数
 | 
 |  |  |     todayBattleCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ArenaBattleCountDay) + 1
 | 
 |  |  |     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ArenaBattleCountDay, todayBattleCount)
 | 
 |  |  |     battleCount = max(0, curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ArenaBattleCount) - 1)
 | 
 |  |  |     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ArenaBattleCount, battleCount)
 | 
 |  |  |     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ArenaMatchRefreshCount, 0)
 | 
 |  |  |          | 
 |  |  |      | 
 |  |  |     # 更新积分
 | 
 |  |  |     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ArenaScore, updScore)
 | 
 |  |  |     highestScore = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ArenaHighestScore)
 | 
 |  |  | 
 |  |  |     clientPack = ChPyNetSendPack.tagMCArenaPlayerInfo()
 | 
 |  |  |     clientPack.IsReset = 1 if isReset else 0
 | 
 |  |  |     clientPack.Score = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ArenaScore)
 | 
 |  |  |     clientPack.BattleCountToday = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ArenaBattleCountDay)
 | 
 |  |  |     clientPack.MatchRefreshCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ArenaMatchRefreshCount)
 | 
 |  |  |     clientPack.ItemAddBattleCountToday = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ArenaItemAddCount)
 | 
 |  |  |     clientPack.BattleCount = min(255, curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ArenaBattleCount))
 | 
 |  |  |     NetPackCommon.SendFakePack(curPlayer, clientPack)
 | 
 |  |  |     return
 | 
 |  |  | 
 |