hxp
2025-06-30 388823edfe6308cba6f76ca6dc4f20022c5cb2be
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBattlefield.py
@@ -253,6 +253,8 @@
                
            billboardObj.ClearData()
            
    # 清空队伍
    PlayerFuncTeam.DelTeamByFunc(ChConfig.Def_FBMapID_CrossBattlefield)
    return
def GetCrossBattlefieldState():
@@ -472,9 +474,9 @@
                    GameWorld.Log("    无召集的场次不开分区战场! zoneID=%s" % (zoneID))
                 
    # 关闭
    if not battlefieldState and beforeState != battlefieldState:
        # 活动结束清空队伍
        PlayerFuncTeam.DelTeamByFunc(ChConfig.Def_FBMapID_CrossBattlefield)
    #if not battlefieldState and beforeState != battlefieldState:
    #    # 活动结束清空队伍
    #    PlayerFuncTeam.DelTeamByFunc(ChConfig.Def_FBMapID_CrossBattlefield)
        
    # 同步子服务器
    dataMsg = {"battlefieldState":battlefieldState}
@@ -561,8 +563,9 @@
        if passSeconds > closeSeconds:
            GameWorld.DebugLog("迟到了! passSeconds=%s > %s" % (passSeconds, closeSeconds), playerID)
            isBelate = True
            #去除新队员进入不受时间限制设定
            for _, copyMapObj in PyGameData.g_crossDynamicLineCopyMapInfo.items():
                if copyMapObj.IsMustCopyMapPlayer(playerID):
                if copyMapObj.IsMustCopyMapPlayer(playerID, False):
                    isBelate = False
                    GameWorld.DebugLog("已进入的重复进入不限制时间!  playerID=%s" % playerID)
                    break
@@ -652,6 +655,8 @@
    openMinute = msgData["openMinute"]
    faction = msgData["faction"]
    serverOnly = msgData.get("serverOnly", 0)
    face = msgData.get("face", 0)
    facePic = msgData.get("facePic", 0)
    
    hmNum = GetHMNum(openHour, openMinute)
    
@@ -681,7 +686,7 @@
        type2, value1, value2 = job, realmLV, 0
        cmpValue = buyOpenCountWeek + 1
        if cmpValue >= billboardCallCountLimit:
            CrossBillboard.UpdCrossBillboard(ShareDefine.Def_CBT_BattlefieldWCall, groupValue1, dataID, name1, name2, type2, value1, value2, cmpValue)
            CrossBillboard.UpdCrossBillboard(ShareDefine.Def_CBT_BattlefieldWCall, groupValue1, dataID, name1, name2, type2, value1, value2, cmpValue, value3=face, value4=facePic)
        
        # 通知子服
        serverGroupIDList = [serverGroupID]
@@ -749,7 +754,7 @@
    type2, value1, value2 = job, realmLV, 0
    cmpValue = buyOpenCountWeek + 1
    if cmpValue >= billboardCallCountLimit:
        CrossBillboard.UpdCrossBillboard(ShareDefine.Def_CBT_BattlefieldWCall, groupValue1, dataID, name1, name2, type2, value1, value2, cmpValue)
        CrossBillboard.UpdCrossBillboard(ShareDefine.Def_CBT_BattlefieldWCall, groupValue1, dataID, name1, name2, type2, value1, value2, cmpValue, value3=face, value4=facePic)
        
    for otherBuyPlayerID, otherRec in buyPlayerInfo.items():
        if otherBuyPlayerID == playerID:
@@ -902,7 +907,7 @@
    syncPlayerDataInfo = {}
    winnerPlayerIDList, loserPlayerIDList = [], []
    for playerInfo in battlePlayerList:
        playerID, job, realmLV, name, \
        playerID, job, face, facePic, realmLV, name, \
            isWinner, faction, rank, score, highScoreToday, highScoreWeekTotal, enterCountWeek, teamID, \
            isCallOpen, isCalled, killCnt, ckillCntInfo, killBossCnt, killScoreKing, killGuardCnt, auraScore, superItemAwardCnt, \
            factionBuffCollCnt, personBuffCollCnt, crystalCollCnt, wallCollCnt \
@@ -932,14 +937,14 @@
        enterCountWeek += 1
        cmpValue = enterCountWeek
        if cmpValue >= billboardEnterCountLimit:
            CrossBillboard.UpdCrossBillboard(ShareDefine.Def_CBT_BattlefieldWJoin, groupValue1, dataID, name1, name2, type2, value1, value2, cmpValue)
            CrossBillboard.UpdCrossBillboard(ShareDefine.Def_CBT_BattlefieldWJoin, groupValue1, dataID, name1, name2, type2, value1, value2, cmpValue, value3=face, value4=facePic)
            
        # 更新周高分榜单
        if score > highScoreToday:
            highScoreWeekTotal += (score - highScoreToday)
            highScoreToday = score
            cmpValue = highScoreWeekTotal
            CrossBillboard.UpdCrossBillboard(ShareDefine.Def_CBT_BattlefieldWScore, groupValue1, dataID, name1, name2, type2, value1, value2, cmpValue)
            CrossBillboard.UpdCrossBillboard(ShareDefine.Def_CBT_BattlefieldWScore, groupValue1, dataID, name1, name2, type2, value1, value2, cmpValue, value3=face, value4=facePic)
            
        GameWorld.Log("    战场阵营玩家: faction=%s,isWinner=%s,rank=%s,playerID=%s,score=%s,highScoreToday=%s,highScoreWeekTotal=%s,enterCountWeek=%s,teamID=%s,isCallOpen=%s,isCalled=%s" 
                      % (faction, isWinner, rank, playerID, score, highScoreToday, highScoreWeekTotal, enterCountWeek, teamID, isCallOpen, isCalled), fbPropertyID)