From d9f13c5e9a02f31cad2f58357acd3140809e88c1 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期二, 11 九月 2018 19:57:27 +0800
Subject: [PATCH] fix:3477【后端】【1.0.15】【1.1.0】娲皇遗迹新增Vip特权:副本购买次数

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

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldFamilyWar.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldFamilyWar.py
index 3bfd634..d5a9976 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldFamilyWar.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldFamilyWar.py
@@ -223,7 +223,7 @@
         
     if familyWarRank:
         GameWorld.Log("解散仙盟,触发更新仙盟联赛排名: delFamilyID=%s,familyWarRank=%s" % (familyID, familyWarRank))
-        PlayerFamily.UpdFamilyWarRank()
+        UpdFamilyWarRank()
         
     # 补发未分配的连胜奖励
     AllotWinRewardBySystem(GetFamilyWarChampionRecData(), True)
@@ -294,7 +294,9 @@
     
     # 下周分组定级
     elif stateValue == FamilyWarState_NextWeekGroupRank:
-        DoLogicFamilyWar_NextWeekGroupRank()
+        pass
+        #废弃该阶段逻辑
+        #DoLogicFamilyWar_NextWeekGroupRank()
         
     else:
         GameWorld.ErrLog("不存在该仙盟联赛状态!stateValue=%s" % stateValue)
@@ -738,6 +740,34 @@
     PlayerFamily.UpdFamilyWarRank()
     return
 
+def UpdFamilyWarRank():
+    '''更新仙盟联赛排名
+    注意:该逻辑在仙盟联赛周期中不可执行,仅在下周分组定级状态下可更新,由程序控制,在活动结束后结算调用
+    仙盟联赛新一周期开始时、仙盟解散时 会触发该逻辑
+    '''
+    #gameWorld = GameWorld.GetGameWorld()
+    #state = gameWorld.GetDictByKey(ShareDefine.Def_Notify_WorldKey_FBFuncState % ChConfig.Def_FBMapID_FamilyWar)
+    #if state != GameWorldFamilyWar.FamilyWarState_NextWeekGroupRank:
+    #    GameWorld.DebugLog("非下周分组定级阶段不可更新仙盟联赛排名!")
+    #    return
+    
+    GameWorld.Log("=== 更新仙盟联赛排名 ===")
+    
+    familyMgr = GameWorld.GetFamilyManager()
+    sortFamilyIDList = PlayerFamily.GetSortFamilyIDList()
+    for rank, familyID in enumerate(sortFamilyIDList, 1):
+        family = familyMgr.FindFamily(familyID)
+        if not family:
+            continue
+        curRank = PlayerFamily.GetFamilyWarRank(family)
+        if not curRank:
+            break
+        if curRank != rank:
+            PlayerFamily.SetFamilyWarRank(family, rank)
+            GameWorld.Log("    更新仙盟联赛仙盟排名: familyID=%s,curRank=%s,updRank=%s" % (family.GetID(), curRank, rank))
+            
+    return
+
 def __DoLogicFamilyWarAllOver():
     ''' 仙盟赛全部比赛结束后逻辑
         非最高级别组: 第一名晋级
@@ -864,6 +894,8 @@
     
     PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_FamilyWar_Round, 0) # 重置对战轮次
     PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_FamilyWar_AllOver, 1) # 设置已经处理过总结算
+    
+    UpdFamilyWarRank() # 改为比赛结束后默认更新联赛排名
     return
 
 def UpdFamilyWarChampion(championFamilyID):

--
Gitblit v1.8.0