From bd5edf598efb1ace2ab4ad66809aacd7df60347a Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期六, 17 八月 2019 16:14:12 +0800
Subject: [PATCH] 8237 【主干】【开发】七日巡礼支持不同职业不同奖励,充值支持多档配置

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerWeekParty.py |   74 ++++++++++++++++++++----------------
 1 files changed, 41 insertions(+), 33 deletions(-)

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 be64102..fcddb73 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerWeekParty.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerWeekParty.py
@@ -184,40 +184,40 @@
             return
     
     dayTidList = templateIDList[dayIndex]
-    findTid = 0
+    findTidList = []
     for tid in dayTidList:
         if tid / 100 == actionID:
-            findTid = tid
-            break
-    if not findTid:
+            findTidList.append(tid)
+    if not findTidList:
         return
-    ipyData = IpyGameDataPY.GetIpyGameData('WeekParty', findTid)
-    if not ipyData:
-        return
-    totalTimes = ipyData.GetTotalTimes()
-    curTimes = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_WeekPartyCurTimes % (dayIndex, findTid), 0, ChConfig.Def_PDictType_WeekParty)
-    if isAdd:
-        addCnt = addCnt if totalTimes == 0 else min(totalTimes - curTimes, addCnt)
-        if addCnt <= 0:
-            return
-        updTimes = curTimes + addCnt
-    else:
-        if not isCompatible and addCnt != totalTimes:
-            return
-        updTimes = min(addCnt, totalTimes)
-    realAddCnt = updTimes - curTimes
-    if realAddCnt <= 0:
-        return
-    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_WeekPartyCurTimes % (dayIndex, findTid), updTimes, ChConfig.Def_PDictType_WeekParty)
-    #加积分
-    singleTimes = ipyData.GetSingleTimes()
-    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)
-    GameWorld.DebugLog('   增加周狂欢相关活动完成次数 dayIndex=%s, findTid=%s, realAddCnt=%s,addPoint=%s' % (dayIndex, findTid, realAddCnt, addPoint))
-    if isSync:
-        SyncWeekPartyPlayerInfo(curPlayer, dayIndex, findTid)
+    for findTid in findTidList:
+        ipyData = IpyGameDataPY.GetIpyGameData('WeekParty', findTid)
+        if not ipyData:
+            continue
+        totalTimes = ipyData.GetTotalTimes()
+        curTimes = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_WeekPartyCurTimes % (dayIndex, findTid), 0, ChConfig.Def_PDictType_WeekParty)
+        if isAdd:
+            curAddCnt = addCnt if totalTimes == 0 else min(totalTimes - curTimes, addCnt)
+            if curAddCnt <= 0:
+                continue
+            updTimes = curTimes + curAddCnt
+        else:
+            if not isCompatible and addCnt != totalTimes:
+                continue
+            updTimes = min(addCnt, totalTimes)
+        realAddCnt = updTimes - curTimes
+        if realAddCnt <= 0:
+            continue
+        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_WeekPartyCurTimes % (dayIndex, findTid), updTimes, ChConfig.Def_PDictType_WeekParty)
+        #加积分
+        singleTimes = ipyData.GetSingleTimes()
+        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)
+        GameWorld.DebugLog('   增加周狂欢相关活动完成次数 dayIndex=%s, findTid=%s, realAddCnt=%s,addPoint=%s' % (dayIndex, findTid, realAddCnt, addPoint))
+        if isSync:
+            SyncWeekPartyPlayerInfo(curPlayer, dayIndex, findTid)
     return True
 
 
@@ -329,13 +329,20 @@
 
 def __GetAwardItem(curPlayer, ipyData, times=1):
     awardDict = {}
-    for itemID, itemCnt, isbind in ipyData.GetReward():
+    awardItemList = __GetAwardItemListByJob(curPlayer, ipyData)
+    for itemID, itemCnt, isbind in awardItemList:
         if not itemID or not itemCnt:
             continue
         awardDict[itemID] = awardDict.get(itemID, 0) + itemCnt * times
         
     return awardDict
 
+def __GetAwardItemListByJob(curPlayer, ipyData):
+    ## 根据职业获取对应奖励
+    rewardItemInfo = ipyData.GetReward()
+    if isinstance(rewardItemInfo, dict):
+        return rewardItemInfo.get(curPlayer.GetJob(), [])
+    return rewardItemInfo
 
 def SyncWeekPartyPlayerInfo(curPlayer, day=-1, templateID=-1):
     #通知当前次数、已领次数 
@@ -439,7 +446,8 @@
         tInfo.SingleTimes = ipyData.GetSingleTimes()
         tInfo.Point = ipyData.GetPoint()
         tInfo.ItemInfo = []
-        for itemID, itemCnt, isBind in ipyData.GetReward():
+        awardItemList = __GetAwardItemListByJob(curPlayer, ipyData)
+        for itemID, itemCnt, isBind in awardItemList:
             awardItem = ChPyNetSendPack.tagMCWeekPartyItem()
             awardItem.ItemID = itemID
             awardItem.ItemCnt = itemCnt

--
Gitblit v1.8.0