8237 【主干】【开发】七日巡礼支持不同职业不同奖励,充值支持多档配置
1个文件已修改
34 ■■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerWeekParty.py 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerWeekParty.py
@@ -184,30 +184,30 @@
            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
    for findTid in findTidList:
    ipyData = IpyGameDataPY.GetIpyGameData('WeekParty', findTid)
    if not ipyData:
        return
            continue
    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
            curAddCnt = addCnt if totalTimes == 0 else min(totalTimes - curTimes, addCnt)
            if curAddCnt <= 0:
                continue
            updTimes = curTimes + curAddCnt
    else:
        if not isCompatible and addCnt != totalTimes:
            return
                continue
        updTimes = min(addCnt, totalTimes)
    realAddCnt = updTimes - curTimes
    if realAddCnt <= 0:
        return
            continue
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_WeekPartyCurTimes % (dayIndex, findTid), updTimes, ChConfig.Def_PDictType_WeekParty)
    #加积分
    singleTimes = ipyData.GetSingleTimes()
@@ -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