6351 【后端】【2.1】新版骑宠争夺(奖励配置修改)
| | |
| | | {
|
| | | list WorldLV; //世界等级
|
| | | list Rank; //排名
|
| | | list Award; //奖励 [[独立概率万分率,[物品ID,数量,是否拍品]],..]
|
| | | list Award1; //奖励 [[独立概率万分率,[物品ID,数量,是否拍品]],..]
|
| | | dict Award2; //饼图奖励{随机次数:[(概率,[物品ID,数量,是否拍品]),..]}
|
| | | };
|
| | |
|
| | | //装备洗练等级上限
|
| | |
| | | BYTE _LineID; // 线路ID
|
| | | list WorldLV; //世界等级
|
| | | list Rank; //排名
|
| | | list Award; //奖励 [[独立概率万分率,[物品ID,数量,是否拍品]],..]
|
| | | list Award1; //奖励 [[独立概率万分率,[物品ID,数量,是否拍品]],..]
|
| | | dict Award2; //饼图奖励{随机次数:[(概率,[物品ID,数量,是否拍品]),..]}
|
| | | }; |
| | |
| | | def __GetFamilyBossAward(rank, worldLV):
|
| | | familyAuctionItemList, menberItemList = [], []
|
| | | awardRateList = []
|
| | | awardPieRateDict = {}
|
| | | ipyMgr = IpyGameDataPY.IPY_Data()
|
| | | for i in xrange(ipyMgr.GetFamilyBossAwardCount()):
|
| | | ipyData = ipyMgr.GetFamilyBossAwardByIndex(i)
|
| | |
| | | rankList = ipyData.GetRank()
|
| | | if rank < rankList[0] or rank > rankList[1]:
|
| | | continue
|
| | | awardRateList = ipyData.GetAward()
|
| | | if not awardRateList:
|
| | | awardRateList = ipyData.GetAward1()
|
| | | awardPieRateDict = ipyData.GetAward2()
|
| | | if not awardRateList and not awardPieRateDict:
|
| | | GameWorld.ErrLog('仙盟Boss奖励表 未配置该奖励 rank=%s,worldLV=%s' % (rank, worldLV))
|
| | | return familyAuctionItemList, menberItemList
|
| | | for rate, itemInfo in awardRateList:
|
| | |
| | | familyAuctionItemList.append(itemInfo)
|
| | | else:
|
| | | menberItemList.append(itemInfo)
|
| | | for doCnt, awardPieRateList in awardPieRateDict.items():
|
| | | for _ in xrange(doCnt):
|
| | | resultItem = GameWorld.GetResultByRandomList(awardPieRateList)
|
| | | if len(resultItem) != 3:
|
| | | GameWorld.ErrLog('仙盟Boss奖励表配置错误 itemInfo=%s' % resultItem)
|
| | | continue
|
| | | if resultItem[2]:
|
| | | familyAuctionItemList.append(resultItem)
|
| | | else:
|
| | | menberItemList.append(resultItem)
|
| | |
|
| | | return familyAuctionItemList, menberItemList
|
| | |
|
| | |
| | | if not ipyDataList:
|
| | | return auctionItemList, itemList
|
| | | awardRateList = []
|
| | | awardPieRateDict = {}
|
| | | for ipyData in ipyDataList:
|
| | | worldLVList = ipyData.GetWorldLV()
|
| | | if worldLV < worldLVList[0] or worldLV > worldLVList[1]:
|
| | |
| | | rankList = ipyData.GetRank()
|
| | | if rank < rankList[0] or rank > rankList[1]:
|
| | | continue
|
| | | awardRateList = ipyData.GetAward()
|
| | | if not awardRateList:
|
| | | awardRateList = ipyData.GetAward1()
|
| | | awardPieRateDict = ipyData.GetAward2()
|
| | | if not awardRateList and not awardPieRateDict:
|
| | | GameWorld.ErrLog('骑宠Boss奖励表 未配置该奖励 lineID=%s, rank=%s,worldLV=%s' % (lineID, rank, worldLV))
|
| | | return auctionItemList, itemList
|
| | | for rate, itemInfo in awardRateList:
|
| | |
| | | else:
|
| | | itemList.append(itemInfo)
|
| | |
|
| | | for doCnt, awardPieRateList in awardPieRateDict.items():
|
| | | for _ in xrange(doCnt):
|
| | | resultItem = GameWorld.GetResultByRandomList(awardPieRateList)
|
| | | if len(resultItem) != 3:
|
| | | GameWorld.ErrLog('骑宠Boss奖励表配置错误 itemInfo=%s' % resultItem)
|
| | | continue
|
| | | if resultItem[2]:
|
| | | auctionItemList.append(resultItem)
|
| | | else:
|
| | | itemList.append(resultItem)
|
| | | return auctionItemList, itemList
|
| | |
|
| | |
|
| | |
| | | "FamilyBossAward":(
|
| | | ("list", "WorldLV", 0),
|
| | | ("list", "Rank", 0),
|
| | | ("list", "Award", 0),
|
| | | ("list", "Award1", 0),
|
| | | ("dict", "Award2", 0),
|
| | | ),
|
| | |
|
| | | "ItemWashMax":(
|
| | |
| | | ("BYTE", "LineID", 1),
|
| | | ("list", "WorldLV", 0),
|
| | | ("list", "Rank", 0),
|
| | | ("list", "Award", 0),
|
| | | ("list", "Award1", 0),
|
| | | ("dict", "Award2", 0),
|
| | | ),
|
| | | }
|
| | |
|
| | |
| | | def __init__(self): |
| | | self.WorldLV = []
|
| | | self.Rank = []
|
| | | self.Award = [] |
| | | self.Award1 = []
|
| | | self.Award2 = {} |
| | | return |
| | | |
| | | def GetWorldLV(self): return self.WorldLV # 世界等级
|
| | | def GetRank(self): return self.Rank # 排名
|
| | | def GetAward(self): return self.Award # 奖励 [[独立概率万分率,[物品ID,数量,是否拍品]],..] |
| | | def GetAward1(self): return self.Award1 # 奖励 [[独立概率万分率,[物品ID,数量,是否拍品]],..]
|
| | | def GetAward2(self): return self.Award2 # 饼图奖励{随机次数:[(概率,[物品ID,数量,是否拍品]),..]} |
| | | |
| | | # 装备洗练等级上限 |
| | | class IPY_ItemWashMax(): |
| | |
| | | self.LineID = 0
|
| | | self.WorldLV = []
|
| | | self.Rank = []
|
| | | self.Award = [] |
| | | self.Award1 = []
|
| | | self.Award2 = {} |
| | | return |
| | | |
| | | def GetLineID(self): return self.LineID # 线路ID
|
| | | def GetWorldLV(self): return self.WorldLV # 世界等级
|
| | | def GetRank(self): return self.Rank # 排名
|
| | | def GetAward(self): return self.Award # 奖励 [[独立概率万分率,[物品ID,数量,是否拍品]],..] |
| | | def GetAward1(self): return self.Award1 # 奖励 [[独立概率万分率,[物品ID,数量,是否拍品]],..]
|
| | | def GetAward2(self): return self.Award2 # 饼图奖励{随机次数:[(概率,[物品ID,数量,是否拍品]),..]} |
| | |
|
| | |
|
| | | def Log(msg, playerID=0, par=0):
|