From dd8ca2f46cd2a81f451e91db7e93d3d4fe36c737 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 23 二月 2024 16:22:03 +0800
Subject: [PATCH] 9802 9762 【BT9】【后端】藏宝阁修改(背包计算转化物品占用格子数逻辑优化;开宝箱计算获得物品占用格子数逻辑优化;) 冲突

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py |   22 ++++++++++++++++------
 1 files changed, 16 insertions(+), 6 deletions(-)

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 5b4e008..9981412 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py
@@ -1128,7 +1128,7 @@
         if itemEff.GetEffectID() == ChConfig.Def_Effect_GubaoPiece:
             gubaoID = itemEff.GetEffectValue(0)
             if gubaoID:
-                PlayerGubao.AddGubaoPiece(curPlayer, gubaoID, tagItem.GetCount(), itemID)
+                PlayerGubao.AddGubaoPiece(curPlayer, gubaoID, tagItemCount, itemID)
                 tagItem.Clear()
                 return True
         #直升VIP
@@ -1331,7 +1331,7 @@
             GameWorld.Log("找不到ItemID = %d" % curItemID)
             return False, 0 
         
-        if curItemID in ChConfig.Def_TransformItemIDList or curItemData.GetType() == ChConfig.Def_ItemType_AutoUseMoney:
+        if IsPutinAutoTransformItem(curItemData):
             # 货币直接转换的物品如果是放入背包的则直接转化,无需暂用格子
             if packIndex == IPY_GameWorld.rptItem:
                 return True, 0
@@ -2335,8 +2335,7 @@
 #  @return None
 def SetItemCount(item, cnt, playerID=0, accID=0, playerName=""):
     if not item.IsEmpty():
-        itemID = item.GetItemTypeID()
-        if cnt > 0 and itemID in ChConfig.Def_TransformItemIDList:
+        if cnt > 0 and IsPutinAutoTransformItem(item):
             item.SetUserAttr(ShareDefine.Def_IudetItemCount, min(cnt, ChConfig.Def_UpperLimit_DWord))
         else:
             item.SetCount(min(cnt, 65535))
@@ -2349,7 +2348,7 @@
             raise
         
 def GetItemCount(item):
-    if item.GetItemTypeID() in ChConfig.Def_TransformItemIDList:
+    if IsPutinAutoTransformItem(item):
         return item.GetUserAttr(ShareDefine.Def_IudetItemCount)
     return item.GetCount()
 
@@ -2358,7 +2357,7 @@
 #    if isAuctionItem:
 #        if IpyGameDataPY.GetIpyGameDataNotLog("AuctionItem", itemData.GetItemTypeID()):
 #            return 1
-    if itemData.GetItemTypeID() in ChConfig.Def_TransformItemIDList or itemData.GetType() == ChConfig.Def_ItemType_AutoUseMoney:
+    if IsPutinAutoTransformItem(itemData):
         # 货币直接转换的物品如果是放入背包的则不需要暂用格子,放入其他的背包的则按物品叠加上限算
         if packType == IPY_GameWorld.rptItem:
             return 0
@@ -2367,6 +2366,17 @@
         packCount = itemData.GetPackCount()
     return int(math.ceil(itemCount / float(packCount)))
 
+def IsPutinAutoTransformItem(itemData):
+    ## 放入背包时是否直接转化为对应数值的物品
+    if itemData.GetItemTypeID() in ChConfig.Def_TransformItemIDList or itemData.GetType() == ChConfig.Def_ItemType_AutoUseMoney:
+        return True
+    itemEff = itemData.GetEffectByIndex(0)
+    if itemEff.GetEffectID() == ChConfig.Def_Effect_GubaoPiece:
+        gubaoID = itemEff.GetEffectValue(0)
+        if gubaoID:
+            return True
+    return False
+
 ## 双手武器,需要两只手才拿得动
 #  @param curEquip
 #  @return bool

--
Gitblit v1.8.0