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