| | |
| | | import NetPackCommon
|
| | | import PlayerBossReborn
|
| | | import PlayerFairyCeremony
|
| | | import PlayerNewFairyCeremony
|
| | | import ItemCommon
|
| | | import ChConfig
|
| | |
|
| | |
| | | GameWorld.DebugLog("玩家寻宝: treasureType=%s,treasureIndex=%s,costType=%s,playerLV=%s"
|
| | | % (treasureType, treasureIndex, costType, playerLV), playerID)
|
| | |
|
| | | if treasureType == 1:
|
| | | return
|
| | | TreasureSet1 = "TreasureSet1%s" % treasureType
|
| | | TreasureSet2 = "TreasureSet2%s" % treasureType
|
| | | treasureCountList = IpyGameDataPY.GetFuncEvalCfg(TreasureSet1, 1) # 寻宝获得个数列表
|
| | |
| | | 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)
|
| | |
| | | if lackCount > 0:
|
| | | lackCountCostMoney = ItemCommon.GetAutoBuyItemNeedGold({costItemID:lackCount})
|
| | | if lackCountCostMoney:
|
| | | moneyType = IPY_GameWorld.TYPE_Price_Gold_Money
|
| | | moneyType = IPY_GameWorld.TYPE_Price_Gold_Paper
|
| | | infoDict = {ChConfig.Def_Cost_Reason_SonKey:costItemID}
|
| | | if not PlayerControl.HaveMoney(curPlayer, moneyType, lackCountCostMoney):
|
| | | return
|
| | |
| | | GameWorld.ErrLog("该寻宝类型索引不支持消耗仙玉寻宝!treasureType=%s,treasureIndex=%s" % (treasureType, treasureIndex), playerID)
|
| | | return
|
| | |
|
| | | if not PlayerControl.HaveMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Money, costGold):
|
| | | if not PlayerControl.HaveMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Paper, costGold):
|
| | | return
|
| | |
|
| | | ipyData = IpyGameDataPY.InterpolationSearch("TreasureHouse", "MinLV", playerLV, {"TreasureType":treasureType})
|
| | |
| | | updTreasureCount = curTreasureCount + treasureCount
|
| | | 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] # 增加积分
|
| | | 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()] # 好物品格子编号 (幸运物品 + 必出 + 保底)
|
| | |
| | | PlayerControl.PayMoney(curPlayer, moneyType, lackCountCostMoney, ChConfig.Def_Cost_Treasure, infoDict, lackCount)
|
| | | else:
|
| | | infoDict = {"TreasureType":treasureType, "TreasureIndex":treasureIndex}
|
| | | PlayerControl.PayMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Money, costGold, ChConfig.Def_Cost_Treasure, infoDict)
|
| | | PlayerControl.PayMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Paper, costGold, ChConfig.Def_Cost_Treasure, infoDict)
|
| | | GameWorld.DebugLog("扣除仙玉,costGold=%s" % costGold, playerID)
|
| | |
|
| | | # 加数据
|
| | |
| | |
|
| | | if treasureType == 2:
|
| | | PlayerFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_RuneTreasure, treasureCount)
|
| | | PlayerNewFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_RuneTreasure, treasureCount)
|
| | | PlayerBossReborn.AddBossRebornActionCnt(curPlayer, ChConfig.Def_BRAct_RuneTreasure, treasureCount)
|
| | | else:
|
| | | PlayerFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_Treasure, treasureCount)
|
| | | PlayerNewFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_Treasure, treasureCount)
|
| | | PlayerBossReborn.AddBossRebornActionCnt(curPlayer, ChConfig.Def_BRAct_Treasure, treasureCount)
|
| | | # 给物品
|
| | | mailItemList = []
|
| | | itemControl = ItemControler.PlayerItemControler(curPlayer)
|
| | | for gridNum, itemID, itemCount, isBind in treasureResult:
|
| | | itemObj = ItemControler.GetOutPutItemObj(itemID, itemCount, isBind)
|
| | | itemObj = ItemControler.GetOutPutItemObj(itemID, itemCount, False, curPlayer=curPlayer)
|
| | | mailItemDict = ItemCommon.GetMailItemDict(itemObj)
|
| | |
|
| | | if int(gridNum) in goodGridNumList:
|