2097 【BUG】当仙盟联赛没有正常结算时,重新开服可能导致下一次联赛无法正常开启
2个文件已修改
14 ■■■■ 已修改文件
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldFamilyWar.py 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldFamilyWar.py
@@ -295,7 +295,7 @@
    # 下周分组定级
    elif stateValue == FamilyWarState_NextWeekGroupRank:
        pass
        #废弃该阶段逻辑
        #废弃该阶段逻辑,因为不再支持单次活动周期跨天,所以改为过天时触发检查一下即可
        #DoLogicFamilyWar_NextWeekGroupRank()
        
    else:
@@ -729,6 +729,10 @@
        
    return
def DoOnDay():
    DoLogicFamilyWar_NextWeekGroupRank()
    return
def DoLogicFamilyWar_NextWeekGroupRank():
    ''' 下周分组定级
        最低级别组: 不设置联赛级别, 下周最低级别组名单由其他无联赛级别仙盟总战力排行得到
@@ -737,7 +741,7 @@
    # 这里补触发一次,防止总结算的时候服务器异常没有成功结算
    #     或 次轮没有比赛导致没有结算(次轮的仙盟都解散了才可能出现,一般不可能出现,可不考虑,如果真出现了,会在周六凌晨结算)
    __DoLogicFamilyWarAllOver()
    PlayerFamily.UpdFamilyWarRank()
    #UpdFamilyWarRank()
    return
def UpdFamilyWarRank():
@@ -790,6 +794,10 @@
    warBatRecList = universalRecMgr.GetTypeList(ShareDefine.Def_UniversalGameRecType_FamilyWarBattle)
    if not warBatRecList.Count():
        GameWorld.Log("没有仙盟联赛比赛记录,不需要结算!")
        curRoundNum = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_FamilyWar_Round)
        PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_FamilyWar_Round, 0) # 重置对战轮次
        PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_FamilyWar_AllOver, 1) # 设置已经处理过总结算
        GameWorld.Log("重置轮次信息,设置已结算!curRoundNum=%s" % curRoundNum)
        return
    for i in xrange(warBatRecList.Count()):
        recData = warBatRecList.At(i)
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
@@ -172,6 +172,8 @@
    PlayerGeTui.ClearFMTGeTuiLimit()
    import PlayerBourse
    PlayerBourse.OverTimeItemsDeal()
    # 仙盟联赛
    GameWorldFamilyWar.DoOnDay()
    return
def OnDayEx(tick):