From bb652eeae4e39ee66f342975a2804ae305f0f969 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 11 十二月 2020 10:26:41 +0800
Subject: [PATCH] 4869 【主干】【长尾】【BT】七日巡礼重置逻辑优化;运营活动所处天索引逻辑优化;

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFeastWeekParty.py |  129 +++++++++++--------------
 ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py            |    3 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerWeekParty.py      |  132 +++++++++++--------------
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py                    |    6 
 4 files changed, 118 insertions(+), 152 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py
index 5608c72..e75d064 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py
@@ -390,12 +390,11 @@
                         activityInfoDict[ShareDefine.ActKey_WorldLVList] = GameWorldAverageLv.GetWorldLVListByTime(startDayDate, (endDayDate - startDayDate).days)
                     
                     if startDayDate <= curDateTime < endDayDate:
-                        dayIndex = 0
+                        dayIndex = (curDateTime - startDayDate).days
                         actIDDateTime = startDayDate
                         isDayRest = 0 if not hasattr(ipyData, "GetIsDayReset") else ipyData.GetIsDayReset()
                         # 按时段开的默认每天重置
                         if isDayRest or (startHMStrList and endHMStrList):
-                            dayIndex = (curDateTime - startDayDate).days
                             actIDDateTime += datetime.timedelta(days=dayIndex)
                         actID = int(time.mktime(actIDDateTime.timetuple())) # 默认取开始时间点的time值作为活动ID
                         activityInfoDict[ShareDefine.ActKey_DayIndex] = dayIndex
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index 575fbd4..75aaa36 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -3785,7 +3785,8 @@
 Def_PDict_FBRealHelpCount = "FBRealHelpCount_%s" #副本真实助战次数,仅针对真实进去打的副本,参数mapID
 
 #周狂欢
-Def_PDict_WeekPartyID = "WeekPartyID"  # 玩家身上的活动ID,唯一标识,取活动开始日期time值
+Def_PDict_WeekPartyActID = "WeekPartyActID"  # 玩家身上的活动ID,唯一标识,取活动开始日期time值
+Def_PDict_WeekPartyID = "WeekPartyID"  # 玩家身上的活动ID,配置ID,用于补发上次活动用
 Def_PDict_WeekPartyCurTimes = "WeekPartyCurTimes_%s_%s" #当前完成次数 参数(第X天,模板ID)
 Def_PDict_WeekPartyGotTimes = "WeekPartyGotTimes_%s_%s" #当前已领次数 参数(第X天,模板ID)
 Def_PDict_WeekPartyAwardRecord = "WeekPartyAwardRecord_%s" #积分领奖记录  参数(第X天)
@@ -5415,9 +5416,6 @@
 Def_WPAct_FamilyBoss,  #仙盟Boss 28
 Def_WPAct_FairyDomain,  #缥缈仙域 29    
 ) = range(1, 29+1)
-
-#可提前完成的周狂欢活动
-AheadFinishWPActList = [Def_WPAct_Horse, Def_WPAct_Pet, Def_WPAct_Dogz, Def_WPAct_Rune]
 
 #登录奖励活动定义
 LoginAwardActIDList = (
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFeastWeekParty.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFeastWeekParty.py
index 58b713d..68531db 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFeastWeekParty.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFeastWeekParty.py
@@ -41,6 +41,7 @@
         # 活动中同步活动信息
         SyncFeastWeekPartyInfo(curPlayer)
         if actCostRebateInfo.get(ShareDefine.ActKey_State):
+            AddFeastWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Login, 1, False, False, False)
             SyncFeastWeekPartyPlayerInfo(curPlayer)
     return
 
@@ -60,36 +61,32 @@
     playerID = curPlayer.GetPlayerID()
     
     actFeastWeekPartyInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_FeastWeekParty, {})
-    #FeastWeekPartyID = actFeastWeekPartyInfo.get(ShareDefine.ActKey_ID, 0)
     state = actFeastWeekPartyInfo.get(ShareDefine.ActKey_State, 0)
+    actID = actFeastWeekPartyInfo.get(ShareDefine.ActKey_ID, 0)
     cfgID = actFeastWeekPartyInfo.get(ShareDefine.ActKey_CfgID, 0)
