From 2eb39c9fe42c1ee32500f81c4bf7d735c6116d9d Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 30 七月 2019 00:26:20 +0800
Subject: [PATCH] 8180 【后端】【主干】优化打boss掉落套装体验

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEquipDecompose.py |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEquipDecompose.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEquipDecompose.py
index 7d8dc41..29eb165 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEquipDecompose.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEquipDecompose.py
@@ -99,12 +99,24 @@
     giveCnt = 0
     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 = GameWorld.GetResultByRandomList(awardRateList)
             if not itmeID:
                 continue
+            if itmeID in resetItemIDList and minItemID: #给玩家拥有最少的材料
+                itmeID = minItemID
+                
             giveItemIDDict[itmeID] = giveItemIDDict.get(itmeID, 0) + 1
         if giveItemIDDict:
             for giveItemID, itemCnt in giveItemIDDict.items(): 
@@ -126,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
 
 ##获取可以吞噬的物品信息

--
Gitblit v1.8.0