|  |  |  | 
|---|
|  |  |  | treasureType = clientData.TreasureType | 
|---|
|  |  |  | treasureIndex = clientData.TreasureIndex | 
|---|
|  |  |  | costType = clientData.CostType | 
|---|
|  |  |  |  | 
|---|
|  |  |  | isFreeType = 1 if costType == 1 else 0 | 
|---|
|  |  |  | GameWorld.DebugLog("玩家寻宝: treasureType=%s,treasureIndex=%s,costType=%s,playerLV=%s" | 
|---|
|  |  |  | % (treasureType, treasureIndex, costType, playerLV), playerID) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | packType = ShareDefine.rptTreasure | 
|---|
|  |  |  | if treasureType == 2: | 
|---|
|  |  |  | packType = ShareDefine.rptRune | 
|---|
|  |  |  | #if treasureType == 2: | 
|---|
|  |  |  | #    packType = ShareDefine.rptRune | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if not ItemCommon.CheckPackHasSpace(curPlayer, packType, True): | 
|---|
|  |  |  | GameWorld.DebugLog("对应寻宝背包没有空格子!packType=%s" % packType, playerID) | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | commItemRateList = GetUpdLuckyItemRateList(ipyData, curLuck, luckFormula, costType) # 常规产出物品格子饼图,幸运物品概率已变更 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | curTreasureCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TreasureCount % (treasureType)) # 当前已寻宝次数 | 
|---|
|  |  |  | curTreasureCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TreasureCount % (treasureType, isFreeType)) # 当前已寻宝次数 | 
|---|
|  |  |  | updTreasureCount = curTreasureCount + treasureCount | 
|---|
|  |  |  | beSureCountDict = ipyData.GetGridItemRateList3() # 第x次必出产出格子编号饼图 | 
|---|
|  |  |  | beSureCountDict = ipyData.GetFreeGridItemRateList3() if isFreeType else ipyData.GetGridItemRateList3() # 第x次必出产出格子编号饼图 | 
|---|
|  |  |  | GameWorld.DebugLog("已经寻宝次数=%s,当前幸运=%s,commItemRateList=%s" % (curTreasureCount, curLuck, commItemRateList), playerID) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | addScore = IpyGameDataPY.GetFuncEvalCfg(TreasureSet1, 5)[treasureIndex] # 增加积分 | 
|---|
|  |  |  | ensureCount = IpyGameDataPY.GetFuncCfg("TreasureSet", 1) # 每多少次触发保底产出库 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | addScore = 0 if isFreeType else IpyGameDataPY.GetFuncEvalCfg(TreasureSet1, 5)[treasureIndex] # 增加积分 | 
|---|
|  |  |  | ensureCount = IpyGameDataPY.GetFuncEvalCfg("TreasureSet", 1, {})[isFreeType] # 每多少次触发保底产出库 | 
|---|
|  |  |  | ensureRateList = ipyData.GetFreeGridItemRateList2() if isFreeType else ipyData.GetGridItemRateList2() | 
|---|
|  |  |  | goodGridNumList = [ipyData.GetLuckyGridNum()] # 好物品格子编号 (幸运物品 + 必出 + 保底) | 
|---|
|  |  |  | for gridRateList in ipyData.GetGridItemRateList3().values(): | 
|---|
|  |  |  | for gridRateList in beSureCountDict.values(): | 
|---|
|  |  |  | for gridRateInfo in gridRateList: | 
|---|
|  |  |  | goodGridNumList.append(gridRateInfo[1]) | 
|---|
|  |  |  | for gridRateInfo in ipyData.GetGridItemRateList2(): | 
|---|
|  |  |  | for gridRateInfo in ensureRateList: | 
|---|
|  |  |  | goodGridNumList.append(gridRateInfo[1]) | 
|---|
|  |  |  | GameWorld.DebugLog("goodGridNumList=%s" % goodGridNumList, playerID) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | gridNum = GameWorld.GetResultByRandomList(gridNumRateList) | 
|---|
|  |  |  | GameWorld.DebugLog("到达次数必出,updTreasureCount=%s,gridNumRateList=%s,gridNum=%s" % (updTreasureCount, gridNumRateList, gridNum), playerID) | 
|---|
|  |  |  | elif updTreasureCount % ensureCount == 0: | 
|---|
|  |  |  | gridNumRateList = ipyData.GetGridItemRateList2() | 
|---|
|  |  |  | gridNumRateList = ensureRateList | 
|---|
|  |  |  | gridNum = GameWorld.GetResultByRandomList(gridNumRateList) | 
|---|
|  |  |  | GameWorld.DebugLog("满次数保底出,updTreasureCount=%s,gridNumRateList=%s,gridNum=%s" % (updTreasureCount, gridNumRateList, gridNum), playerID) | 
|---|
|  |  |  | else: | 
|---|
|  |  |  | 
|---|
|  |  |  | # 3. 次数保底 | 
|---|
|  |  |  | ensureGridNumList = [] | 
|---|
|  |  |  | if updTreasureCount / ensureCount > curTreasureCount / ensureCount: | 
|---|
|  |  |  | for gridInfo in ipyData.GetGridItemRateList2(): | 
|---|
|  |  |  | for gridInfo in ensureRateList: | 
|---|
|  |  |  | ensureGridNumList.append(gridInfo[1]) | 
|---|
|  |  |  | gridNum = GameWorld.GetResultByRandomList(ipyData.GetGridItemRateList2()) | 
|---|
|  |  |  | gridNum = GameWorld.GetResultByRandomList(ensureRateList) | 
|---|
|  |  |  | getGridResult.append(gridNum) | 
|---|
|  |  |  | GameWorld.DebugLog("满次数保底出,updTreasureCount=%s,gridNumRateList=%s,gridNum=%s" % (updTreasureCount, ipyData.GetGridItemRateList2(), gridNum), playerID) | 
|---|
|  |  |  | GameWorld.DebugLog("满次数保底出,updTreasureCount=%s,gridNumRateList=%s,gridNum=%s" % (updTreasureCount, ensureRateList, gridNum), playerID) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 4. 常规产出 | 
|---|
|  |  |  | doCount = 200 | 
|---|
|  |  |  | 
|---|
|  |  |  | GameWorld.DebugLog("扣除仙玉,costGold=%s" % costGold, playerID) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 加数据 | 
|---|
|  |  |  | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TreasureCount % (treasureType), updTreasureCount) | 
|---|
|  |  |  | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TreasureCount % (treasureType, isFreeType), updTreasureCount) | 
|---|
|  |  |  | if ipyData.GetLuckyGridNum() in getGridResult: | 
|---|
|  |  |  | updLuck = 0 | 
|---|
|  |  |  | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TreasureLuck % (treasureType), updLuck) | 
|---|