-    passlv = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_TrialTower_PassLV)
-    if state:
-        #每天都要触发
-        AddFeastWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Tower, passlv, False, True, False)
-        AddFeastWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Login, 1, False, False)
-        AddFeastWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Stone, Operate_EquipStone.GetTotalStoneLV(curPlayer), False, True, False)
-        AddFeastWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_GodWeapon, PlayerGodWeapon.GetGodWeaponTotalLV(curPlayer), False, True, False)
-        SyncFeastWeekPartyPlayerInfo(curPlayer)
-    playerFeastWeekPartyID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FeastWeekPartyID, 0, ChConfig.Def_PDictType_FeastWeekParty)  # 玩家身上的活动ID
+    playerActID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_WeekPartyActID, 0, ChConfig.Def_PDictType_FeastWeekParty)  # 玩家身上的活动ID
+    playerFeastWeekPartyID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FeastWeekPartyID, 0, ChConfig.Def_PDictType_FeastWeekParty)  # 玩家身上的活动配置ID
     # 活动ID 相同的话不处理
-    if cfgID == playerFeastWeekPartyID:
-        #GameWorld.DebugLog("节日巡礼活动ID不变,不处理!", curPlayer.GetPlayerID())
+    if actID == playerActID:
+        GameWorld.DebugLog("节日巡礼活动ID不变,不处理!playerActID=%s" % playerActID, curPlayer.GetPlayerID())
+        if state:
+            CheckFeastWeekPartyActionCnt(curPlayer, True)
         return
-    CheckFeastWeekPartyActionCnt(curPlayer)
     # 未领取的奖励邮件发放
     if playerFeastWeekPartyID:
         __SendFeastWeekPartyMail(curPlayer, playerFeastWeekPartyID)
-    
-    if not cfgID:
-        GameWorld.DebugLog('    节日巡礼活动重置!')
-        curPlayer.ClearNomalDict(ChConfig.Def_PDictType_FeastWeekParty)
-    
-    GameWorld.DebugLog("节日巡礼变更! state=%s,cfgID=%s,playerFeastWeekPartyID=%s" % (state, cfgID, playerFeastWeekPartyID), playerID)
-    
-    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FeastWeekPartyID, cfgID, ChConfig.Def_PDictType_FeastWeekParty)
         
-    SyncFeastWeekPartyInfo(curPlayer)
+    GameWorld.DebugLog('    节日巡礼活动重置!')
+    curPlayer.ClearNomalDict(ChConfig.Def_PDictType_FeastWeekParty)
+    
+    GameWorld.DebugLog("节日巡礼变更! state=%s,actID=%s,cfgID=%s,playerFeastWeekPartyID=%s" % (state, actID, cfgID, playerFeastWeekPartyID), playerID)
+    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_WeekPartyActID, actID, ChConfig.Def_PDictType_FeastWeekParty)
+    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FeastWeekPartyID, cfgID, ChConfig.Def_PDictType_FeastWeekParty)
+    if state:
+        CheckFeastWeekPartyActionCnt(curPlayer,  False)
+        SyncFeastWeekPartyInfo(curPlayer)
+        SyncFeastWeekPartyPlayerInfo(curPlayer)
+        
     return True
 
 
@@ -149,8 +146,9 @@
     
     if not cfgID:
         return
-    if not state and actionID not in ChConfig.AheadFinishWPActList:
+    if not state:
         return
+    
     actBossIpyData = IpyGameDataPY.GetIpyGameData("ActFeastWeekParty", cfgID)
     if not actBossIpyData:
         return
@@ -158,27 +156,6 @@
     dayIndex = actFeastWeekPartyInfo.get(ShareDefine.ActKey_DayIndex, 0)
     if dayIndex >= len(templateIDList):
         return
-    if actionID in ChConfig.AheadFinishWPActList:
-        isFind = False
-        for day, dayTidList in enumerate(templateIDList[dayIndex:]):
-            findTid = 0
-            for tid in dayTidList:
-                if tid / 100 == actionID:
-                    findTid = tid
-                    break
-            if not findTid:
-                continue
-            ipyData = IpyGameDataPY.GetIpyGameData('FeastWeekParty', findTid)
-            if not ipyData:
-                continue
-            totalTimes = ipyData.GetTotalTimes()
-            if addCnt != totalTimes:
-                continue
-            dayIndex = day + dayIndex
-            isFind = True
-            break
-        if not isFind:
-            return
     
     dayTidList = templateIDList[dayIndex]
     findTid = 0
@@ -217,35 +194,43 @@
         SyncFeastWeekPartyPlayerInfo(curPlayer, dayIndex, findTid)
     return True
 
