| | |
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_EquipDecomposeCnt, updDecomposeCnt%perDecomposeCnt)
|
| | | jsonItemList = []
|
| | | giveCnt = 0
|
| | | if updDecomposeCnt >= perDecomposeCnt:
|
| | | awardList = IpyGameDataPY.GetFuncCfg('EquipDecomposeAward', 2)
|
| | | if not awardList:
|
| | | return len(drDelItemList), giveCnt
|
| | | if perDecomposeCnt and updDecomposeCnt >= perDecomposeCnt:
|
| | | awardRateList = IpyGameDataPY.GetFuncEvalCfg('EquipDecomposeAward', 2)
|
| | | resetItemIDList = IpyGameDataPY.GetFuncEvalCfg('EquipDecomposeAward', 3)
|
| | | giveCnt = updDecomposeCnt/perDecomposeCnt
|
| | | minCnt, minItemID = 0, 0
|
| | | for itemid in resetItemIDList:
|
| | | cnt = ItemControler.FindPlayerItemCountByItemID(curPlayer, IPY_GameWorld.rptItem, itemid)
|
| | | cnt += ItemControler.FindPlayerItemCountByItemID(curPlayer, IPY_GameWorld.rptWarehouse, itemid)
|
| | | if not minItemID or cnt < minCnt:
|
| | | minCnt = cnt
|
| | | minItemID = itemid
|
| | | |
| | | giveItemIDDict = {}
|
| | | for _ in xrange(giveCnt):
|
| | | itmeID = random.choice(awardList)
|
| | | itmeID = GameWorld.GetResultByRandomList(awardRateList)
|
| | | if not itmeID:
|
| | | continue
|
| | | if itmeID in resetItemIDList and minItemID: #给玩家拥有最少的材料
|
| | | itmeID = minItemID
|
| | | |
| | | giveItemIDDict[itmeID] = giveItemIDDict.get(itmeID, 0) + 1
|
| | | for giveItemID, itemCnt in giveItemIDDict.items(): |
| | | jsonItemList.append(ItemCommon.GetJsonItem([giveItemID,itemCnt,1]))
|
| | | needSpace = len(giveItemIDDict)
|
| | | packSpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem, needSpace)
|
| | | if packSpace < needSpace:
|
| | | prizeItemList = [[giveItemID, itemCnt, 1] for giveItemID, itemCnt in giveItemIDDict.items()]
|
| | | PlayerControl.SendMailByKey("DefaultLackSpace", [curPlayer.GetPlayerID()], prizeItemList)
|
| | | else:
|
| | | for giveItemID, itemCnt in giveItemIDDict.items():
|
| | | ItemControler.GivePlayerItem(curPlayer, giveItemID, itemCnt, True, [IPY_GameWorld.rptItem], True)
|
| | | if giveItemIDDict:
|
| | | for giveItemID, itemCnt in giveItemIDDict.items(): |
| | | jsonItemList.append(ItemCommon.GetJsonItem([giveItemID,itemCnt,1]))
|
| | | needSpace = len(giveItemIDDict)
|
| | | packSpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem, needSpace)
|
| | | if packSpace < needSpace:
|
| | | prizeItemList = [[giveItemID, itemCnt, 1] for giveItemID, itemCnt in giveItemIDDict.items()]
|
| | | PlayerControl.SendMailByKey("DefaultLackSpace", [curPlayer.GetPlayerID()], prizeItemList)
|
| | | else:
|
| | | for giveItemID, itemCnt in giveItemIDDict.items():
|
| | | ItemControler.GivePlayerItem(curPlayer, giveItemID, itemCnt, 0, [IPY_GameWorld.rptItem])
|
| | |
|
| | | #同步客户端
|
| | | Sync_EDLVInfo(curPlayer, jsonItemList)
|
| | |
| | | DataRecordPack.DR_ClassUpSystem(curPlayer, "EquipDecomposeUp", updLV, saveDataDict)
|
| | |
|
| | | #EventReport.WriteEvent__lv(curPlayer, LV, updLV, Exp, updExp)
|
| | | # 整理背包
|
| | | tick = GameWorld.GetGameWorld().GetTick()
|
| | | ItemControler.ResetItem(curPlayer, IPY_GameWorld.rptItem, 0, 0, tick)
|
| | | return len(drDelItemList), giveCnt
|
| | |
|
| | | ##获取可以吞噬的物品信息
|