From 875d928db2370eaaa6a43bf01d0761d7939dab5f Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期六, 13 十月 2018 17:14:42 +0800
Subject: [PATCH] 4064 【后端】【主干】直接给玩家的货币类物品优化处理; 2094 邮件发放神兽装备,神兽背包空间不足逻辑错误;

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCompensationTube.py |   28 ++++++++++------------------
 1 files changed, 10 insertions(+), 18 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCompensationTube.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCompensationTube.py
index 3d9dc44..3a508cc 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCompensationTube.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCompensationTube.py
@@ -68,9 +68,8 @@
         GameWorld.DebugLog("    PlayerID %s no found "%curPackData.PlayerID)
         return
     
+    needPackSpaceDict = {}
     isPackSpaceEnough = True
-    commPackItemCount = 0 # 常规背包物品个数
-    RuneItemCount = 0 # 符印物品个数
     # 先汇总物品所属背包
     for i in xrange(curPackData.Count):
         curPackItem = curPackData.Items[i]
@@ -78,24 +77,17 @@
         curItemData = GameWorld.GetGameData().GetItemByTypeID(itemID)
         if not curItemData:
             continue
-        if curItemData.GetType() in [ChConfig.Def_ItemType_Rune, ChConfig.Def_ItemType_RuneExp]:
-            RuneItemCount += curPackItem.Count
-        else:
-            commPackItemCount += 1
+        
+        packType = ChConfig.GetItemPackType(curItemData.GetType())
+        needSpace = ItemControler.GetItemNeedPackCount(packType, curItemData, curPackItem.Count)
+        needPackSpaceDict[packType] = needPackSpaceDict.get(packType, 0) + needSpace
             
-    if isPackSpaceEnough and RuneItemCount > 0:
-        packSpace = ItemCommon.GetItemPackSpace(curPlayer, ShareDefine.rptRune, RuneItemCount)
-        if packSpace < RuneItemCount:
+    GameWorld.DebugLog("    needPackSpaceDict=%s" % str(needPackSpaceDict))
+    for packType, needSpace in needPackSpaceDict.items():
+        if needSpace > ItemCommon.GetItemPackSpace(curPlayer, packType, needSpace):
+            PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_676165", [packType])
             isPackSpaceEnough = False
-            GameWorld.DebugLog("    符印背包空间不足, RuneItemCount=%s > packSpace=%s" % (RuneItemCount, packSpace))
-            PlayerControl.NotifyCode(curPlayer, "RuneBagFull")  
-    
-    if isPackSpaceEnough and commPackItemCount > 0:
-        itemPackSpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem, commPackItemCount)
-        if itemPackSpace < commPackItemCount:
-            isPackSpaceEnough = False
-            GameWorld.DebugLog("    背包空间不足, commPackItemCount=%s > itemPackSpace=%s" % (commPackItemCount, itemPackSpace))
-            PlayerControl.NotifyCode(curPlayer, "BagFull")  
+            break
             
     #背包空间不足
     if not isPackSpaceEnough:

--
Gitblit v1.8.0