From a127f246999ad4c1e40b9c8efcce991c8672ad23 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 08 三月 2019 11:29:20 +0800
Subject: [PATCH] 6332 【后端】【2.0】主要是拍品相关规则调整及背包优化(GivePlayerItem 修复给非拍品报错)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py        |   37 +++++++++++++++++++++----------------
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/MakeItemCount.py |    9 ++++++---
 2 files changed, 27 insertions(+), 19 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/MakeItemCount.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/MakeItemCount.py
index cb41eb1..85de183 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/MakeItemCount.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/MakeItemCount.py
@@ -20,6 +20,7 @@
 import IpyGameDataPY
 import GameWorld
 import ChConfig
+import ItemCommon
 
 #---------------------------------------------------------------------
 #全局变量
@@ -61,7 +62,7 @@
     playerItemControler = ItemControler.PlayerItemControler(curPlayer)
     
     # 拍品
-    if auctionGroup:
+    if auctionGroup > 0:
         isAuctionItem = True
         ipyData = IpyGameDataPY.GetIpyGameData("AuctionItem", itemID)
         if not ipyData:
@@ -70,9 +71,11 @@
         if not ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, auctionGroup, [IPY_GameWorld.rptItem], event=event):
             GameWorld.DebugAnswer(curPlayer, "###放入物品失败!")
     else:
+        auctionGroup = 0
         isAuctionItem = False
-        if itemData.GetPackCount() > 1:
-            __DoGMGivePlayerItem(curPlayer, playerItemControler, itemID, itemCount, isAuctionItem, isAllAttr, event)
+        if not ItemCommon.GetIsEquip(itemData):
+            if not ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, auctionGroup, [IPY_GameWorld.rptItem], event=event):
+                GameWorld.DebugAnswer(curPlayer, "###放入物品失败!")
         else:
             for _ in xrange(itemCount):
                 __DoGMGivePlayerItem(curPlayer, playerItemControler, itemID, 1, isAuctionItem, isAllAttr, event)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py
index bef589d..8fda9bb 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py
@@ -2111,22 +2111,27 @@
                 isOK = True # 只要有成功的就返回成功,防止异常情况失败可能导致被刷
         return isOK
     
-    isOK = False
-    doCount = itemCount
-    maxPackCount = max(1, itemCount / auctionGroup) # 每组至少1个
-    while itemCount > 0 and doCount > 0:
-        doCount -= 1
-        giveCount = maxPackCount if itemCount >= maxPackCount else itemCount
-        if giveCount <= 0:
-            break
-        itemCount -= giveCount
-        giveItem = GetOutPutItemObj(itemID, giveCount, isAuctionItem, curPlayer=curPlayer)
-        if not giveItem:
-            return isOK
-        if DoLogic_PutItemInPack(curPlayer, giveItem, event, packIndexList):
-            isOK = True # 只要有成功的就返回成功,防止异常情况失败可能导致被刷
-            
-    return isOK
+    if auctionGroup > 0:
+        isOK = False
+        doCount = itemCount
+        maxPackCount = max(1, itemCount / auctionGroup) # 每组至少1个
+        while itemCount > 0 and doCount > 0:
+            doCount -= 1
+            giveCount = maxPackCount if itemCount >= maxPackCount else itemCount
+            if giveCount <= 0:
+                break
+            itemCount -= giveCount
+            giveItem = GetOutPutItemObj(itemID, giveCount, isAuctionItem, curPlayer=curPlayer)
+            if not giveItem:
+                return isOK
+            if DoLogic_PutItemInPack(curPlayer, giveItem, event, packIndexList):
+                isOK = True # 只要有成功的就返回成功,防止异常情况失败可能导致被刷
+        return isOK
+    
+    giveItem = GetOutPutItemObj(itemID, itemCount, isAuctionItem, curPlayer=curPlayer)
+    if not giveItem:
+        return False
+    return DoLogic_PutItemInPack(curPlayer, giveItem, event, packIndexList)
 
 
 def GivePlayerAppointItem(curPlayer, appointID, isAuctionItem, event=["", False, {}]):

--
Gitblit v1.8.0