-
-def CheckFeastWeekPartyActionCnt(curPlayer):
+def CheckFeastWeekPartyActionCnt(curPlayer, isSync):
+    ## 同步活动状态时需要触发的
+    
+    # 灵宠激活
+    petDataPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptPet)
+    for petDataIndex in range(petDataPack.GetCount()):
+        petItem = petDataPack.GetAt(petDataIndex)
+        if petItem.IsEmpty():
+            continue
+        petNPCID = petItem.GetUserAttr(ShareDefine.Def_IudetPet_NPCID)
+        AddFeastWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Pet, petNPCID, False, isSync=isSync)
+        
+    # 出战神兽
     ipyDataMgr = IpyGameDataPY.IPY_Data()
-    for actionType in ChConfig.AheadFinishWPActList:
-        if actionType == ChConfig.Def_WPAct_Pet:
-            petDataPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptPet)
-            for petDataIndex in range(petDataPack.GetCount()):
-                petItem = petDataPack.GetAt(petDataIndex)
-                if petItem.IsEmpty():
-                    continue
-                petNPCID = petItem.GetUserAttr(ShareDefine.Def_IudetPet_NPCID)
-                AddFeastWeekPartyActionCnt(curPlayer, actionType, petNPCID, False)
-        elif actionType == ChConfig.Def_WPAct_Dogz:
-            for i in xrange(ipyDataMgr.GetDogzCount()):
-                ipyData = ipyDataMgr.GetDogzByIndex(i)
-                if GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_PDict_DogzFightState, i):
-                    AddFeastWeekPartyActionCnt(curPlayer, actionType, ipyData.GetDogzID(), False)
-        elif actionType == ChConfig.Def_WPAct_Rune:
-            runeHoleCnt = IpyGameDataPY.GetFuncCfg("RuneUnlock", 4)
-            for holeNum in xrange(1, runeHoleCnt + 1):
-                runeData = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_Rune_Data % holeNum, 0)
-                if not runeData:
-                    continue
-                runeItemID = ItemControler.GetRuneItemID(runeData)
-                itemData = GameWorld.GetGameData().GetItemByTypeID(runeItemID)
-                if not itemData:
-                    continue
-                itemColor = itemData.GetItemColor()
-                AddFeastWeekPartyActionCnt(curPlayer, actionType, itemColor, False)
+    for i in xrange(ipyDataMgr.GetDogzCount()):
+        ipyData = ipyDataMgr.GetDogzByIndex(i)
+        if GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_PDict_DogzFightState, i):
+            AddFeastWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Dogz, ipyData.GetDogzID(), False, isSync=isSync)
+    
+    # 穿戴某品质符印
+    runeHoleCnt = IpyGameDataPY.GetFuncCfg("RuneUnlock", 4)
+    for holeNum in xrange(1, runeHoleCnt + 1):
+        runeData = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_Rune_Data % holeNum, 0)
+        if not runeData:
+            continue
+        runeItemID = ItemControler.GetRuneItemID(runeData)
+        itemData = GameWorld.GetGameData().GetItemByTypeID(runeItemID)
+        if not itemData:
+            continue
+        itemColor = itemData.GetItemColor()
+        AddFeastWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Rune, itemColor, False, isSync=isSync)
+        
+    AddFeastWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Login, 1, False, False, isSync)
+    passlv = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_TrialTower_PassLV)
+    AddFeastWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Tower, passlv, False, True, isSync)
+    AddFeastWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Stone, Operate_EquipStone.GetTotalStoneLV(curPlayer), False, True, isSync)
+    AddFeastWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_GodWeapon, PlayerGodWeapon.GetGodWeaponTotalLV(curPlayer), False, True, isSync)
     return
 
 def GetFeastWeekPartyActionAward(curPlayer, day, templateID):
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerWeekParty.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerWeekParty.py
index b18350d..cdb60de 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerWeekParty.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerWeekParty.py
@@ -42,6 +42,7 @@
         # 活动中同步活动信息
         SyncWeekPartyInfo(curPlayer)
         if actCostRebateInfo.get(ShareDefine.ActKey_State):
+            AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Login, 1, False, False, False)
             SyncWeekPartyPlayerInfo(curPlayer)
     return
 
@@ -61,36 +62,32 @@
     playerID = curPlayer.GetPlayerID()
     
     actWeekPartyInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_WeekParty, {})
-    #WeekPartyID = actWeekPartyInfo.get(ShareDefine.ActKey_ID, 0)
     state = actWeekPartyInfo.get(ShareDefine.ActKey_State, 0)
+    actID = actWeekPartyInfo.get(ShareDefine.ActKey_ID, 0)
     cfgID = actWeekPartyInfo.get(ShareDefine.ActKey_CfgID, 0)
