From 8ed75f7d47a7624d8b0edde77a4f1106743f1d5c Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 16 十月 2018 11:22:58 +0800
Subject: [PATCH] 2097 【BUG】当仙盟联赛没有正常结算时,重新开服可能导致下一次联赛无法正常开启

---
 ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldFamilyWar.py |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldFamilyWar.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldFamilyWar.py
index d5a9976..794ca6f 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldFamilyWar.py
+++ b/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)

--
Gitblit v1.8.0