hxp
2020-03-11 f8afdf2b5358829706746834fc6540eb137cb44c
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEquipDecompose.py
@@ -97,25 +97,38 @@
    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)
@@ -125,6 +138,9 @@
    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
##获取可以吞噬的物品信息