-    passlv = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_TrialTower_PassLV)
-    if state:
-        #每天都要触发
-        AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Tower, passlv, False, True, False)
-        AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Login, 1, False, False)
-        AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Stone, Operate_EquipStone.GetTotalStoneLV(curPlayer), False, True, False)
-        AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_GodWeapon, PlayerGodWeapon.GetGodWeaponTotalLV(curPlayer), False, True, False)
-        SyncWeekPartyPlayerInfo(curPlayer)
-    playerWeekPartyID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_WeekPartyID, 0, ChConfig.Def_PDictType_WeekParty)  # 玩家身上的活动ID
+    playerActID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_WeekPartyActID, 0, ChConfig.Def_PDictType_WeekParty)  # 玩家身上的活动ID
+    playerWeekPartyID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_WeekPartyID, 0, ChConfig.Def_PDictType_WeekParty)  # 玩家身上的活动配置ID
     # 活动ID 相同的话不处理
-    if cfgID == playerWeekPartyID:
-        #GameWorld.DebugLog("周狂欢活动ID不变,不处理!", curPlayer.GetPlayerID())
+    if actID == playerActID:
+        GameWorld.DebugLog("周狂欢活动ID不变,不处理!playerActID=%s" % playerActID, curPlayer.GetPlayerID())
+        if state:
+            CheckWeekPartyActionCnt(curPlayer, True)
         return
-    CheckWeekPartyActionCnt(curPlayer)
     # 未领取的奖励邮件发放
     if playerWeekPartyID:
         __SendWeekPartyMail(curPlayer, playerWeekPartyID)
-    
-    if not cfgID:
-        GameWorld.DebugLog('    周狂欢活动重置!')
-        curPlayer.ClearNomalDict(ChConfig.Def_PDictType_WeekParty)
-    
-    GameWorld.DebugLog("周狂欢变更! state=%s,cfgID=%s,playerWeekPartyID=%s" % (state, cfgID, playerWeekPartyID), playerID)
-    
-    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_WeekPartyID, cfgID, ChConfig.Def_PDictType_WeekParty)
         
-    SyncWeekPartyInfo(curPlayer)
+    GameWorld.DebugLog('周狂欢活动重置!')
+    curPlayer.ClearNomalDict(ChConfig.Def_PDictType_WeekParty)
+    
+    GameWorld.DebugLog("周狂欢变更! state=%s,actID=%s,cfgID=%s,playerWeekPartyID=%s" % (state, actID, cfgID, playerWeekPartyID), playerID)
+    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_WeekPartyActID, actID, ChConfig.Def_PDictType_WeekParty)
+    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_WeekPartyID, cfgID, ChConfig.Def_PDictType_WeekParty)
+    if state:
+        CheckWeekPartyActionCnt(curPlayer,  False)
+        SyncWeekPartyInfo(curPlayer)
+        SyncWeekPartyPlayerInfo(curPlayer)
+        
     return True
 
 
@@ -151,7 +148,7 @@
     
     if not cfgID:
         return
-    if not state and actionID not in ChConfig.AheadFinishWPActList:
+    if not state:
         return
     
     actBossIpyData = IpyGameDataPY.GetIpyGameData("ActWeekParty", cfgID)
@@ -161,27 +158,6 @@
     dayIndex = actWeekPartyInfo.get(ShareDefine.ActKey_DayIndex, 0)
     if dayIndex >= len(templateIDList):
         return
-    if actionID in ChConfig.AheadFinishWPActList:
-        isFind = False
-        for day, dayTidList in enumerate(templateIDList[dayIndex:]):
-            findTid = 0
-            for tid in dayTidList:
-                if tid / 100 == actionID:
-                    findTid = tid
-                    break
-            if not findTid:
-                continue
-            ipyData = IpyGameDataPY.GetIpyGameData('WeekParty', findTid)
-            if not ipyData:
-                continue
-            totalTimes = ipyData.GetTotalTimes()
-            if addCnt != totalTimes:
-                continue
-            dayIndex = day + dayIndex
-            isFind = True
-            break
-        if not isFind:
-            return
     
     dayTidList = templateIDList[dayIndex]
     findTidList = []
@@ -211,7 +187,7 @@
         PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_WeekPartyCurTimes % (dayIndex, findTid), updTimes, ChConfig.Def_PDictType_WeekParty)
         #加积分
         singleTimes = ipyData.GetSingleTimes()
-        addPoint = (curTimes % singleTimes + realAddCnt)/singleTimes* ipyData.GetPoint()
+        addPoint = (curTimes % singleTimes + realAddCnt) / singleTimes * ipyData.GetPoint()
         curPoint = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_WeekPartyPoint % dayIndex, 0, ChConfig.Def_PDictType_WeekParty)
         updPoint = curPoint + addPoint
         PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_WeekPartyPoint % dayIndex, updPoint, ChConfig.Def_PDictType_WeekParty)
