| | |
| | | % (highestLineID, passLayerMax, quickStartLayer, todayLineID), playerID)
|
| | |
|
| | | # 快速过关奖励按历史最大过关层级领取
|
| | | awardItemDict = {}
|
| | | awardIpyData = None
|
| | | ipyDataMgr = IpyGameDataPY.IPY_Data()
|
| | | for index in range(ipyDataMgr.GetFBDJGQuickCount()):
|
| | | quickIpyData = ipyDataMgr.GetFBDJGQuickByIndex(index)
|
| | | needLayer = quickIpyData.GetNeedLayer()
|
| | | if needLayer > passLayerMax:
|
| | | break
|
| | | quickItemList = quickIpyData.GetQuickAwardList()
|
| | | for itemInfo in quickItemList:
|
| | | itemID, itemCount = itemInfo[:2]
|
| | | awardItemDict[itemID] = awardItemDict.get(itemID, 0) + itemCount
|
| | | awardItemList = [[itemID, itemCount] for itemID, itemCount in awardItemDict.items()]
|
| | | awardIpyData = quickIpyData
|
| | | if not awardIpyData:
|
| | | return
|
| | | awardItemList = awardIpyData.GetQuickAwardList()
|
| | |
|
| | | # 设置起始层关卡
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_DJGLineID, todayLineID)
|
| | |
| | | GameWorld.DebugLog("执行一键选择加成效果: unSelectCnt=%s,effHoleCnt=%s,selectSetAttrIDList=%s" % (unSelectCnt, effHoleCnt, selectSetAttrIDList))
|
| | |
|
| | | randEffCnt = IpyGameDataPY.GetFuncCfg("DingjungeEff", 3)
|
| | | for _ in range(unSelectCnt):
|
| | | for _ in range(unSelectCnt + 1): # 多执行一次+1是因为可能存在未选择的视为1次,内层有验证剩余未选择数,所以多执行一次没关系
|
| | | effIDList = __randSelectEff(curPlayer, randEffCnt)
|
| | | if not effIDList:
|
| | | break
|
| | |
| | |
|
| | | def __randSelectEff(curPlayer, randEffCnt=0, isReset=False):
|
| | | ## 随机生成待选择加成效果
|
| | | unSelectCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_DJGUnSelectCnt)
|
| | | if unSelectCnt <= 0:
|
| | | GameWorld.DebugLog("没有未处理的加成效果次数了")
|
| | | return
|
| | | if not randEffCnt:
|
| | | randEffCnt = IpyGameDataPY.GetFuncCfg("DingjungeEff", 3)
|
| | | effIDList = []
|
| | | if isReset:
|
| | | # 重置
|
| | | for sIndex in range(randEffCnt):
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_DJGSelectEffect % sIndex, 0)
|
| | | |
| | | effIDList = []
|
| | | if isReset:
|
| | | pass
|
| | | else:
|
| | | for sIndex in range(randEffCnt):
|
| | | effID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_DJGSelectEffect % sIndex)
|
| | |
| | | #GameWorld.DebugLog("已存在未选择的加成效果等选择后再生成: effIDList=%s,unSelectCnt=%s" % (effIDList, unSelectCnt))
|
| | | return effIDList
|
| | |
|
| | | unSelectCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_DJGUnSelectCnt)
|
| | | if unSelectCnt <= 0:
|
| | | GameWorld.DebugLog("没有未处理的加成效果次数了")
|
| | | return []
|
| | | |
| | | fullLVEffIDList = [] # 已满级的效果ID列表
|
| | | effMaxLV = IpyGameDataPY.GetFuncCfg("DingjungeEff", 2)
|
| | | for eIndex in range(len(IpyGameDataPY.GetFuncEvalCfg("DingjungeEff", 1))):
|