@@ -220,35 +196,43 @@
             SyncWeekPartyPlayerInfo(curPlayer, dayIndex, findTid)
     return True
 
-
-def CheckWeekPartyActionCnt(curPlayer):
+def CheckWeekPartyActionCnt(curPlayer, isSync):
+    ## 同步活动状态时需要触发的
+    
+    # 灵宠激活
+    petDataPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptPet)
+    for petDataIndex in range(petDataPack.GetCount()):
+        petItem = petDataPack.GetAt(petDataIndex)
+        if petItem.IsEmpty():
+            continue
+        petNPCID = petItem.GetUserAttr(ShareDefine.Def_IudetPet_NPCID)
+        AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Pet, petNPCID, False, isSync=isSync)
+        
+    # 出战神兽
     ipyDataMgr = IpyGameDataPY.IPY_Data()
-    for actionType in ChConfig.AheadFinishWPActList:
-        if actionType == ChConfig.Def_WPAct_Pet:
-            petDataPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptPet)
-            for petDataIndex in range(petDataPack.GetCount()):
-                petItem = petDataPack.GetAt(petDataIndex)
-                if petItem.IsEmpty():
-                    continue
-                petNPCID = petItem.GetUserAttr(ShareDefine.Def_IudetPet_NPCID)
-                AddWeekPartyActionCnt(curPlayer, actionType, petNPCID, False)
-        elif actionType == ChConfig.Def_WPAct_Dogz:
-            for i in xrange(ipyDataMgr.GetDogzCount()):
-                ipyData = ipyDataMgr.GetDogzByIndex(i)
-                if GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_PDict_DogzFightState, i):
-                    AddWeekPartyActionCnt(curPlayer, actionType, ipyData.GetDogzID(), False)
-        elif actionType == ChConfig.Def_WPAct_Rune:
-            runeHoleCnt = IpyGameDataPY.GetFuncCfg("RuneUnlock", 4)
-            for holeNum in xrange(1, runeHoleCnt + 1):
-                runeData = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_Rune_Data % holeNum, 0)
-                if not runeData:
-                    continue
-                runeItemID = ItemControler.GetRuneItemID(runeData)
-                itemData = GameWorld.GetGameData().GetItemByTypeID(runeItemID)
-                if not itemData:
-                    continue
-                itemColor = itemData.GetItemColor()
-                AddWeekPartyActionCnt(curPlayer, actionType, itemColor, False)
+    for i in xrange(ipyDataMgr.GetDogzCount()):
+        ipyData = ipyDataMgr.GetDogzByIndex(i)
+        if GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_PDict_DogzFightState, i):
+            AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Dogz, ipyData.GetDogzID(), False, isSync=isSync)
+            
+    # 穿戴某品质符印
+    runeHoleCnt = IpyGameDataPY.GetFuncCfg("RuneUnlock", 4)
+    for holeNum in xrange(1, runeHoleCnt + 1):
+        runeData = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_Rune_Data % holeNum, 0)
+        if not runeData:
+            continue
+        runeItemID = ItemControler.GetRuneItemID(runeData)
+        itemData = GameWorld.GetGameData().GetItemByTypeID(runeItemID)
+        if not itemData:
+            continue
+        itemColor = itemData.GetItemColor()
+        AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Rune, itemColor, False, isSync=isSync)
+        
+    AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Login, 1, False, False, isSync)
+    passlv = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_TrialTower_PassLV)
+    AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Tower, passlv, False, True, isSync)
+    AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Stone, Operate_EquipStone.GetTotalStoneLV(curPlayer), False, True, isSync)
+    AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_GodWeapon, PlayerGodWeapon.GetGodWeaponTotalLV(curPlayer), False, True, isSync)
     return
 
 def GetWeekPartyActionAward(curPlayer, day, templateID):
@@ -337,7 +321,7 @@
         return rewardItemInfo.get(curPlayer.GetJob(), [])
     return rewardItemInfo
 
-def SyncWeekPartyPlayerInfo(curPlayer, day=-1, templateID=-1):
+def SyncWeekPartyPlayerInfo(curPlayer, day= -1, templateID= -1):
     #通知当前次数、已领次数 
     actWeekPartyInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_WeekParty, {})
     state = actWeekPartyInfo.get(ShareDefine.ActKey_State, 0)

--
Gitblit v1.8.0